Skip to main content
Glama

Stock MCP Server

by huweihua123
GUIDE.md8.77 kB
# 📖 Stock MCP 完整指南 > 快速部署、配置和使用 Stock MCP Server --- ## 📋 目录 - [快速开始](#-快速开始) - [配置详解](#-配置详解) - [Docker 部署](#-docker-部署) - [API 接口](#-api-接口) - [故障排查](#-故障排查) - [高级用法](#-高级用法) --- ## 🚀 快速开始 ### 前置要求 - Docker & Docker Compose - Tushare Token([免费注册](https://tushare.pro/register)) - (可选)代理服务(访问美股数据) ### 5分钟部署 ```bash # 1. 克隆项目 git clone <your-repo-url> cd stock-mcp # 2. 配置环境变量 cp .env.example .env # 编辑 .env,至少配置 TUSHARE_TOKEN vim .env # 3. 启动服务 docker-compose up -d # 4. 验证服务 curl http://localhost:9998/health ``` ### 快速测试 ```bash # 查询贵州茅台股价 curl "http://localhost:9998/api/quote?symbol=600519" # 查询苹果公司股价 curl "http://localhost:9998/api/quote?symbol=AAPL" ``` --- ## ⚙️ 配置详解 ### 核心配置项 #### 1. 数据源配置 ```bash # Tushare(必需)- A股数据 TUSHARE_TOKEN=your_token_here # Finnhub(可选)- 增强美股新闻 FINNHUB_API_KEY=your_key # NewsAPI(可选)- 新闻聚合 NEWS_API_KEY=your_key # Tavily(可选)- AI 搜索和研究 TAVILY_API_KEY=your_key ``` #### 2. 代理配置 **本地运行:** ```bash HTTP_PROXY=http://127.0.0.1:7890 HTTPS_PROXY=http://127.0.0.1:7890 ``` **Docker 环境:** ```bash HTTP_PROXY=http://host.docker.internal:7890 HTTPS_PROXY=http://host.docker.internal:7890 ``` #### 3. Redis 配置 **本地运行:** ```bash REDIS_HOST=localhost REDIS_PORT=6379 ``` **Docker 环境:** ```bash REDIS_HOST=redis REDIS_PORT=6379 ``` #### 4. 缓存配置 ```bash CACHE_ENABLED=true # 启用缓存 CACHE_TTL=3600 # 缓存过期时间(秒) CACHE_MAX_RETRIES=3 # 缓存重试次数 ``` ### 配置文件示例 <details> <summary><b>点击查看完整 .env 示例</b></summary> ```bash # ========== 数据源配置 ========== TUSHARE_TOKEN=your_tushare_token_here FINNHUB_API_KEY=your_finnhub_key NEWS_API_KEY=your_newsapi_key TAVILY_API_KEY=your_tavily_key # ========== 代理配置 ========== HTTP_PROXY=http://host.docker.internal:7890 HTTPS_PROXY=http://host.docker.internal:7890 # ========== Redis 配置 ========== REDIS_HOST=redis REDIS_PORT=6379 REDIS_PASSWORD= REDIS_DB=0 # ========== 缓存配置 ========== CACHE_ENABLED=true CACHE_TTL=3600 CACHE_MAX_RETRIES=3 # ========== 服务配置 ========== LOG_LEVEL=INFO MAX_WORKERS=4 ``` </details> --- ## 🐳 Docker 部署 ### 服务架构 ``` ┌─────────────────────────────────────┐ │ Client(浏览器/API 客户端) │ └────────────┬────────────────────────┘ │ ┌────────▼─────────┐ │ Port 9998 │ ← FastAPI (RESTful API) │ Port 9999 │ ← MCP Server └────────┬─────────┘ │ ┌────────▼─────────┐ │ Redis:6379 │ ← 内部缓存(不对外) └──────────────────┘ ``` ### 常用命令 ```bash # 启动服务 docker-compose up -d # 查看日志 docker-compose logs -f stock-mcp docker-compose logs -f redis # 查看服务状态 docker-compose ps # 停止服务 docker-compose down # 重启服务 docker-compose restart stock-mcp # 重新构建 docker-compose up -d --build # 进入容器 docker-compose exec stock-mcp sh docker-compose exec redis redis-cli ``` ### 多架构支持 本项目自动适配 ARM64(Apple Silicon)和 AMD64(x86)架构: ```bash # 查看镜像架构 docker inspect stock-mcp:latest | grep Architecture ``` --- ## 📡 API 接口 ### 股票行情 ```bash # 基本用法 GET /api/quote?symbol=<股票代码> # 指定市场 GET /api/quote?symbol=600519&market=CN # A股 GET /api/quote?symbol=AAPL&market=US # 美股 GET /api/quote?symbol=00700&market=HK # 港股 # 响应示例 { "code": 0, "data": { "symbol": "600519", "name": "贵州茅台", "price": 1650.00, "change": 25.50, "change_percent": 1.57, "volume": 1234567, "market_cap": "2.07万亿" } } ``` ### 财务数据 ```bash # 资产负债表 GET /api/financial?symbol=600519&report_type=balance_sheet # 利润表 GET /api/financial?symbol=AAPL&report_type=income # 现金流量表 GET /api/financial?symbol=TSLA&report_type=cashflow ``` ### 新闻情绪分析 ```bash # 获取近7天新闻情绪 GET /api/news/sentiment?symbol=TSLA&days=7 # 响应示例 { "code": 0, "data": { "symbol": "TSLA", "sentiment_score": 0.65, # -1(极度负面)到 1(极度正面) "sentiment_label": "positive", "news_count": 45, "sources": ["Reuters", "Bloomberg", "CNBC"], "top_keywords": ["electric vehicle", "production", "delivery"] } } ``` ### AI 深度研究 ```bash # 行业研究 POST /api/research Content-Type: application/json { "topic": "新能源汽车行业趋势", "depth": "comprehensive" } # 响应示例 { "code": 0, "data": { "title": "新能源汽车行业深度研究", "summary": "...", "key_findings": [...], "market_outlook": "...", "sources": [...] } } ``` ### 完整接口文档 启动服务后访问交互式文档: - **Swagger UI**: http://localhost:9998/docs - **ReDoc**: http://localhost:9998/redoc --- ## 🛠️ 故障排查 ### Redis 连接问题 **现象**:`ConnectionError: Error connecting to Redis` **解决方案**: ```bash # 1. 检查 Redis 服务 docker-compose ps redis # 2. 检查配置 cat .env | grep REDIS_HOST # 确保 Docker 环境使用: REDIS_HOST=redis # 3. 重启服务 docker-compose restart redis docker-compose restart stock-mcp ``` ### yFinance 超时 **现象**:`ReadTimeout: HTTPSConnectionPool` **解决方案**: ```bash # 1. 检查代理配置 cat .env | grep PROXY # 2. Docker 环境确保使用正确格式 HTTP_PROXY=http://host.docker.internal:7890 HTTPS_PROXY=http://host.docker.internal:7890 # 3. 测试代理连通性 docker-compose exec stock-mcp curl -x $HTTP_PROXY https://www.google.com # 4. 重启服务 docker-compose restart stock-mcp ``` ### Tushare 权限错误 **现象**:`No permission to access this API` **解决方案**: ```bash # 1. 验证 Token grep TUSHARE_TOKEN .env # 2. 检查积分(访问 https://tushare.pro/user/token) # 某些高级接口需要更高积分 # 3. 重新构建镜像 docker-compose down docker-compose up -d --build ``` ### 端口被占用 **现象**:`Bind for 0.0.0.0:9998 failed: port is already allocated` **解决方案**: ```bash # 1. 查找占用进程 lsof -i :9998 # 2. 修改端口(编辑 docker-compose.yml) ports: - "9997:9998" # 改为其他端口 # 3. 重启服务 docker-compose up -d ``` ### 缓存异常 **现象**:数据不更新或返回旧数据 **解决方案**: ```bash # 1. 清空 Redis 缓存 docker-compose exec redis redis-cli FLUSHALL # 2. 临时禁用缓存 # 编辑 .env CACHE_ENABLED=false # 3. 重启服务 docker-compose restart stock-mcp ``` --- ## 🎯 高级用法 ### 批量查询 ```bash # 使用脚本批量获取多只股票 symbols=("600519" "000858" "601318") for symbol in "${symbols[@]}"; do curl "http://localhost:9998/api/quote?symbol=$symbol" done ``` ### 定时任务 ```bash # 使用 cron 定时获取数据 # 编辑 crontab -e 0 9,15 * * 1-5 curl "http://localhost:9998/api/quote?symbol=600519" >> /var/log/stock.log ``` ### 集成到 MCP 客户端 ```json { "mcpServers": { "stock": { "command": "docker", "args": [ "run", "-i", "--rm", "--network=host", "stock-mcp:latest" ] } } } ``` ### 性能优化 ```bash # 1. 调整缓存时间(高频数据用短 TTL) CACHE_TTL=300 # 5分钟 # 2. 增加工作进程 MAX_WORKERS=8 # 3. 使用 Redis 持久化 # 编辑 docker-compose.yml volumes: - redis_data:/data volumes: redis_data: ``` --- ## 📞 获取支持 - 📖 [GitHub Issues](https://github.com/your-repo/issues) - 💬 [Discussions](https://github.com/your-repo/discussions) - 📧 Email: support@example.com --- ## 🔗 相关资源 - [Tushare 文档](https://tushare.pro/document/2) - [AKShare 文档](https://akshare.akfamily.xyz/) - [MCP 协议规范](https://modelcontextprotocol.io/docs) - [FastAPI 文档](https://fastapi.tiangolo.com/) --- <div align="center"> **📝 文档版本**: v1.0 | **最后更新**: 2025-10-08 </div>

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/huweihua123/stock-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server