{
  "markdown": "# china-stock-mcp\n[![smithery badge](https://smithery.ai/badge/@xinkuang/china-stock-mcp)](https://smithery.ai/server/@xinkuang/china-stock-mcp)\n一款股票 MCP (Model Context Protocol) 服务器，为中国股市数据提供接口。提供了一系列工具，用于获取财务信息，包括历史股票数据、实时数据、新闻数据、财务报表等。\n\n\n\n## 🚀 核心特性\n\n- **双模式运行**: 支持 stdio 本地模式和 HTTP 网络模式\n- **丰富的财务数据**: 涵盖 A/B/H 股数据的全方位获取\n- **实时数据**: 支持实时股价、交易信息等\n- **财务报表**: 资产负债表、利润表、现金流量表等\n- **技术指标**: 30+ 种技术指标自动计算和添加\n- **新闻数据**: 股票相关新闻和公告信息\n- **易用性**: 简单配置即可集成到 AI 助手 (Claude、Cursor 等)\n- **数据缓存**: 内置内存和磁盘缓存机制，提高数据获取效率和响应速度\n- **容器化**: 支持 Docker 部署\n\n## 🛠️ 架构概览\n\n### 主要组件\n\n- `server.py`: MCP 服务器核心，定义所有工具和数据接口\n- `__main__.py`: 命令行入口，支持多种运行模式\n- FastMCP 框架: 处理 MCP 协议通信\n- akshare-one 库: 提供底层的中国股市数据获取能力\n- `cache_utils.py`: 缓存工具，提供内存和磁盘缓存功能\n\n### 支持的数据源\n\n- \\*\\*数据源故障切换\\*\\*: 内置 \\`\\_fetch\\_data\\_with\\_fallback\\` 机制，支持按优先级自动切换数据源。当首选数据源失败或返回空数据时，系统将自动尝试备用数据源，从而提高数据获取的稳定性和可靠性。\n\n- 东方财富 (eastmoney, eastmoney_direct)\n- 新浪财经 (sina)\n- 雪球 (xueqiu)\n## 📋 可用工具\n\n### 1. `获取股票的历史行情数据，支持多种数据源和技术指标` (get_hist_data)\n\n获取股票历史行情数据。\n\n**参数:**\n- `symbol` (string): 股票代码 (例如: '000001')\n- `interval` (Literal): 时间周期: minute, hour, day, week, month, year。默认:day\n- `interval_multiplier` (int): 时间周期乘数\n- `start_date` (string): 开始日期，格式为 YYYY-MM-DD\n- `end_date` (string): 结束日期，格式为 YYYY-MM-DD\n- `adjust` (Literal): 复权类型: none, qfq(前复权), hfq(后复权)。默认：none\n- \\`indicators\\_list\\` \\(string\\|list\\): 要添加的技术指标，可以是逗号分隔的字符串（例如: 'SMA,EMA'）或字符串列表（例如: \\['SMA', 'EMA'\\]）。支持的指标包括: SMA, EMA, RSI, MACD, BOLL, STOCH, ATR, CCI, ADX, WILLR, AD, ADOSC, OBV, MOM, SAR, TSF, APO, AROON, AROONOSC, BOP, CMO, DX, MFI, MINUS\\_DI, MINUS\\_DM, PLUS\\_DI, PLUS\\_DM, PPO, ROC, ROCP, ROCR, ROCR100, TRIX, ULTOSC。常用指标：SMA, EMA, RSI, MACD, BOLL, STOCH, OBV, MFI,建议不超过10个。\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n### 2. `获取股票的实时行情数据，支持多种数据源` (get_realtime_data)\n\n获取实时股票行情数据，支持的数据源包括：eastmoney, eastmoney\\_direct, xueqiu。\n\n**参数:**\n- `symbol` (string): 股票代码 (例如: '000001')\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n### 3. `获取股票相关的新闻数据` (get_news_data)\n\n获取股票相关新闻数据.\n\n**参数:**\n- `symbol` (string): 股票代码 (例如: '000001')\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n### 4. `获取公司的资产负债表数据` (get_balance_sheet)\n\n获取公司资产负债表数据.\n\n**参数:**\n- `symbol` (string): 股票代码 (例如: '000001')\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n### 5. `获取指定股票代码的公司的利润表数据` (get_income_statement)\n\n获取公司利润表数据.\n\n**参数:**\n- `symbol` (string): 股票代码 (例如: '000001')\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n### 6. `获取指定股票代码的公司的现金流量表数据` (get_cash_flow)\n\n获取公司现金流量表数据.\n\n**参数:**\n- `symbol` (string): 股票代码 (例如: '000001')\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n### 7. `获取股票的近 100 个交易日的资金流向数据` (get_fund_flow)\n\n获取股票的近 100 个交易日的资金流向数据。\n\n**参数:**\n- `symbol` (string): 股票代码 (例如: '000001')\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n### 8. `获取公司的内部股东交易数据` (get_inner_trade_data)\n\n获取公司内部股东交易数据.\n\n**参数:**\n- `symbol` (string): 股票代码 (例如: '000001')\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n### 9. `获取三大财务报表的关键财务指标` (get_financial_metrics)\n\n获取三大财务报表的关键财务指标.\n\n**参数:**\n- `symbol` (string): 股票代码 (例如: '000001')\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n### 10. `获取当前时间（ISO格式、时间戳）和最近一个交易日` (get_time_info)\n\n获取当前时间（ISO格式、时间戳）和最近一个交易日.\n\n**参数:** 无\n\n### 11. `获取指定股票的基本概要信息` (get_stock_basic_info)\n\n获取股票基本概要信息，支持 A 股和港股\n\n**参数:**\n- `symbol` (string): 股票代码 (例如: '000001')\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n### 12. `获取单个宏观经济指标数据` (get_macro_data)\n\n获取单个宏观经济指标数据\n\n**参数:**\n- `indicator` (Literal): 要获取的宏观经济指标。支持的指标包括: money_supply, gdp, cpi, pmi, stock_summary。默认: 'gdp'\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n### 13. `分析散户和机构投资者的投资情绪` (get_investor_sentiment)\n\n分析散户和机构投资者的投资情绪\n\n**参数:**\n- `symbol` (string): 股票代码 (例如: '000001')\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n### 14. `获取指定股票的股东情况` (get_shareholder_info)\n\n获取股东情况\n\n**参数:**\n- `symbol` (string): 股票代码 (例如: '000001')\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n### 15. `获取指定股票公司的主要产品或业务构成` (get_product_info)\n\n获取产品情况\n\n**参数:**\n- `symbol` (string): 股票代码 (例如: '000001')\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n### 16. `获取股票的业绩预测数据，包括预测年报净利润和每股收益` (get_profit_forecast)\n\n获取股票的业绩预测数据。\n\n**参数:**\n- `symbol` (string): 股票代码 (例如: '600519')\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n### 17. `获取分红送股详情` (get_stock_fhps_detail)\n\n获取指定股票的分红送股详情数据。\n\n**参数:**\n- `symbol` (string): 股票代码 (例如: '000001')\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n### 18. `获取筹码分布数据` (get_stock_cyq)\n\n获取指定股票的筹码分布数据。\n\n**参数:**\n- `symbol` (string): 股票代码 (例如: '000001')\n- `date` (string): 查询日期，格式为 YYYY-MM-DD\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n### 19. `获取股票研究报告` (get_stock_research_report)\n\n获取指定股票的研究报告数据。\n\n**参数:**\n- `symbol` (string): 股票代码 (例如: '000001')\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n### 20. `获取流通股东数据` (get_stock_circulate_stock_holder)\n\n获取指定股票的流通股东数据。\n\n**参数:**\n- `symbol` (string): 股票代码 (例如: '000001')\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n### 21. `获取高管变动数据` (get_stock_management_change)\n\n获取指定股票的高管变动数据。\n\n**参数:**\n- `symbol` (string): 股票代码 (例如: '000001')\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n\n### 22. `获取限售解禁数据` (get_stock_restricted_release_queue)\n\n获取指定股票的限售解禁数据。\n\n\n**参数:**\n- `symbol` (string): 股票代码 (例如: '000001')\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n\n\n### 23. `获取 A 股代码和名称` (get_stock_a_code_name)\n\n获取所有 A 股股票的代码和名称。\n\n**参数:**\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n\n### 24. `获取股票估值数据` (get_stock_value)\n\n获取指定股票的估值数据。\n\n**参数:**\n- `symbol` (string): 股票代码 (例如: '000001')\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n### 25. `计算指定个股的波动率指标` (get_stock_volatility)\n\n通过分钟级历史行情计算指定个股的波动率指标。\n**参数:**\n- `symbol` (string): 股票代码 (例如: '000001')\n- `start_date`(string): 开始日期\n- `end_date`(string): 结束日期\n- `period` (int): 时间周期，分钟级别 (例如: '1', '5', '15', '30', '60')\")\n- `adjust`(string): 复权类型: none, qfq(前复权), hfq(后复权)。默认：none\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n### 26. `获取所有指数的代码和基本信息` (get_all_cni_indices)\n\n获取所有指数的代码和基本信息，去除实时变动数据并支持缓存。\n\n**参数:**\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n### 27. `获取指定指数的日频率历史行情数据` (get_cni_index_hist)\n\n获取指定指数的日频率历史行情数据。\n\n**参数:**\n- `symbol` (string): 指数代码 (例如: '399005')\n- `start_date` (string): 开始日期，格式为 YYYYMMDD (例如: '20230114')\n- `end_date` (string): 结束日期，格式为 YYYYMMDD (例如: '20240114')\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n### 28. `获取指定指数的成分股样本详情` (get_cni_index_detail)\n\n获取指定指数的成分股样本详情。\n\n**参数:**\n- `symbol` (string): 指数代码 (例如: '399001')\n- `date` (string): 日期，格式为 YYYYMM (例如: '202404')\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n### 29. `获取技术选股指标数据，包括创新高、创新低、连续上涨、连续下跌、持续放量、持续缩量、向上突破、向下突破、量价齐升、量价齐跌、险资举牌。`(get_stock_technical_rank)\n\n**参数:**\n- `indicator_name` (string): 要获取的技术指标名称 (例如: 创新高-创月新高,  创新高-半年新高,  创新高-一年新高,  创新高-历史新高,  创新低-创月新低,  创新低-半年新低,  创新低-一年新低,  创新低-历史新低,  连续上涨,  连续下跌,  持续放量,  持续缩量,  向上突破-5日均线,  向上突破-10日均线,  向上突破-20日均线,  向上突破-30日均线,  向上突破-60日均线,  向上突破-90日均线,  向上突破-250日均线,  向上突破-500日均线,  向下突破-5日均线,  向下突破-10日均线,  向下突破-20日均线,  向下突破-30日均线,  向下突破-60日均线,  向下突破-90日均线,  向下突破-250日均线,  向下突破-500日均线,  量价齐升,  量价齐跌,  险资举牌)\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n### 30. `获取所有行业板块实时行情数据` (get_stock_board_industry_summary)\n**参数:**\n- `output_format` (Literal): 输出数据格式: json, csv, xml, excel, markdown, html。默认:markdown\n\n## 🚀 安装和运行\n### 方法一: 使用 Smithery\n\n通过 [Smithery](https://smithery.ai/server/@xinkuang/china-stock-mcp) 自动安装到 Claude Desktop：\n\n```bash\nnpx -y @smithery/cli install @xinkuang/china-stock-mcp\n```\n\n### 方法二: 使用 Docker\n\n#### 1. 拉取镜像\n```bash\ndocker pull ghcr.io/xinkuang/china-stock-mcp:latest\n```\n\n#### 2. 运行容器\n```bash\ndocker run -p 8081:8081 ghcr.io/xinkuang/china-stock-mcp:latest\n```\n\n### 方法三: 本地源代码安装\n\n#### 1. 环境要求\n- Python 3.12+\n- Git\n- uv (推荐的 Python 包管理器)\n\n#### 2. 克隆仓库\n```bash\ngit clone https://github.com/xinkuang/china-stock-mcp\ncd china-stock-mcp\n```\n\n#### 3. 安装依赖\n```bash\n# 推荐使用 uv 包管理器\nuv sync\n\n# 或者使用 pip\npip install -r requirements.txt\n```\n\n#### 4. 运行服务器\n\n**stdio 模式 (默认，适用于本地 MCP 客户端):**\n```bash\nuv run -m china_stock_mcp\n```\n\n**HTTP 模式 (适用于远程访问):**\n```bash\nuv run -m china_stock_mcp --streamable-http --host 0.0.0.0 --port 8081\n```\n\n服务器将在 `http://localhost:8081/mcp` 提供服务。\n\n## ⚙️ MCP 配置示例\n\n### Claude Desktop 配置\n\n编辑 `claude_desktop_config.json`：\n\n**方式一: 本地源代码**\n```json\n{\n  \"mcpServers\": {\n    \"china-stock-mcp\": {\n      \"command\": \"uv\",\n      \"args\": [\n        \"--directory\",\n        \"/path/to/china_stock_mcp\",\n        \"run\",\n        \"china-stock-mcp\"\n      ]\n    }\n  }\n}\n```\n\n**方式二: 通过 uvx**\n```json\n{\n    \"mcpServers\": {\n        \"china-stock-mcp\": {\n            \"command\": \"uvx\",\n            \"args\": [\n              \"china-stock-mcp\"\n            ]\n        }\n    }\n}\n```\n\n**方式三: HTTP 模式**\n```json\n{\n  \"mcpServers\": {\n    \"china-stock-mcp\": {\n      \"command\": \"uvx\",\n      \"args\": [\"china-stock-mcp\", \"--streamable-http\", \"--host\", \"0.0.0.0\", \"--port\", \"8081\"],\n      \"env\": {\n        \"MCP_BASE_URL\": \"http://localhost:8081/mcp\"\n      }\n    }\n  }\n}\n```\n\n### 其他 AI 客户端配置\n\n**Cursor:**\n```json\n{\n  \"mcpServers\": {\n    \"china-stock-mcp\": {\n      \"command\": \"uvx\",\n      \"args\": [ \"china-stock-mcp\"]\n    }\n  }\n}\n```\n\n**Clion with MCP:**\n```json\n{\n  \"mcpServers\": {\n    \"china-stock-mcp\": {\n      \"command\": \"uvx\",\n    \"args\": [ \"china-stock-mcp\"]\n    }\n  }\n}\n```\n\n## 🏃‍♂️ 命令行参数\n\n- `--streamable-http`: 启用 HTTP 可流式模式 (默认: stdio 模式)\n- `--host`: HTTP 模式下的绑定主机 (默认: 0.0.0.0)\n- `--port`: HTTP 模式下的监听端口 (默认: 8081)\n\n## 📊 数据支持范围\n\n### 股票市场\n- A股 (上证、深证)\n- B股\n- H股 (港股)\n- 中小板、创业板、新三板\n\n### 数据类型\n- 历史行情数据 (分钟级、小时级、日级、周级、月级、年级)\n- 实时行情数据\n- 技术指标计算\n- 新闻资讯\n- 财务报表 (资产负债表、利润表、现金流量表)\n- 财务指标\n- 内部交易数据\n\n## 🔧 开发和贡献\n\n### 开发环境设置\n\n1. 克隆仓库\n```bash\ngit clone https://github.com/xinkuang/china-stock-mcp\ncd china-stock-mcp\n```\n\n2. 安装开发依赖\n```bash\nuv sync --dev\n```\n\n3. 进入开发模式\n```bash\nuv run -m china_stock_mcp\n```\n\n### 代码结构\n\n```\nsrc/china_stock_mcp/\n├── __init__.py\n├── __main__.py    # 命令行入口，处理启动参数\n├── server.py      # MCP 服务器核心，定义所有工具\n├── mcp.json       # MCP 配置规范 (可选)\n└── py.typed       # 类型标注文件\n```\n\n### 添加新工具\n\n在 `server.py` 中使用 `@mcp.tool` 装饰器添加新工具：\n\n```python\n@mcp.tool(name=\"工具中文名称\", description=\"工具的中文描述\")\ndef your_tool_name(param1: Annotated[str, Field(description=\"参数描述\")]) -> str:\n    \"\"\"工具详情描述\"\"\"\n    # 实现逻辑\n    pass\n```\n\n## 📝 许可证\n\nMIT License - 详见 [LICENSE](LICENSE) 文件\n\n## 🤝 贡献\n\n欢迎提交 Issue 和 Pull Request！\n\n## 🙋‍♂️ 常见问题\n\n**Q: 为什么无法获取数据？**\nA: 请检查网络连接和数据源可用性。某些数据源可能有访问限制。\n\n**Q: HTTP 模式下无法连接？**\nA: 确认端口 8081 未被其他服务占用，且防火墙允许相应端口的访问。\n\n**Q: 如何更新到最新版本？**\nA: 使用 Smithery 安装的可以自动更新，手动安装的请重新拉取仓库代码。\n## 🐞 调试\n\n有关如何使用 @modelcontextprotocol/inspector 调试此服务器的详细信息，请参阅 [DEBUG.md](DEBUG.md)。\n\n",
  "bytes": 11539,
  "sha": "d09ae761d90971713da998d7b5606f510a0a146d561d4ec549b9c961dd2bcf74",
  "repo_slug": "xinkuang/china-stock-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_ai_smithery_xinkuang_china_stock_mcp_a4681b1a/readme"
}