Token导航 LogoToken导航TokenDH.com
Stock Advisor MCP Service (F415643) logo
金融服务未说明官方级别未说明来源级核验

Stock Advisor MCP Service (F415643)

MCP Server

MCP股票数据服务是一个专业的股票数据分析工具,提供实时股票数据查询、技术指标计算和多维度数据分析功能,适用于金融投资和技术分析场景。

工具数

5

提示词数

0

GitHub Stars

2

资源数

0
金融数据PythonClaude数据可视化Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

F415643

提供方

F415643

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

🚀 MCP股票数据服务

一个基于MCP(Model Context Protocol)的股票数据获取和分析服务,提供实时股票数据查询、技术指标计算和数据分析功能。

📋 服务介绍

MCP股票数据服务是一个专业的股票数据分析工具,通过东方财富API获取实时数据,提供多维度的股票数据查询和技术分析功能。服务支持股票基本信息查询、技术指标计算和数据可视化展示。

✨ 核心功能

  • 📊 实时股票数据 - 基于东方财富API获取最新股票信息
  • 🔍 多维度分析 - 基本面、技术面、资金流向、市场情绪数据分析
  • 技术指标计算 - 基于均线、MFI、换手率等技术指标的数据计算
  • 💡 数据查询服务 - 提供股票基本信息和历史数据查询
  • 📈 数据可视化 - 支持股票数据的图表展示和分析
  • 🔧 易于集成 - 标准MCP协议,支持多种客户端

🚀 快速开始

方式一:一键安装(推荐)

Windows用户

  1. 下载项目到本地
  2. 双击运行 install.bat
  3. 双击桌面快捷方式启动服务

Linux/Mac用户

# 克隆项目
git clone https://github.com/yourusername/mcp-stock-advisor.git
cd mcp-stock-advisor

# 一键安装
chmod +x install.sh
./install.sh

# 启动服务
./start_service.sh

方式二:手动安装

# 1. 克隆项目
git clone https://github.com/yourusername/mcp-stock-advisor.git
cd mcp-stock-advisor

# 2. 安装依赖
pip install -r requirements.txt

# 3. 启动MCP服务
python stock_advisor_server.py --name "股票建议助手" --debug

方式三:Docker部署

# 使用Docker Compose
docker-compose up -d

# 或者直接使用Docker
docker build -t mcp-stock-advisor .
docker run -p 8080:8080 mcp-stock-advisor

📊 服务功能

核心工具

工具名称功能描述参数
get_stock_price获取实时股票价格symbol: 股票代码
get_stock_data获取股票基本数据symbol: 股票代码
get_technical_indicators获取技术指标数据symbol: 股票代码
search_stock_by_name按名称搜索股票name: 股票名称
get_market_data获取市场数据分析symbol: 股票代码

数据分析维度

基本面数据分析

  1. 财务数据

- PE比率计算 - 市值数据 - 财务指标

  1. 技术面数据

- 价格趋势数据 - 成交量数据 - 技术指标计算

  1. 资金流向数据

- 资金流向统计 - 大单数据分析 - 资金活跃度指标

  1. 市场数据

- 市场关注度 - 成交量统计 - 市场热度指标

技术指标计算

  1. 均线指标

- MA5 (5日均线) - MA20 (20日均线) - 均线关系分析

  1. 动量指标

- MFI (资金流量指数) - 换手率计算 - RSI (相对强弱指数)

  1. 趋势指标

- 趋势方向判断 - 支撑阻力位计算

🎬 使用示例

获取股票数据

import asyncio
from mcp_client import MCPClient

async def main():
    client = MCPClient()
    
    # 获取股票基本数据
    data = await client.call_tool(
        "get_stock_data",
        {"symbol": "600136"}
    )
    print(data)

    # 获取技术指标数据
    indicators = await client.call_tool(
        "get_technical_indicators",
        {"symbol": "600136"}
    )
    print(indicators)

asyncio.run(main())

命令行工具

# 获取特定股票数据
python get_stock_data.py 600136

# 获取技术指标分析
python get_technical_analysis.py 600136

# 批量数据查询
python batch_query.py 600136,000001,000002

🛠️ 服务配置

1. 基础服务配置 (Server Config)

