股票数据服务

一个轻量级的MCP服务器,提供实时和历史股票数据获取功能,支持与AI客户端的快速集成。

  • by mrkivan
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 mrkivan/mcp-stock-server

使用说明

📘MCP库存工具服务器

轻量级 模型上下文协议(MCP) 服务器构建于 FastMCP,提供AI可访问的提取工具 实时的 和 历史库存数据 从 Finnhub 和 十二数据.


🚀 特性

  • 🔹 实时股票报价 来自Finnhub
  • 🔹 历史每日股票价格 来自十二个数据(可按月配置)
  • 🔹 FastMCP兼容 --易于与LLM和AI客户端集成
  • 🔹 HTTP/SSE传输 支持
  • 🔹 易于在本地运行或在生产中部署

🧩 技术栈

组件 描述
FastMCP 轻量级MCP服务器框架
Python 3.9+ 核心运行时
请求: 用于调用外部股票API
HTTP传输(SSE) 启用远程MCP客户端连接

⚙️ 安装

1.️⃣ 克隆存储库

git clone https://github.com/your-username/mcp-stock-tools.git
cd mcp-stock-tools

2.️⃣ 安装依赖项

pip install fastmcp requests

3.️⃣ 设置API密钥

您需要来自的免费API密钥 Finnhub.io 和 TwelveData.com.

macOS/Linux:

export FINNHUB_API_KEY=your_finnhub_api_key
export TWELVEDATA_API_KEY=your_twelvedata_api_key

Windows(PowerShell):

setx FINNHUB_API_KEY "your_finnhub_api_key"
setx TWELVEDATA_API_KEY "your_twelvedata_api_key"

▶️ 运行服务器

python server.py

如果成功,您将看到:

Starting MCP server on http://127.0.0.1:8000/mcp

这将运行一个基于HTTP的MCP服务器 两个工具:

  • fetch_finnhub_quote --Finnhub的实时价格
  • fetch_twelve_data_history --Twelve Data的每日价格历史

💡 MCP工具示例

fetch_finnhub_quote

获取最新的股票价格。

result = await client.call_tool("fetch_finnhub_quote", {"symbol": "AAPL"})

输出:

{
  "c": 189.7,
  "h": 190.5,
  "l": 188.2,
  "o": 189.1,
  "pc": 188.8,
  "t": 1731498361
}

fetch_twelve_data_history

获取过去N个月(1-12)的历史每日数据。

result = await client.call_tool("fetch_twelve_data_history", {"symbol": "AAPL", "months": 3})

输出(截断):

{
  "meta": {...},
  "values": [
    {"datetime": "2025-11-11", "open": "189.5", "close": "190.1", "high": "191.0", "low": "188.9"},
    ...
  ]
}

🧠 客户端示例

您可以使用FastMCP客户端测试您的服务器:client.py

运行它:

python client.py

🧪 调试/开发技巧

  • 📝 日志打印到控制台,便于调试
  • ❌ 如果您看到“API错误”,请检查您的API密钥限制或连接
  • 🔌 您可以连接任何兼容MCP的LLM或应用程序(例如Claude Desktop)

🔒 环境变量

名称 描述 必填
FINNHUB_API_KEY 的API密钥 Finhub.io ✅
TWELVEDATA_API_KEY 的API密钥 twelveda.com ✅

📜 许可证

麻省 理工 学院 执照© 2025年[导演:卡里姆·伊万] 该项目用于教育和研究目的。