A股
HTTP-SSESTDIO提供A股市场数据和金融分析的MCP服务器
提供A股市场数据和金融分析的MCP服务器
本项目是一个基于专注于 A 股市场的 MCP 服务器,它提供股票基本信息、历史 K 线数据、财务指标、宏观经济数据等多种查询功能,理论上来说,可以回答有关 A 股市场的任何问题,无论是针对大盘还是特定股票。
a_share_mcp/
│
├── mcp_server.py           # 主服务器入口文件
├── pyproject.toml          # 项目依赖配置
├── README.md               # 项目说明文档
│
├── docs/                   # 项目文档
│   ├── baostock_com.md     # Baostock API文档
│   ├── mcp_server_docs.md  # 服务器文档
│   └── dev_docs/           # 开发文档
│       ├── AppFlow.md
│       ├── ImplementationPlan.md
│       └── PRD.md
│
├── src/                    # 源代码目录
│   ├── __init__.py
│   ├── baostock_data_source.py   # Baostock数据源实现
│   ├── data_source_interface.py  # 数据源接口定义
│   ├── utils.py                  # 通用工具函数
│   │
│   ├── formatting/         # 数据格式化模块
│   │   ├── __init__.py
│   │   └── markdown_formatter.py  # Markdown格式化工具
│   │
│   └── tools/              # MCP工具模块
│       ├── __init__.py
│       ├── base.py                # 基础工具函数
│       ├── stock_market.py        # 股票市场数据工具
│       ├── financial_reports.py   # 财务报表工具
│       ├── indices.py             # 指数相关工具
│       ├── market_overview.py     # 市场概览工具
│       ├── macroeconomic.py       # 宏观经济数据工具
│       ├── date_utils.py          # 日期工具
│       └── analysis.py            # 分析工具
│
└── resource/               # 资源文件
    └── img/                # 图片资源
        ├── img_1.png       # CherryStudio配置示例
        └── img_2.png       # CherryStudio配置示例
股票基础数据  | 历史行情数据  | 财务报表数据  | 
宏观经济数据  | 指数成分股  | 数据分析报告  | 
uv 包管理器安装依赖以下是 Baostock 官方数据更新时间,请注意查询最新数据时的时间点 Baostock 官网
每日数据更新时间:
每周数据更新时间:
所以说,在交易日的当天,如果是在 17:30 之前询问当天的数据,是无法获取到的。
在项目根目录下执行:
要启动 A 股 MCP 服务器,请按照以下步骤操作:
# 1. 创建虚拟环境(仅创建,不会安装任何包) uv venv # 2. 激活虚拟环境 # Windows .venv\Scripts\activate # macOS/Linux # source .venv/bin/activate # 3. 安装所有依赖(必须在激活的虚拟环境中执行) uv sync
在支持 MCP 的客户端(如 VS Code 插件、CherryStudio 等)中,你需要配置如何启动此服务器。 推荐使用 uv。
对于需要编辑 JSON 文件来配置 MCP 服务器的客户端,你需要找到对应的能配置 MCP 的地方(各个 IDE 和桌面 MCP Client 可能都不一样),并在 mcpServers 对象中添加一个新的条目。
JSON 配置示例 (请将路径替换为你的实际绝对路径):
{ "mcpServers": { "a-share-mcp": { "command": "uv", // 或者 uv.exe 的绝对路径, 例如: "C:\\path\\to\\uv.exe" "args": [ "--directory", "C:\\Users\\YourName\\Projects\\a_share_mcp", // 替换为你的项目根目录绝对路径,不一定是C盘,按实际的填写 "run", "python", "mcp_server.py" ], "transport": "stdio" // "workingDirectory": "C:\\Users\\YourName\\Projects\\a_share_mcp", // 使用 uv --directory 后,此项可能不再必需,但建议保留作为备用 } // ... other servers ... } }
注意事项:
command: 确保填写的 uv 命令或 uv.exe 的绝对路径是客户端可以访问和执行的。args: 确保参数列表完整且顺序正确。\\。
这是 Windows 系统特有的情况。如果是在 macOS 或 Linux 系统中,路径使用正斜杠/作为目录分隔符,就不需要这种转义处理。
workingDirectory: 虽然 uv --directory 应该能解决工作目录问题,但如果客户端仍然报错 ModuleNotFoundError,可以尝试在客户端配置中明确设置此项为项目根目录的绝对路径。在 CherryStudio 的 MCP 服务器配置界面中,按如下方式填写:
名称: a-share-mcp (或自定义)
描述: 本地 A 股 MCP 服务器 (或自定义)
类型: 选择 标准输入/输出 (stdio)
命令: uv (或者填系统中绝对路径下 uv.exe)
包管理源: 默认
参数:
--directoryC:\\Users\\YourName\\Projects\\a_share_mcprunpythonmcp_server.py环境变量: (通常留空)
Tricks(必看): 有时候在 Cherrystudio 填写好参数后,点击右上方的开关按钮,会发现没任何反应,此时只要随便点击左侧目录任一按钮,跳出 mcp 设置界面,然后再回到 mcp 设置界面,就会发现 mcp 已经闪绿灯配置成功了。
CherryStudio 使用示例: 理论上来说,你可以问有关 A 股的任何问题 :)


重要提示:
uv 或其绝对路径有效且可执行。该 MCP 服务器提供以下工具:
| 🏛️ 股票市场数据 | 📊 财务报表数据 | 🔎 市场概览数据 | 
|---|---|---|
          
  | 
          
  | 
          
  | 
| 📈 指数相关数据 | 🌐 宏观经济数据 | ⏰ 日期工具 & 分析 | 
          
  | 
          
  | 
          
  | 
欢迎提交 Issue 或 Pull Request 来帮助改进项目。贡献前请先查看现有 Issue 和文档。
如果这个项目对你有帮助,欢迎请我喝杯咖啡 ❤️
本项目采用 MIT 许可证 - 详情请查看 LICENSE 文件
本次更新围绕“为代理编写高效工具”的实践进行,重点提升工具可发现性、可组合性与上下文效率。
	ext get_index_constituents(index='hs300', format='json', limit=100) search_stocks(keyword='600', date='2025-01-10', limit=20) get_historical_k_data(code='sh.600000', start_date='2024-01-01', end_date='2024-06-30', frequency='d', format='csv', limit=200) previous_trading_day('2025-01-04') normalize_stock_code('000001.SZ')  # -> 'sz.000001'