@@ -789,6 +789,150 @@ async def list_stock_financials(
789
789
except Exception as e :
790
790
return {"error" : str (e )}
791
791
792
+ @poly_mcp .tool ()
793
+ async def list_ipos (
794
+ ticker : Optional [str ] = None ,
795
+ listing_date : Optional [Union [str , datetime , date ]] = None ,
796
+ listing_date_lt : Optional [Union [str , datetime , date ]] = None ,
797
+ listing_date_lte : Optional [Union [str , datetime , date ]] = None ,
798
+ listing_date_gt : Optional [Union [str , datetime , date ]] = None ,
799
+ listing_date_gte : Optional [Union [str , datetime , date ]] = None ,
800
+ ipo_status : Optional [str ] = None ,
801
+ limit : Optional [int ] = None ,
802
+ sort : Optional [str ] = None ,
803
+ order : Optional [str ] = None ,
804
+ params : Optional [Dict [str , Any ]] = None ,
805
+ ) -> Dict [str , Any ]:
806
+ """
807
+ Retrieve upcoming or historical IPOs.
808
+ """
809
+ try :
810
+ results = polygon_client .vx .list_ipos (
811
+ ticker = ticker ,
812
+ listing_date = listing_date ,
813
+ listing_date_lt = listing_date_lt ,
814
+ listing_date_lte = listing_date_lte ,
815
+ listing_date_gt = listing_date_gt ,
816
+ listing_date_gte = listing_date_gte ,
817
+ ipo_status = ipo_status ,
818
+ limit = limit ,
819
+ sort = sort ,
820
+ order = order ,
821
+ params = params ,
822
+ raw = True
823
+ )
824
+
825
+ data_str = results .data .decode ('utf-8' )
826
+ return json .loads (data_str )
827
+ except Exception as e :
828
+ return {"error" : str (e )}
829
+
830
+ @poly_mcp .tool ()
831
+ async def list_short_interest (
832
+ ticker : Optional [str ] = None ,
833
+ settlement_date : Optional [Union [str , datetime , date ]] = None ,
834
+ settlement_date_lt : Optional [Union [str , datetime , date ]] = None ,
835
+ settlement_date_lte : Optional [Union [str , datetime , date ]] = None ,
836
+ settlement_date_gt : Optional [Union [str , datetime , date ]] = None ,
837
+ settlement_date_gte : Optional [Union [str , datetime , date ]] = None ,
838
+ limit : Optional [int ] = None ,
839
+ sort : Optional [str ] = None ,
840
+ order : Optional [str ] = None ,
841
+ params : Optional [Dict [str , Any ]] = None ,
842
+ ) -> Dict [str , Any ]:
843
+ """
844
+ Retrieve short interest data for stocks.
845
+ """
846
+ try :
847
+ results = polygon_client .vx .list_short_interest (
848
+ ticker = ticker ,
849
+ settlement_date = settlement_date ,
850
+ settlement_date_lt = settlement_date_lt ,
851
+ settlement_date_lte = settlement_date_lte ,
852
+ settlement_date_gt = settlement_date_gt ,
853
+ settlement_date_gte = settlement_date_gte ,
854
+ limit = limit ,
855
+ sort = sort ,
856
+ order = order ,
857
+ params = params ,
858
+ raw = True
859
+ )
860
+
861
+ data_str = results .data .decode ('utf-8' )
862
+ return json .loads (data_str )
863
+ except Exception as e :
864
+ return {"error" : str (e )}
865
+
866
+ @poly_mcp .tool ()
867
+ async def list_short_volume (
868
+ ticker : Optional [str ] = None ,
869
+ date : Optional [Union [str , datetime , date ]] = None ,
870
+ date_lt : Optional [Union [str , datetime , date ]] = None ,
871
+ date_lte : Optional [Union [str , datetime , date ]] = None ,
872
+ date_gt : Optional [Union [str , datetime , date ]] = None ,
873
+ date_gte : Optional [Union [str , datetime , date ]] = None ,
874
+ limit : Optional [int ] = None ,
875
+ sort : Optional [str ] = None ,
876
+ order : Optional [str ] = None ,
877
+ params : Optional [Dict [str , Any ]] = None ,
878
+ ) -> Dict [str , Any ]:
879
+ """
880
+ Retrieve short volume data for stocks.
881
+ """
882
+ try :
883
+ results = polygon_client .vx .list_short_volume (
884
+ ticker = ticker ,
885
+ date = date ,
886
+ date_lt = date_lt ,
887
+ date_lte = date_lte ,
888
+ date_gt = date_gt ,
889
+ date_gte = date_gte ,
890
+ limit = limit ,
891
+ sort = sort ,
892
+ order = order ,
893
+ params = params ,
894
+ raw = True
895
+ )
896
+
897
+ data_str = results .data .decode ('utf-8' )
898
+ return json .loads (data_str )
899
+ except Exception as e :
900
+ return {"error" : str (e )}
901
+
902
+ @poly_mcp .tool ()
903
+ async def list_treasury_yields (
904
+ date : Optional [Union [str , datetime , date ]] = None ,
905
+ date_lt : Optional [Union [str , datetime , date ]] = None ,
906
+ date_lte : Optional [Union [str , datetime , date ]] = None ,
907
+ date_gt : Optional [Union [str , datetime , date ]] = None ,
908
+ date_gte : Optional [Union [str , datetime , date ]] = None ,
909
+ limit : Optional [int ] = None ,
910
+ sort : Optional [str ] = None ,
911
+ order : Optional [str ] = None ,
912
+ params : Optional [Dict [str , Any ]] = None ,
913
+ ) -> Dict [str , Any ]:
914
+ """
915
+ Retrieve treasury yield data.
916
+ """
917
+ try :
918
+ results = polygon_client .vx .list_treasury_yields (
919
+ date = date ,
920
+ date_lt = date_lt ,
921
+ date_lte = date_lte ,
922
+ date_gt = date_gt ,
923
+ date_gte = date_gte ,
924
+ limit = limit ,
925
+ sort = sort ,
926
+ order = order ,
927
+ params = params ,
928
+ raw = True
929
+ )
930
+
931
+ data_str = results .data .decode ('utf-8' )
932
+ return json .loads (data_str )
933
+ except Exception as e :
934
+ return {"error" : str (e )}
935
+
792
936
# Directly expose the MCP server object
793
937
# It will be run from entrypoint.py
794
938
0 commit comments