JC321 commited on
Commit
97d4ed3
·
verified ·
1 Parent(s): 386e8dc

Upload mcp_server_sse.py

Browse files
Files changed (1) hide show
  1. mcp_server_sse.py +140 -3
mcp_server_sse.py CHANGED
@@ -24,7 +24,7 @@ from contextlib import contextmanager
24
  app = FastAPI(
25
  title="SEC Financial Report MCP Server",
26
  description="Model Context Protocol Server for SEC EDGAR Financial Data",
27
- version="2.2.2"
28
  )
29
 
30
  # Server startup time for monitoring
@@ -403,7 +403,7 @@ async def handle_mcp_message(request: MCPRequest):
403
  },
404
  "serverInfo": {
405
  "name": "sec-financial-data",
406
- "version": "2.2.2"
407
  }
408
  }
409
  ).dict()
@@ -658,6 +658,42 @@ async def root():
658
  color: #667eea;
659
  font-weight: 500;
660
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
661
  .test-btn {
662
  background: linear-gradient(135deg, #667eea, #764ba2);
663
  color: white;
@@ -772,6 +808,20 @@ async def root():
772
  <div class="example-item"><span class="example-label">Input:</span> "Tesla"</div>
773
  </div>
774
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
775
  <div class="param-group">
776
  <label>Company Name *</label>
777
  <input type="text" id="tool1-company_name" placeholder="e.g., Microsoft, Apple, Tesla">
@@ -802,6 +852,20 @@ async def root():
802
  <div class="example-item"><span class="example-label">By Name:</span> "Microsoft Corporation"</div>
803
  </div>
804
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
805
  <div class="param-group">
806
  <label>Company Name / Ticker / CIK *</label>
807
  <input type="text" id="tool2-company_input" placeholder="e.g., MSFT, 0000789019, Microsoft">
@@ -832,6 +896,20 @@ async def root():
832
  <div class="example-item"><span class="example-label">Tesla:</span> "0001318605"</div>
833
  </div>
834
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
835
  <div class="param-group">
836
  <label>CIK Code *</label>
837
  <input type="text" id="tool3-cik" placeholder="e.g., 0000789019">
@@ -862,6 +940,21 @@ async def root():
862
  <div class="example-item"><span class="example-label">Or:</span> Leave empty to get all filing types</div>
863
  </div>
864
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
865
  <div class="param-group">
866
  <label>CIK Code *</label>
867
  <input type="text" id="tool4-cik" placeholder="e.g., 0000789019">
@@ -901,6 +994,20 @@ async def root():
901
  <div class="example-item"><span class="example-label">NVIDIA:</span> "0001045810"</div>
902
  </div>
903
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
904
  <div class="param-group">
905
  <label>CIK Code *</label>
906
  <input type="text" id="tool5-cik" placeholder="e.g., 0000789019">
@@ -930,6 +1037,21 @@ async def root():
930
  <div class="example-item"><span class="example-label">Format:</span> YYYY for annual, YYYYQX for quarterly</div>
931
  </div>
932
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
933
  <div class="param-group">
934
  <label>CIK Code *</label>
935
  <input type="text" id="tool6-cik" placeholder="e.g., 0000789019">
@@ -964,6 +1086,21 @@ async def root():
964
  <div class="example-item"><span class="example-label">Note:</span> Returns annual + quarterly data (if available)</div>
965
  </div>
966
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
967
  <div class="param-group">
968
  <label>CIK Code *</label>
969
  <input type="text" id="tool7-cik" placeholder="e.g., 0000789019">
@@ -1143,7 +1280,7 @@ async def health_check():
1143
  return {
1144
  "status": "healthy",
1145
  "server": "sec-financial-data",
1146
- "version": "2.2.2",
1147
  "protocol": "MCP",
1148
  "transport": "SSE",
1149
  "tools_count": len(MCP_TOOLS),
 
24
  app = FastAPI(
25
  title="SEC Financial Report MCP Server",
26
  description="Model Context Protocol Server for SEC EDGAR Financial Data",
27
+ version="2.2.3"
28
  )
29
 
30
  # Server startup time for monitoring
 
403
  },
404
  "serverInfo": {
405
  "name": "sec-financial-data",
406
+ "version": "2.2.3"
407
  }
408
  }
409
  ).dict()
 
658
  color: #667eea;
659
  font-weight: 500;
660
  }
