返回市场
股票信息_mcp

股票信息_mcp

作者:tddt6 星标更新:2025-03-30

项目介绍

股票信息服务

这是一个基于FastMCP的股票数据服务,提供历史股票数据、基本面信息、新闻更新和其他功能。

项目结构

stock-info/
├── src/
│   ├── config/           # 配置管理
│   │   └── settings.py
│   ├── core/            # 核心功能
│   │   └── exceptions.py
│   ├── models/          # 数据模型
│   │   └── stock.py
│   ├── repository/      # 数据访问层
│   │   └── stock_repository.py
│   ├── service/         # 业务逻辑层
│   │   └── stock_service.py
│   └── server.py        # 服务入口
├── pyproject.toml       # 项目配置
└── README.md           # 项目文档

功能特性

  • 获取历史股票数据
  • 查询基本股票信息
  • 获取风险警示股票列表
  • 查看股票新闻
  • 获取财经新闻(支持分页)
  • 获取指定股票的主要业务信息
  • ... 逐步增加更多功能

MCP客户端配置步骤

    1. 拉取代码
    1. 使用uv创建Python 1.10+的虚拟环境
    1. 使用本地目录方法配置MCP服务
{
  "mcpServers": {
     "stock-info": {
      "isActive": true,
      "command": "uv",
      "args": [
        "--directory",
        "\\path\\to\\sock_info\\src",
        "run",
        "server.py"
      ]
    }
  }

环境需求

  • Python >= 3.10
  • 依赖项:
    • fastmcp
    • akshare
    • pandas
    • pydantic
    • pydantic-settings

安装与部署

  1. 创建虚拟环境:
python -m venv .venv
  1. 激活虚拟环境:
# Windows
.venv\Scripts\activate
# Linux/macOS
source .venv/bin/activate
  1. 安装依赖项:
pip install -e .

启动服务

# 使用默认配置启动
python src/server.py

# 使用HTTP传输协议启动
python src/server.py --transport http --port 8080

# 设置日志级别
python src/server.py --log-level debug

工具说明

  1. get_stock_info:获取指定股票代码和日期范围内的股票价格信息
  2. get_stock_price_monthly:获取指定股票过去30天的价格信息
  3. stock_individual_basic_info:获取指定股票的基本信息
  4. risk_stocks:获取风险警示板上的股票列表
  5. stock_merito_data:获取指定股票的主要业务信息
  6. get_stock_news:获取指定股票的新闻和信息
  7. get_finance_news:获取财经新闻亮点(支持分页)

项目特点

  1. 模块化设计:采用清晰的层级架构,便于维护和扩展
  2. 统一异常处理:使用自定义异常系统提供友好的错误消息
  3. 集中配置管理:使用pydantic-settings进行配置管理
  4. 类型提示:充分利用Python类型注解提高代码可读性
  5. 数据验证:使用Pydantic模型进行数据验证和序列化

开发标准

  1. 使用ruff进行代码格式化和lint检查
  2. 遵循PEP 8编码标准
  3. 保留完整的类型注解
  4. 编写清晰的文档字符串

错误处理

服务统一返回以下格式的错误消息:

{
    "error": "错误代码",
    "message": "错误描述",
    "details": {
        "额外信息": "值"
    }
}

主要错误代码

  • STOCK_NOT_FOUND:股票代码不存在
  • INVALID_DATE_FORMAT:日期格式不正确
  • DATA_FETCH_ERROR:无法获取数据
  • INVALID_PAGINATION:分页参数错误
  • SYSTEM_ERROR:内部系统错误