File size: 3,388 Bytes
a83fef2
 
 
 
 
c83dd38
 
fb3d9a1
a83fef2
c83dd38
a83fef2
 
de02ce8
6a0bd49
de02ce8
6a0bd49
de02ce8
6a0bd49
de02ce8
 
 
 
 
 
6a0bd49
de02ce8
6a0bd49
de02ce8
 
 
 
 
 
 
6a0bd49
de02ce8
6a0bd49
de02ce8
 
 
6a0bd49
de02ce8
6a0bd49
de02ce8
6a0bd49
de02ce8
6a0bd49
de02ce8
 
 
 
b1bccee
de02ce8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6a0bd49
 
de02ce8
 
6a0bd49
 
de02ce8
 
 
 
 
 
 
 
 
 
6a0bd49
 
 
de02ce8
 
 
 
 
 
 
 
 
 
6a0bd49
de02ce8
cd1f91e
6a0bd49
 
cd1f91e
de02ce8
 
 
 
 
cd1f91e
 
 
de02ce8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
---

title: SEC Financial Data MCP Server
emoji: 📊
colorFrom: blue
colorTo: green
sdk: gradio
sdk_version: 4.44.0
app_file: app.py
pinned: false
license: mit
---


# SEC Financial Data MCP Server (FastMCP)

🚀 **已迁移到 Anthropic 官方 FastMCP SDK** - 代码量减少 84%,更简洁、更易维护!

## ✨ 新特性

- ✅ 使用 Anthropic 官方 FastMCP SDK (v1.2.0)
- ✅ 代码从 636 行缩减到 ~200 行 (减少 84%)
- ✅ 纯 JSON 响应(`json_response=True`- ✅ 使用装饰器定义工具(`@mcp.tool()`- ✅ 100% MCP 协议兼容
- ✅ SSE 传输支持

## 📊 工具列表

1. **search_company** - 按公司名称搜索

2. **get_company_info** - 获取公司详细信息

3. **get_company_filings** - 获取SEC文件列表

4. **get_financial_data** - 获取特定期间财务数据

5. **extract_financial_metrics** - 提取多年财务指标(支持按年度和季度,时间降序)

6. **get_latest_financial_data** - 获取最新财务数据
7. **advanced_search_company** - 高级搜索(支持公司名/CIK)

## 🔗 MCP 端点

- **SSE 传输**: `https://your-space.hf.space/sse`
- **方法**: POST
- **格式**: JSON-RPC 2.0

## 📝 使用示例

### 客户端配置

将以下配置添加到你的 MCP 客户端(如 Claude Desktop):

```json

{

  "mcpServers": {

    "sec-financial-data": {

      "url": "https://jc321-easyreportdatamcp.hf.space/sse",

      "transport": "sse"

    }

  }

}

```

### MCP 请求示例

```json

{

  "jsonrpc": "2.0",

  "method": "tools/call",

  "params": {

    "name": "search_company",

    "arguments": {

      "company_name": "Tesla"

    }

  },

  "id": 1

}

```

### 响应格式(纯 JSON)

```json

{

  "jsonrpc": "2.0",

  "id": 1,

  "result": {

    "content": [

      {

        "type": "text",

        "text": "{\"cik\":\"0001318605\",\"name\":\"TESLA, INC.\",\"tickers\":[\"TSLA\"],\"sic\":\"3711\",\"sic_description\":\"Motor Vehicles & Passenger Car Bodies\"}"

      }

    ]

  }

}

```

## 🚀 部署

### Hugging Face Space

1. 推送代码到 HF Space
2. 服务自动启动在端口 7860
3. MCP 端点: `https://your-space.hf.space/sse`

### 本地运行

```bash

pip install -r requirements.txt

python app.py

```

服务将启动在 `http://0.0.0.0:7860/sse`

## 📦 依赖

- `mcp[cli]==1.2.0` - Anthropic 官方 MCP SDK
- `sec-edgar-api==1.1.0` - SEC EDGAR API
- `fastapi==0.109.0` - Web 框架
- `uvicorn[standard]>=0.30` - ASGI 服务器(mcp 要求 >=0.30)
- `pydantic>=2.10.1` - 数据验证(mcp 要求 >=2.10.1)

## 🔄 从旧版本迁移

旧版本使用的是手动实现的 MCP 服务器(`mcp_server_sse.py`)。新版本已完全迁移到 FastMCP:

- ✅ 所有 7 个工具功能完全相同
- ✅ 所有响应格式完全相同(纯 JSON)
- ✅ MCP 客户端配置只需将 URL 端点从 `/sse` 保持为 `/sse`(无需更改)
- ✅ 代码更简洁,维护更容易

## 📚 技术栈

- **MCP SDK**: Anthropic FastMCP 1.2.0
- **SEC API**: sec-edgar-api 1.1.0
- **Web框架**: FastAPI + Uvicorn
- **Python**: 3.10+

## 🎯 数据排序

财务数据按时间降序排列:
- FY2024 → 2024Q4 → 2024Q3 → 2024Q2 → 2024Q1
- FY2023 → 2023Q4 → 2023Q3 → 2023Q2 → 2023Q1
- ...

## 📄 License

MIT License