Skip to main content

A Flask server to provide A-share market data via MCP.

Project description

MCP行情服务器 (PyPI & uvx/JSON 安装) - 安装与使用指南

1. 概述

本项目提供了一个基于Flask的A股行情数据服务器,旨在通过MCP (模型上下文协议) 提供服务。您可以将此服务器通过PyPI发布,并使用uvx命令或JSON配置在MCP客户端(如Cursor, Cherry Studio)中自动安装和运行。

主要功能包括:

  • 获取A股指定标的(指数、个股、ETF等)的历史行情数据(日/周/月频)。
  • 获取上海证券交易所最新的股票数据总貌。
  • 提供深圳证券交易所行业成交数据的接口(目前为占位符,具体功能待进一步实现)。

2. 先决条件

  • Python 3.11 或更高版本
  • uv: 一个快速的Python包安装器和解析器。如果尚未安装,请参照其官方文档安装 (通常 pip install uv)。

3. 安装与运行 (通过 uvx)

一旦该包发布到PyPI (包名为 hstock-mcp),您可以使用 uvx 直接运行它。uvx 会自动处理包的下载、安装到临时环境和执行。

# 假设包已发布到PyPI
uvx hstock-mcp --host <your_desired_host> --port <your_desired_port>

例如,要在本地 127.0.0.18888 端口启动服务器:

uvx hstock-mcp --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

命令行参数说明 (由 hstock-mcp 提供):

  • --host <ip_address>: 服务器监听的主机地址 (默认为 127.0.0.1)。使用 0.0.0.0 可以让服务器从网络中的其他计算机访问。
  • --port <port_number>: 服务器监听的端口号 (默认为 5000)。
  • --debug: 启用Flask的调试模式 (默认为关闭)。

4. MCP客户端JSON配置示例

对于支持JSON配置的MCP客户端,您可以使用类似以下的配置来集成此服务器:

{
  "mcpServers": {
    "my_ashare_market_data": {  // 您可以自定义此键名
      "command": "uvx",
      "args": [
        "hstock-mcp", // PyPI上的包名
        "--host", "0.0.0.0",   // 示例:监听所有接口
        "--port", "8889"      // 示例:使用8889端口
        // 您可以根据需要添加其他命令行参数,如 --debug
      ],
      "env": {},
      "disabled": false
    }
  }
}

说明:

  • "command": "uvx": 指定使用 uvx 来执行。
  • "args": ["hstock-mcp", ...] : 第一个参数是PyPI上的包名,后续参数是传递给服务器启动脚本的命令行参数。

5. API接口简述

服务器启动后,可以通过HTTP GET请求访问以下端点:

  • /mcp/marketdata/history:获取A股历史行情数据。

    • 参数: symbol, frequency, start_date (可选), end_date (可选)
    • 示例: curl "http://127.0.0.1:8889/mcp/marketdata/history?symbol=000001.SZ&frequency=daily&start_date=2024-04-01&end_date=2024-04-30" (假设服务器运行在8889端口)
  • /mcp/marketdata/sse/overview:获取上海证券交易所股票数据总貌。

    • 示例: curl "http://127.0.0.1:8889/mcp/marketdata/sse/overview"
    • 注意:此接口的部分数据字段可能因上游数据源问题返回空值。
  • /mcp/marketdata/szse/industry_transactions:获取深圳证券交易所行业成交数据 (当前为占位符,返回501错误)。

    • 参数: symbol, date
    • 示例: curl "http://127.0.0.1:8889/mcp/marketdata/szse/industry_transactions?symbol=000001&date=20231231"

详细的API设计文档 (api_design_*.md) 之前已提供,可供参考。

6. 项目文件结构 (用于PyPI发布)

hstock-mcp/
├── 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. 故障排除与已知问题

  • uvx 执行问题: 确保 uv 已正确安装并配置在系统PATH中。网络连接必须可用以下载PyPI包。
  • 上交所数据总貌字段为空: 部分数据字段可能返回null,这可能源于AKShare上游数据的问题。
  • 深交所行业成交数据未实现: 此功能当前返回501错误,待后续找到合适的数据源后实现。

如果您在安装或使用过程中遇到任何问题,请检查Python环境、uv安装以及依赖项是否正确安装。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hstock_mcp-0.2.0.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hstock_mcp-0.2.0-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file hstock_mcp-0.2.0.tar.gz.

File metadata

  • Download URL: hstock_mcp-0.2.0.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for hstock_mcp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 d30dc8be4a738dd022620a24b45630566d4031db7341f53be3bb0587112bf9e1
MD5 afab838d23ab16fb36bd5e7c45dd15f3
BLAKE2b-256 a3e965550f1e6f36f032fd22dd816bf973a4198fb7639a3838edd842948128c3

See more details on using hashes here.

File details

Details for the file hstock_mcp-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: hstock_mcp-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for hstock_mcp-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 79a05358aa83790fb82896c2556c0351af71b83940f2262aeacf5fb74247abcd
MD5 f030a2b305724bc631a9f38cf4f09616
BLAKE2b-256 5a0ac22bd87097f521f7bbca8ce9f8fe21d9f15b1d20880767245bf761328bc0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page