该项目是一个专注于A股市场的MCP服务器,提供各种查询功能,如基本股票信息、历史K线数据、财务指标和宏观经济数据。理论上,它可以回答与A股市场相关的任何问题,无论是整体市场还是特定股票。
<div align="center"> <img src="https://gips0.baidu.com/it/u=71712546,4243142551&fm=3081&app=3081&f=PNG?w=900&h=9" width="100%"> </div>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配置示例
<div align="center">
<img src="https://gips0.baidu.com/it/u=71712546,4243142551&fm=3081&app=3081&f=PNG?w=900&h=9" width="100%">
</div>
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客户端而异),并在 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 后,此项可能不再必需,但建议保留作为备用
}
// ... 其他服务器 ...
}
}
注意事项:
command 确保填写的 uv 命令或 uv.exe 绝对路径是可访问且可执行的。args 确保参数列表完整且顺序正确。\\---。
这是一个Windows特定的情况。在macOS或Linux系统中,使用正斜杠
/作为目录分隔符时,不需要这样的转义。
workingDirectory 尽管 uv --directory 应该解决了工作目录的问题,但如果客户端仍然报错 ModuleNotFoundError,您可以尝试显式地在客户端配置中设置此项目为项目的根目录绝对路径。在CherryStudio的MCP服务器配置界面中,填写如下内容:
名称 根据上述信息,执行以下指令:您是一位负责将中文内容翻译成英文的专业翻译人员。请帮我翻译原文 本地 A 股 MCP 服务器 根据上述信息,执行以下指令:您是一位负责将中文内容翻译成英文的专业翻译人员。请帮我翻译原文
类型 选择 标准输入/输出(stdio)
命令 根据上述信息,这里是需要执行的指令:您是一位负责将中文内容翻译成英文的专业翻译人员。请帮我翻译原文 uv (或者填写系统中的uv.exe绝对路径)
包管理源 默认
参数 根据上述信息,执行以下指令:您是一位负责将中文内容翻译成英文的专业翻译人员。请帮我翻译原文
--directoryC:\\Users\\YourName\\Projects\\a_share_mcprunpythonmcp_server.py环境变量 根据上述信息,执行以下指令:您是一位负责将中文内容翻译成英文的专业翻译人员。请帮我翻译原文
小技巧(必看): 有时在CherryStudio中填入参数并点击右上角的开关按钮后,可能没有响应。此时只需点击左侧目录中的任意按钮,弹出MCP设置界面,再返回MCP设置界面,就会发现MCP已经成功配置,绿灯闪烁。
CherryStudio使用示例: 理论上来说,你可以询问关于A股的任何问题


重要提示:
uv 或其绝对路径有效且可执行。MCP服务器提供了以下工具:
<div align="center"> <details> <summary><b>🔍 展开查看全部工具</b></summary> <br> <table> <tr> <th>🏛️ 股票市场数据</th> <th>📊 财务报表数据</th> <th>🔎 市场概览数据</th> </tr> <tr valign="top"> <td> <ul> <li><code>get_historical_k_data</code></li> <li><code>get_stock_basic_info</code></li> <li><code>get_dividend_data</code></li> <li><code>get_adjust_factor_data</code></li> </ul> </td> <td> <ul> <li><code>get_profit_data</code></li> <li><code>get_operation_data</code></li> <li><code>get_growth_data</code></li> <li><code>get_balance_data</code></li> <li><code>get_cash_flow_data</code></li> <li><code>get_dupont_data</code></li> </ul> </td> <td> <ul> <li><code>get_trade_dates</code></li> <li