{
  "name": "stock-data-service",
  "display_name": "股票数据服务",
  "description": "提供股票数据查询和技术分析的MCP服务",
  "version": "1.0.0",
  "author": "Your Name",
  "license": "MIT",
  "homepage": "https://github.com/yourusername/mcp-stock-advisor",
  "repository": {
    "type": "git",
    "url": "https://github.com/yourusername/mcp-stock-advisor.git"
  },
  "main": "stock_advisor_server.py",
  "env": {
    "MCP_PORT": "8080",
    "DATA_SOURCE": "eastmoney",
    "CACHE_TIMEOUT": "300",
    "LOG_LEVEL": "INFO"
  },
  "tools": [
    {
      "name": "get_stock_price",
      "description": "获取实时股票价格",
      "parameters": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "description": "股票代码,如600136"
          }
        },
        "required": ["symbol"]
      }
    },
    {
      "name": "get_stock_data",
      "description": "获取股票基本数据",
      "parameters": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "description": "股票代码,如600136"
          }
        },
        "required": ["symbol"]
      }
    },
    {
      "name": "get_technical_indicators",
      "description": "获取技术指标数据",
      "parameters": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "description": "股票代码,如600136"
          }
        },
        "required": ["symbol"]
      }
    },
    {
      "name": "search_stock_by_name",
      "description": "按名称搜索股票",
      "parameters": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "股票名称"
          }
        },
        "required": ["name"]
      }
    },
    {
      "name": "get_market_data",
      "description": "获取市场数据分析",
      "parameters": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "description": "股票代码,如600136"
          }
        },
        "required": ["symbol"]
      }
    }
  ],
  "resources": [
    {
      "name": "stock_info",
      "description": "股票基本信息",
      "uri": "/stock/{symbol}/info"
    },
    {
      "name": "technical_data",
      "description": "技术指标数据",
      "uri": "/stock/{symbol}/technical"
    }
  ]
}

2. MCP客户端配置

标准MCP配置 (mcp-config.json)

{
  "mcpServers": {
    "stock-data-service": {
      "command": "python",
      "args": ["MCP/stock_advisor_server.py", "--name", "股票数据服务"],
      "env": {
        "MCP_PORT": "8080",
        "DATA_SOURCE": "eastmoney",
        "CACHE_TIMEOUT": "300",
        "LOG_LEVEL": "INFO"
      }
    }
  }
}

Claude Desktop配置

{
  "mcpServers": {
    "stock-data-service": {
      "command": "python",
      "args": ["d:/trae代码/魔塔MCP/MCP/stock_advisor_server.py", "--name", "股票数据服务"],
      "env": {
        "PYTHONPATH": "d:/trae代码/魔塔MCP"
      }
    }
  }
}

配置文件位置

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

3. 环境变量配置

基础环境变量

# 服务端口配置
export MCP_PORT=8080                    # MCP服务端口

# 数据源配置
export DATA_SOURCE=eastmoney            # 数据源选择 (eastmoney/tencent/sina)

# 缓存配置
export CACHE_TIMEOUT=300                # 缓存超时时间(秒)
export ENABLE_CACHE=true                # 是否启用缓存

# 日志配置
export LOG_LEVEL=INFO                   # 日志级别 (DEBUG/INFO/WARNING/ERROR)
export LOG_FILE=mcp-stock.log           # 日志文件路径

# 性能配置
export MAX_CONCURRENT_REQUESTS=10       # 最大并发请求数
export REQUEST_TIMEOUT=30               # 请求超时时间(秒)

高级环境变量

# API配置
export EASTMONEY_API_KEY=""             # 东方财富API密钥(可选)
export RATE_LIMIT_PER_MINUTE=100        # 每分钟请求限制

# 安全配置
export ENABLE_AUTH=false                # 是否启用认证
export API_KEYS="key1,key2,key3"        # API密钥列表

# 数据库配置(可选)
export DB_HOST=localhost                # 数据库主机
export DB_PORT=5432                     # 数据库端口
export DB_NAME=stock_data               # 数据库名称
export DB_USER=postgres                 # 数据库用户
export DB_PASSWORD=""                   # 数据库密码

4. Docker配置

Dockerfile配置

FROM python:3.9-slim

WORKDIR /app

