股票数据API服务

基于yfinance和FastMCP构建的股票市场数据API服务,提供实时股票报价、历史数据、财务报表、新闻和分析师推荐等功能,支持认证、缓存和监控。

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

使用说明

金融MCP服务器

股票市场数据API服务器由yfnance和FastMCP构建,具有身份验证、缓存和监控功能。

特性

  • 📊 实时股票报价和历史数据
  • 📈 财务报表和基本面
  • 📰 新闻和分析师建议
  • 🔐 基于标头的身份验证
  • 💾 智能缓存(20s TTL)
  • 📝 结构化日志记录
  • ❤️ 健康检查端点
  • 🌐 CORS支持
  • 📊 内置指标

快速开始

本地开发

# Install dependencies
uv sync

# Run in local stdio mode (for MCP client development)
python main.py --local

# Run in HTTP mode for testing
export PORT=8080
python main.py

生产部署

# Using uvicorn (recommended for production)
uvicorn main:app --host 0.0.0.0 --port 8080

# With multiple workers for better performance
uvicorn main:app --host 0.0.0.0 --port 8080 --workers 4

部署以渲染

看 部署.md 了解详细的部署说明。

API终点

所有工具均可作为MCP工具使用:

  • health -服务器状态和指标
  • quote -获取当前股价
  • history -历史OHLCV数据
  • fundamentals -公司基本面
  • financials -财务报表
  • holders -机构持有人
  • news -最新动态
  • analyst_recommendations -分析师评级
  • calendar -即将举行的活动
  • options_expirations -可用选项日期
  • option_chain -期权链数据

配置

环境变量

变量 默认值 描述
MCP_CLIENT_ID stock-mcp-client 验证客户端ID
MCP_CLIENT_SECRET super-secret-key 身份验证密钥
PORT 8080 服务器端口(HTTP模式)
LOG_LEVEL INFO 日志记录级别
REQUEST_TIMEOUT 30 y融资超时(秒)
RATE_LIMIT_REQUESTS 100 每分钟请求数
CORS_ORIGINS * 允许的CORS源(逗号分隔)

认证

在所有请求中包含标头:

X-Client-Id: your-client-id
X-Client-Secret: your-secret

示例

使用curl

# Health check
curl -H "X-Client-Id: stock-mcp-client" \
     -H "X-Client-Secret: super-secret-key" \
     http://localhost:8080/health

# Get quote
curl -H "X-Client-Id: stock-mcp-client" \
     -H "X-Client-Secret: super-secret-key" \
     http://localhost:8080/quote?symbol=AAPL

生产特点

✅ 具有可配置级别的结构化日志记录 ✅ 全面的错误处理 ✅ 用于监控的健康检查端点 ✅ 请求/错误/缓存指标 ✅ web客户端的CORS支持 ✅ 启动时的环境验证 ✅ 智能缓存可减少API调用

发展

# Run tests
uv run pytest

# Format code
uv run black main.py

# Type check
uv run mypy main.py

许可证

麻省理工学院