金融数据MCP服务器

基于AKShare的金融数据MCP服务器,为Claude等AI助手提供全面的中国金融市场数据检索功能,支持股票、基金、期货、经济指标等多种数据类型。

  • by jadenmong
  • JavaScript
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 jadenmong/akshare-mcp-server

使用说明

AKShare MCP服务器

英语 | 中文版

基于AKShare的金融数据MCP(模型上下文协议)服务器,为Claude和其他AI助手提供全面的中国金融市场数据检索功能。支持股票、基金、期货、经济指标等。

🚀 快速开始

先决条件

  • Node.js:18.0.0或更高
  • python3.8或更高版本(仅适用于Python版本)

安装

# 1. Clone the project
git clone https://github.com/jadenmong/akshare-mcp-server.git
cd akshare-mcp-server

# 2. Install Node.js dependencies
npm install

# 3. Start the server (HTTP version, recommended - no Python dependencies)
npm start

# Or start Python version (requires Python and akshare installation)
npm run start:python

版本信息

该项目提供了两种MCP服务器实现:

HTTP版本(推荐):

  • ✅ 零Python依赖,随时可用
  • ✅ 基于AKShare HTTP API,稳定可靠
  • ✅ 内置回退数据确保服务可用性
  • ✅ 部署简单,启动速度快

Python版本:

  • ✅ 直接AKShare库调用,数据更丰富
  • ✅ 支持更多数据类型(期货、经济指标)
  • ❌ 需要本地Python 3.8+环境
  • ❌ 需要安装akshare库

⚙️ 配置

Claude桌面配置

将以下配置添加到您的Claude Desktop配置文件中:

视窗: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Linux: ~/.config/claude/claude_desktop_config.json

HTTP版本配置(推荐):

{
  "mcpServers": {
    "akshare": {
      "command": "node",
      "args": ["<your-project-path>/src/http-server.js"],
      "description": "AKShare Financial Data MCP Server (HTTP)"
    }
  }
}

Python版本配置:

{
  "mcpServers": {
    "akshare": {
      "command": "node",
      "args": ["<your-project-path>/src/server.js"],
      "description": "AKShare Financial Data MCP Server (Python)"
    }
  }
}

备注:

  • 替换 <your-project-path> 与你的实际绝对路径
  • Windows:使用双反斜杠 \\例如。, D:\\projects\\akshare-mcp-server\\src\\http-server.js
  • macOS/Linux:使用正斜杠 /例如。, /home/user/akshare-mcp-server/src/http-server.js

📋 可用工具

📈 股票数据(HTTP+Python版本)

  • 历史数据: get_stock_historical_data -获取股票历史数据
  • 实时报价: get_stock_realtime_data -获取股票实时报价
  • 库存清单: get_stock_list -获取库存清单

🔍 搜索工具(HTTP新版本)

  • 股票搜索: search_stock -搜索股票信息

💰 基金数据(HTTP+Python版本)

  • 基金列表: get_fund_list -获取资金列表

📊 期货数据(仅Python版本)

  • 期货信息: get_futures_info -获取期货市场数据

🏭 经济数据(仅Python版本)

  • 经济指标: get_economic_data -获取宏观经济数据

版本比较

特性 HTTP版本 Python版本
股票历史数据 ✅ ✅
库存实时数据 ✅ ✅
库存清单 ✅ ✅
股票搜索 ✅ ❌
基金数据 ✅ ✅
期货数据 ❌ ✅
经济数据❌ ✅

🏗️ 项目结构

akshare-mcp-server/
├── src/
│   ├── http-server.js         # HTTP version MCP server (recommended)
│   ├── server.js              # Python version MCP server
│   ├── tools/                 # Financial data tool modules
│   │   ├── stock_tools.js     # Stock data tools
│   │   ├── fund_tools.js      # Fund data tools
│   │   ├── futures_tools.js   # Futures data tools
│   │   └── economic_tools.js  # Economic data tools
│   └── utils/
│       └── toolHelpers.js     # Tool helper functions
├── test/
│   └── test.js                # Automated test suite
├── python_bridge.py           # Python bridge script
├── requirements.txt           # Python dependencies
├── package.json               # Node.js configuration
├── README.md                  # English documentation
├── README_CN.md               # Chinese documentation
└── LICENSE                    # MIT License

📝 用法示例

股票数据示例

获取股票历史数据

{
  "name": "get_stock_historical_data",
  "arguments": {
    "symbol": "000001",
    "period": "daily",
    "start_date": "20240101",
    "end_date": "20240131",
    "adjust": "qfq"
  }
}

获取股票实时报价

{
  "name": "get_stock_realtime_data",
  "arguments": {
    "symbol": "000001"
  }
}

获取库存列表

{
  "name": "get_stock_list",
  "arguments": {
    "market": "all"
  }
}

基金数据示例

获取基金信息

{
  "name": "get_fund_info",
  "arguments": {
    "symbol": "510050"
  }
}

获取资金列表

{
  "name": "get_fund_list",
  "arguments": {
    "type": "etf"
  }
}

期货数据示例

获取期货信息

{
  "name": "get_futures_info",
  "arguments": {
    "symbol": "ag",
    "exchange": "SHFE"
  }
}

经济数据示例

获取经济指标

{
  "name": "get_economic_data",
  "arguments": {
    "indicator": "GDP",
    "start_date": "20240101",
    "end_date": "20241231"
  }
}

🔧 开发和测试

运行测试

该项目包括两个版本的全面自动化测试套件:

npm test

测试覆盖范围包括:

  • 工具列表检索
  • 股票历史数据查询
  • 股票实时报价
  • 库存清单检索
  • 资金数据查询
  • 期货数据查询(Python版本)
  • 经济数据查询(Python版本)

开发模式(自动重启)

# HTTP version development mode
npm run dev

# Python version development mode
npm run dev:python

🔍 故障排除

常见问题

  1. Node.js版本过低

    Error: Node.js version 18.0.0 or higher required
    Solution: Upgrade Node.js to the latest LTS version
    
  2. Python依赖项安装失败

    # Try using a domestic mirror
    pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
    
  3. Claude桌面连接失败

    • 检查配置文件路径是否正确(注意Windows使用双反斜杠)
    • 确认 http-server.js 或 server.js 文件路径存在
    • 重新启动Claude Desktop应用程序
    • 检查Claude Desktop日志输出
  4. 数据检索失败

    • 检查网络连接
    • HTTP版本:确认访问AKShare HTTP API
    • Python版本:确认akshare库已安装(pip list | grep akshare)
    • 检查服务器日志输出是否有错误

调试模式

使用详细的日志记录启动服务器:

DEBUG=akshare:* npm start

🔧 技术特性

  • ⚡ 高性能:支持并发请求的Node.js异步处理
  • 🛡️ 类型安全:使用Zod进行严格的参数验证和类型检查
  • 🌉 巨蟒桥:通过子进程保护AKShare Python库调用
  • 🔧 模块化设计:按金融产品类别组织的工具,便于维护
  • 📊 数据标准化:统一的JSON数据格式和错误处理
  • 🚀 易于扩展:简单的工具定义和添加机制,可快速集成
  • 🔄 双重实施:针对不同用例的HTTP和Python版本
  • ✅ 综合测试:自动化测试套件确保代码质量

📄 许可证

这个项目是MIT许可证下的开源项目。

🙏 致谢

🤝 贡献

欢迎提交问题和拉取请求以改进此项目!

📞 支持

如果您在使用过程中遇到问题,请:

  1. 检查 故障排除 本文档的一节
  2. 提交问题 GitHub 问题
  3. 请咨询 AKShare官方文件

📚 相关文档

🌟 路线图

  • []支持更多金融数据类型(债券、外汇、加密货币)
  • []添加数据缓存机制以提高性能
  • []支持自定义数据源配置
  • []提供Docker镜像以简化部署
  • []添加数据可视化工具集成