A Flask server to provide A-share market data via MCP.
Project description
MCP行情服务器 (uv本地安装包) - 安装与使用指南
1. 概述
本项目提供了一个基于Flask的A股行情数据服务器,旨在通过MCP (模型上下文协议) 提供服务。您可以将此服务器打包并通过uv在本地环境中安装和运行。
主要功能包括:
- 获取A股指定标的(指数、个股、ETF等)的历史行情数据(日/周/月频)。
- 获取上海证券交易所最新的股票数据总貌。
- 提供深圳证券交易所行业成交数据的接口(目前为占位符,具体功能待进一步实现)。
2. 先决条件
- Python 3.11 或更高版本
- uv: 一个快速的Python包安装器和解析器。如果尚未安装,请参照其官方文档安装 (通常
pip install uv)。
3. 安装步骤
Using uv
-
Install uv if you haven't already:
pip install uv
-
Install the package using uv:
uv pip install hstock-mcp
4. 运行服务器
安装完成后,推荐使用以下命令通过Python模块执行方式来启动服务器。这种方式可以确保在不同环境下都能准确找到入口点。
python -m mcp_server_lib.cli --host <your_desired_host> --port <your_desired_port>
例如,要在本地 127.0.0.1 的 8888 端口启动服务器:
python -m mcp_server_lib.cli --host 127.0.0.1 --port 8888
服务器启动后,您会看到类似以下的输出:
Starting MCP Server on http://127.0.0.1:8888
* Serving Flask app 'mcp_server_lib.app'
* Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:8888
Press CTRL+C to quit
命令行参数说明:
--host <ip_address>: 服务器监听的主机地址 (默认为127.0.0.1)。使用0.0.0.0可以让服务器从网络中的其他计算机访问。--port <port_number>: 服务器监听的端口号 (默认为5000)。--debug: 启用Flask的调试模式 (默认为关闭)。
关于 mcp-server 命令:
虽然 pyproject.toml 中定义了 mcp-server 命令行脚本,但根据 uv 的安装方式和您的环境PATH配置,此命令可能不会被直接添加到系统的PATH中。因此,强烈建议使用 python -m mcp_server_lib.cli 的方式来启动服务器,以确保跨环境的兼容性和可靠性。
5. API接口简述
服务器启动后,可以通过HTTP GET请求访问以下端点:
-
/mcp/marketdata/history:获取A股历史行情数据。- 参数:
symbol,frequency,start_date(可选),end_date(可选) - 示例:
curl "http://127.0.0.1:8888/mcp/marketdata/history?symbol=000001.SZ&frequency=daily&start_date=2024-04-01&end_date=2024-04-30"
- 参数:
-
/mcp/marketdata/sse/overview:获取上海证券交易所股票数据总貌。- 示例:
curl "http://127.0.0.1:8888/mcp/marketdata/sse/overview" - 注意:此接口的部分数据字段可能因上游数据源问题返回空值。
- 示例:
-
/mcp/marketdata/szse/industry_transactions:获取深圳证券交易所行业成交数据 (当前为占位符,返回501错误)。- 参数:
symbol,date - 示例:
curl "http://127.0.0.1:8888/mcp/marketdata/szse/industry_transactions?symbol=000001&date=20231231"
- 参数:
详细的API设计文档 (api_design_*.md) 之前已提供,可供参考。
6. 项目文件结构 (uv包源文件)
mcp_server_uv_pkg/
├── mcp_server_lib/ # 主要的Python包代码
│ ├── __init__.py
│ ├── app.py # Flask应用定义和API路由
│ ├── akshare_provider.py # AKShare数据源接口实现
│ ├── yahoo_finance_provider.py # Yahoo Finance数据源接口实现
│ └── cli.py # 命令行入口脚本
├── pyproject.toml # uv 和 setuptools 构建配置文件
├── requirements.txt # 依赖列表 (主要供参考,uv使用pyproject.toml)
└── README.md # (本文件) 安装与使用指南
7. 故障排除与已知问题
mcp-server命令未找到: 如上所述,请使用python -m mcp_server_lib.cli启动。- 上交所数据总貌字段为空: 部分数据字段可能返回
null,这可能源于AKShare上游数据的问题。 - 深交所行业成交数据未实现: 此功能当前返回501错误,待后续找到合适的数据源后实现。
如果您在安装或使用过程中遇到任何问题,请检查Python环境、uv安装以及依赖项是否正确安装。
8. 在 Claude Desktop 中使用
In Claude Desktop
- Open Claude Desktop.
- Navigate to the project directory.
- Run the server:
python -m hstock-mcp
9. License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hstock_mcp-0.1.0.tar.gz.
File metadata
- Download URL: hstock_mcp-0.1.0.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0880efdb17d245bbd07256eedaa77975ee2d474d2cf846cb44be95893fba78d4
|
|
| MD5 |
a472b17b33464f2d280d99c761fc827b
|
|
| BLAKE2b-256 |
72fb59588353252fb495368888da8d82392b48453c222a4f587af114b99f16f6
|
File details
Details for the file hstock_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: hstock_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
04256b9baf85dd3c92ff7ddf5f940840a7516a315ed823b124ba2c58be2edb89
|
|
| MD5 |
cbc77f6af9c448cfcf114cc9bda4dcf1
|
|
| BLAKE2b-256 |
2cf3be07717a0a638a99b681ffbccdacbb0ea967cc97dfd7cd48092df8453912
|