← 返回首页

在trae当中导入AKSHARE —MCP的方法

首先执行CMD命令:

PYTHON
:: 卸载现有mcp包
C:\Users\Administrator\AppData\Local\Programs\Python\Python312\python.exe -m pip uninstall mcp -y

:: 强制安装mcp<2(1.x版本)和全部依赖
C:\Users\Administrator\AppData\Local\Programs\Python\Python312\python.exe -m pip install "mcp<2" fastmcp akshare-stock-mcp akshare pandas --force-reinstall

:: 校验mcp版本,确认是1.x
C:\Users\Administrator\AppData\Local\Programs\Python\Python312\python.exe -m pip show mcp

:: 导入功能测试,出现 ✅导入成功 代表环境就绪
C:\Users\Administrator\AppData\Local\Programs\Python\Python312\python.exe -c "from mcp.server.fastmcp import FastMCP;print('✅导入成功')"

然后填入MCP的JSON配置:

CODE
{
  "mcpServers": {
    "akshare-stock": {
      "command": "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python312\\python.exe",
      "args": [
        "-m",
        "akshare_stock_mcp.server"
      ]
    }
  }
}

直接使用不行,需要调用AI进行如下调整:
已做的修复
修改了 server.py,为核心行情接口增加了东财 → 腾讯源的自动 fallback 机制:

_get_all_stock_spot() — 新增辅助函数,优先调用东财 stock_zh_a_spot_em(),失败时自动切换到腾讯 stock_zh_a_spot_tx(),并将腾讯字段(英文)映射为东财兼容的中文字段(代码、名称、最新价、涨跌幅、成交量、成交额、振幅、换手率、市盈率、总市值等),同时做单位换算(成交额万元→元,市值亿元→元)。

get_stock_realtime / get_market_realtime_top / search_stock — 改用 _get_all_stock_spot()。

get_stock_history — 东财 stock_zh_a_hist 失败时 fallback 到腾讯 stock_zh_a_hist_tx,映射字段并计算涨跌幅、涨跌额、振幅、换手率。

_safe_call — 修复原代码 bug:当函数返回值已是 JSON 字符串时不再重复序列化。

验证结果(模拟东财失败场景)
get_stock_realtime('000001') → 平安银行:价 11.70,跌幅 -0.68%,PE 5.22 ✅
get_stock_realtime('600519') → 贵州茅台:价 1290.88,跌幅 -1.41% ✅
search_stock('茅台') → 正确返回 ✅
get_stock_history('000001') → 返回6天K线,含涨跌幅/振幅/换手率 ✅
你需要做的
在 Trae 中重启 akshare MCP 服务器(在 MCP 管理面板禁用再启用 mcp_akshare-stock,或重启 Trae),让修改后的代码生效。重启后行情接口即可通过腾讯源正常返回数据。

注意:fallback 模式下,实时行情的「最高/最低/今开/昨收/市净率」字段腾讯源不提供,会返回 null;其余核心字段(价格、涨跌幅、成交量、成交额、换手率、市盈率、市值)均正常。东财网关恢复后会自动切回东财源。

💬 评论 (0)

今日还可评论 3 条

还没有评论,来抢沙发吧。