661
+ .api-example-box {
662
+ background: #1e1e1e;
663
+ border-radius: 4px;
664
+ padding: 12px;
665
+ margin: 10px 0;
666
+ font-family: 'Monaco', 'Courier New', monospace;
667
+ font-size: 11px;
668
+ overflow-x: auto;
669
+ }
670
+ .api-example-box .api-title {
671
+ color: #9cdcfe;
672
+ font-weight: 600;
673
+ margin-bottom: 8px;
674
+ display: flex;
675
+ align-items: center;
676
+ gap: 5px;
677
+ }
678
+ .api-example-box .api-title::before {
679
+ content: "📡";
680
+ font-size: 14px;
681
+ }
682
+ .api-example-box pre {
683
+ margin: 0;
684
+ color: #d4d4d4;
685
+ white-space: pre-wrap;
686
+ word-break: break-word;
687
+ }
688
+ .api-example-box .json-key {
689
+ color: #9cdcfe;
690
+ }
691
+ .api-example-box .json-string {
692
+ color: #ce9178;
693
+ }
694
+ .api-example-box .json-number {
695
+ color: #b5cea8;
696
+ }
697
  .test-btn {
698
  background: linear-gradient(135deg, #667eea, #764ba2);
699
  color: white;
 
808
  <div class="example-item"><span class="example-label">Input:</span> "Tesla"</div>
809
  </div>
810
  </div>
811
+ <div class="api-example-box">
812
+ <div class="api-title">API Request Example</div>
813
+ <pre>{
814
+ <span class="json-key">"jsonrpc"</span>: <span class="json-string">"2.0"</span>,
815
+ <span class="json-key">"id"</span>: <span class="json-number">1</span>,
816
+ <span class="json-key">"method"</span>: <span class="json-string">"tools/call"</span>,
817
+ <span class="json-key">"params"</span>: {
818
+ <span class="json-key">"name"</span>: <span class="json-string">"search_company"</span>,
819
+ <span class="json-key">"arguments"</span>: {
820
+ <span class="json-key">"company_name"</span>: <span class="json-string">"Microsoft"</span>
821
+ }
822
+ }
823
+ }</pre>
824
+ </div>
825
  <div class="param-group">
826
  <label>Company Name *</label>
827
  <input type="text" id="tool1-company_name" placeholder="e.g., Microsoft, Apple, Tesla">
 
852
  <div class="example-item"><span class="example-label">By Name:</span> "Microsoft Corporation"</div>
853
  </div>
854
  </div>
855
+ <div class="api-example-box">
856
+ <div class="api-title">API Request Example</div>
857
+ <pre>{
858
+ <span class="json-key">"jsonrpc"</span>: <span class="json-string">"2.0"</span>,
859
+ <span class="json-key">"id"</span>: <span class="json-number">1</span>,
860
+ <span class="json-key">"method"</span>: <span class="json-string">"tools/call"</span>,
861
+ <span class="json-key">"params"</span>: {
862
+ <span class="json-key">"name"</span>: <span class="json-string">"advanced_search_company"</span>,
863
+ <span class="json-key">"arguments"</span>: {
864
+ <span class="json-key">"company_input"</span>: <span class="json-string">"MSFT"</span>
865
+ }
866
+ }
867
+ }</pre>
868
+ </div>
869
  <div class="param-group">
870
  <label>Company Name / Ticker / CIK *</label>
871
  <input type="text" id="tool2-company_input" placeholder="e.g., MSFT, 0000789019, Microsoft">
 
896
  <div class="example-item"><span class="example-label">Tesla:</span> "0001318605"</div>
897
  </div>
898
  </div>
899
+ <div class="api-example-box">
900
+ <div class="api-title">API Request Example</div>
901
+ <pre>{
902
+ <span class="json-key">"jsonrpc"</span>: <span class="json-string">"2.0"</span>,
903
+ <span class="json-key">"id"</span>: <span class="json-number">1</span>,
904
+ <span class="json-key">"method"</span>: <span class="json-string">"tools/call"</span>,
905
+ <span class="json-key">"params"</span>: {
906
+ <span class="json-key">"name"</span>: <span class="json-string">"get_company_info"</span>,
907
+ <span class="json-key">"arguments"</span>: {
908
+ <span class="json-key">"cik"</span>: <span class="json-string">"0000789019"</span>
909
+ }
910
+ }
911
+ }</pre>
912
+ </div>
913
  <div class="param-group">
914
  <label>CIK Code *</label>
915
  <input type="text" id="tool3-cik" placeholder="e.g., 0000789019">
 
940
  <div class="example-item"><span class="example-label">Or:</span> Leave empty to get all filing types</div>
941
  </div>
942
  </div>
943
+ <div class="api-example-box">
944
+ <div class="api-title">API Request Example</div>
945
+ <pre>{
946
+ <span class="json-key">"jsonrpc"</span>: <span class="json-string">"2.0"</span>,
947
+ <span class="json-key">"id"</span>: <span class="json-number">1</span>,
948
+ <span class="json-key">"method"</span>: <span class="json-string">"tools/call"</span>,
949
+ <span class="json-key">"params"</span>: {
950
+ <span class="json-key">"name"</span>: <span class="json-string">"get_company_filings"</span>,
951
+ <span class="json-key">"arguments"</span>: {
952
+ <span class="json-key">"cik"</span>: <span class="json-string">"0000789019"</span>,
953
+ <span class="json-key">"form_types"</span>: [<span class="json-string">"10-K"</span>, <span class="json-string">"10-Q"</span>]
954
+ }
955
+ }
956
+ }</pre>
957
+ </div>
958
  <div class="param-group">
959
  <label>CIK Code *</label>
960
  <input type="text" id="tool4-cik" placeholder="e.g., 0000789019">
 
994
  <div class="example-item"><span class="example-label">NVIDIA:</span> "0001045810"</div>
995
  </div>
996
  </div>
997
+ <div class="api-example-box">
998
+ <div class="api-title">API Request Example</div>
999
+ <pre>{
1000
+ <span class="json-key">"jsonrpc"</span>: <span class="json-string">"2.0"</span>,
1001
+ <span class="json-key">"id"</span>: <span class="json-number">1</span>,
1002
+ <span class="json-key">"method"</span>: <span class="json-string">"tools/call"</span>,
1003
+ <span class="json-key">"params"</span>: {
1004
+ <span class="json-key">"name"</span>: <span class="json-string">"get_latest_financial_data"</span>,
1005
+ <span class="json-key">"arguments"</span>: {
1006
+ <span class="json-key">"cik"</span>: <span class="json-string">"0000789019"</span>
1007
+ }
1008
+ }
1009
+ }</pre>
1010
+ </div>
1011
  <div class="param-group">
1012
  <label>CIK Code *</label>
1013
  <input type="text" id="tool5-cik" placeholder="e.g., 0000789019">
 
1037
  <div class="example-item"><span class="example-label">Format:</span> YYYY for annual, YYYYQX for quarterly</div>
1038
  </div>
1039
  </div>
1040
+ <div class="api-example-box">
1041
+ <div class="api-title">API Request Example</div>
1042
+ <pre>{
1043
+ <span class="json-key">"jsonrpc"</span>: <span class="json-string">"2.0"</span>,
1044
+ <span class="json-key">"id"</span>: <span class="json-number">1</span>,
1045
+ <span class="json-key">"method"</span>: <span class="json-string">"tools/call"</span>,
1046
+ <span class="json-key">"params"</span>: {
1047
+ <span class="json-key">"name"</span>: <span class="json-string">"get_financial_data"</span>,
1048
+ <span class="json-key">"arguments"</span>: {
1049
+ <span class="json-key">"cik"</span>: <span class="json-string">"0000789019"</span>,
1050
+ <span class="json-key">"period"</span>: <span class="json-string">"2024"</span>
1051
+ }
1052
+ }
1053
+ }</pre>
1054
+ </div>
1055
  <div class="param-group">
1056
  <label>CIK Code *</label>
1057
  <input type="text" id="tool6-cik" placeholder="e.g., 0000789019">
 
1086
  <div class="example-item"><span class="example-label">Note:</span> Returns annual + quarterly data (if available)</div>
1087
  </div>
1088
  </div>
1089
+ <div class="api-example-box">
1090
+ <div class="api-title">API Request Example</div>
1091
+ <pre>{
1092
+ <span class="json-key">"jsonrpc"</span>: <span class="json-string">"2.0"</span>,
1093
+ <span class="json-key">"id"</span>: <span class="json-number">1</span>,
1094
+ <span class="json-key">"method"</span>: <span class="json-string">"tools/call"</span>,
1095
+ <span class="json-key">"params"</span>: {
1096
+ <span class="json-key">"name"</span>: <span class="json-string">"extract_financial_metrics"</span>,
1097
+ <span class="json-key">"arguments"</span>: {
1098
+ <span class="json-key">"cik"</span>: <span class="json-string">"0000789019"</span>,
1099
+ <span class="json-key">"years"</span>: <span class="json-number">3</span>
1100
+ }
1101
+ }
1102
+ }</pre>
1103
+ </div>
1104
  <div class="param-group">
1105
  <label>CIK Code *</label>
1106
  <input type="text" id="tool7-cik" placeholder="e.g., 0000789019">
 
1280
  return {
1281
  "status": "healthy",
1282
  "server": "sec-financial-data",
1283
+ "version": "2.2.3",
1284
  "protocol": "MCP",
1285
  "transport": "SSE",
1286
  "tools_count": len(MCP_TOOLS),