# 安装系统依赖
RUN apt-get update && apt-get install -y \
    gcc \
    && rm -rf /var/lib/apt/lists/*

# 复制依赖文件
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# 复制源代码
COPY MCP/ ./MCP/
COPY *.py ./

# 设置环境变量
ENV MCP_PORT=8080
ENV DATA_SOURCE=eastmoney
ENV LOG_LEVEL=INFO

# 暴露端口
EXPOSE 8080

# 健康检查
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
  CMD python -c "import requests; requests.get('http://localhost:8080/health')" || exit 1

# 启动命令
CMD ["python", "MCP/stock_advisor_server.py", "--name", "股票数据服务"]

Docker Compose配置

version: '3.8'
services:
  stock-data-service:
    build: 
      context: .
      dockerfile: Dockerfile
    ports:
      - "8080:8080"
    environment:
      - MCP_PORT=8080
      - DATA_SOURCE=eastmoney
      - CACHE_TIMEOUT=300
      - LOG_LEVEL=INFO
      - ENABLE_CACHE=true
      - MAX_CONCURRENT_REQUESTS=10
    volumes:
      - ./logs:/app/logs
      - ./cache:/app/cache
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "python", "-c", "import requests; requests.get('http://localhost:8080/health')"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s
    networks:
      - stock-network

  # Redis缓存服务(可选)
  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"
    volumes:
      - redis_data:/data
    networks:
      - stock-network

volumes:
  redis_data:

networks:
  stock-network:
    driver: bridge

5. 配置文件管理

创建配置文件 (config.json)

{
  "server": {
    "name": "股票数据服务",
    "port": 8080,
    "debug": false,
    "max_workers": 4
  },
  "data": {
    "source": "eastmoney",
    "cache_timeout": 300,
    "retry_times": 3,
    "request_timeout": 30
  },
  "logging": {
    "level": "INFO",
    "file": "logs/mcp-stock.log",
    "max_size": "10MB",
    "backup_count": 5
  },
  "security": {
    "enable_auth": false,
    "api_keys": [],
    "rate_limit": {
      "requests_per_minute": 100,
      "burst_size": 10
    }
  },
  "features": {
    "enable_cache": true,
    "enable_metrics": true,
    "enable_health_check": true
  }
}

加载配置的Python代码

import json
import os
from typing import Dict, Any

def load_config(config_path: str = "config.json") -> Dict[str, Any]:
    """加载配置文件"""
    default_config = {
        "server": {"name": "股票数据服务", "port": 8080, "debug": False},
        "data": {"source": "eastmoney", "cache_timeout": 300},
        "logging": {"level": "INFO", "file": "mcp-stock.log"}
    }
    
    if os.path.exists(config_path):
        with open(config_path, 'r', encoding='utf-8') as f:
            config = json.load(f)
        # 合并默认配置
        for key, value in default_config.items():
            if key not in config:
                config[key] = value
            elif isinstance(value, dict):
                for sub_key, sub_value in value.items():
                    if sub_key not in config[key]:
                        config[key][sub_key] = sub_value
        return config
    else:
        return default_config

# 使用示例
config = load_config()
server_port = config["server"]["port"]
data_source = config["data"]["source"]

6. 命令行参数配置

# 基础启动
python stock_advisor_server.py

# 指定服务名称
python stock_advisor_server.py --name "股票数据服务"

# 启用调试模式
python stock_advisor_server.py --debug

# 指定端口
python stock_advisor_server.py --port 8080

# 指定配置文件
python stock_advisor_server.py --config config.json

# 指定日志级别
python stock_advisor_server.py --log-level DEBUG

# 组合使用
python stock_advisor_server.py --name "股票数据服务" --debug --port 8080 --log-level INFO

7. 配置验证

配置检查脚本

#!/usr/bin/env python3
"""配置验证脚本"""

import json
import os
import sys

def validate_config():
    """验证配置文件"""
    errors = []
    
    # 检查必需的环境变量
    required_env = ["MCP_PORT", "DATA_SOURCE"]
    for env_var in required_env:
        if not os.getenv(env_var):
            errors.append(f"缺少环境变量: {env_var}")
    
    # 检查端口是否可用
    port = int(os.getenv("MCP_PORT", 8080))
    if not (1024 <= port <= 65535):
        errors.append(f"端口号无效: {port}")
    
    # 检查数据源配置
    data_source = os.getenv("DATA_SOURCE", "eastmoney")
    if data_source not in ["eastmoney", "tencent", "sina"]:
        errors.append(f"不支持的数据源: {data_source}")
    
    # 检查日志级别
    log_level = os.getenv("LOG_LEVEL", "INFO")
    if log_level not in ["DEBUG", "INFO", "WARNING", "ERROR"]:
        errors.append(f"无效的日志级别: {log_level}")
    
    if errors:
        print("配置验证失败:")
        for error in errors:
            print(f"  - {error}")
        sys.exit(1)
    else:
        print("配置验证通过!")

if __name__ == "__main__":
    validate_config()

8. 配置最佳实践

开发环境配置

# .env.development
MCP_PORT=8080
DATA_SOURCE=eastmoney
LOG_LEVEL=DEBUG
ENABLE_CACHE=false
MAX_CONCURRENT_REQUESTS=5

生产环境配置

# .env.production
MCP_PORT=8080
DATA_SOURCE=eastmoney
LOG_LEVEL=INFO
ENABLE_CACHE=true
MAX_CONCURRENT_REQUESTS=20
ENABLE_AUTH=true

测试环境配置

# .env.test
MCP_PORT=8081
DATA_SOURCE=mock
LOG_LEVEL=DEBUG
ENABLE_CACHE=false
REQUEST_TIMEOUT=10

📋 系统要求

  • Python 3.8+
  • 网络连接(获取实时股票数据)
  • 内存:至少512MB
  • 磁盘空间:至少100MB

🔍 故障排除

常见问题

Q: 服务启动失败

# 检查端口占用
netstat -an | grep 8080

# 检查Python版本
python --version

# 检查依赖安装
pip list | grep fastmcp

Q: 数据获取失败

# 测试网络连接
ping push2.eastmoney.com

# 检查防火墙设置
# 确保可以访问外部API

日志查看

# 查看服务日志
tail -f mcp-stock.log

# 调试模式启动
python stock_advisor_server.py --debug --log-level DEBUG

🤝 贡献指南

我们欢迎社区贡献!请遵循以下步骤:

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

⭐ 如果这个项目对你有帮助,请给我们一个星标!

免责声明: 本服务仅提供股票数据查询和技术分析功能,所有数据仅供参考,不构成任何投资建议。用户应当根据自身情况谨慎使用相关数据。

目录标签

目录标签

金融数据PythonClaude数据可视化股票数据本地部署金融分析技术指标实时数据

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP