项目简介
本项目是一个基于 Model Context Protocol (MCP) 实现的服务器,专注于为大型语言模型(LLM)客户端提供金融领域的数据和功能。通过整合 'akshare' 等数据源,它将股票实时行情、历史数据、公司财报、宏观经济指标以及股票分析能力封装为可通过 MCP 协议调用的工具。
主要功能点
- 股票数据查询: 提供查询沪深京 A 股及港股的实时行情和历史数据。
- 金融信息获取: 能够获取指定个股的新闻资讯和财新股票精选新闻。
- 财报数据访问: 支持根据股票代码列表获取指定日期的公司财务报告数据。
- 股票分析工具: 提供分析多只股票在特定时间范围内的起始/结束价格、涨跌幅、最大回撤、年化波动率等指标。
- 宏观经济指标: 可获取如 GDP、CPI、PMI 等宏观经济数据。
- 工具封装: 将上述功能封装为标准化的 MCP 工具,供 LLM 客户端调用。
- 多协议支持: 服务器可运行在 SSE 等传输协议上。
安装步骤
- 环境准备: 确保您的系统已安装 Python (推荐 3.9+)。项目可能依赖 'uv' 或 'pip' 进行包管理。
- 获取代码: 克隆或下载本项目的源代码到本地。
- 安装依赖: 进入项目根目录,安装所需的 Python 库。这通常涉及安装 'akshare', 'fastmcp', 'langchain-core', 'pandas', 'matplotlib', 'numpy', 'python-dotenv' 等。具体可以通过查找项目中的 'requirements.txt' 文件(如果存在)并使用 'pip install -r requirements.txt' 或 'uv sync' 来完成。
- 配置环境变量: 项目中的某些工具(如与 DeepSeek 或 DashScope 相关的 LLM 客户端代码)可能需要 API 密钥。根据需要创建 '.env' 文件并在其中配置 'DEEPSEEK_API_KEY', 'DASHSCOPE_API_KEY' 等环境变量。注意,服务器本身的核心MCP功能可能不强制要求这些LLM API Key,但注册的一些工具可能需要。
服务器配置 (供 MCP 客户端使用)
MCP 客户端需要配置连接到此服务器。以下是客户端配置所需的关键信息示例(通常以 JSON 格式提供给客户端程序):
{ "mcpServers": { "financial_analysis_server": { "command": "uv", // 或 python 或其他运行方式 "args": [ "--directory", "/path/to/your/ai-agent-mcp-servers/src/financial_mcp_server", // 替换为您的 financial_mcp_server 源代码目录的绝对路径 "run", "ai-agent-mcp-servers" // 运行 server.py 中的 main 函数 ] // "transport": "sse", // 根据实际运行情况配置,示例代码中默认为sse // "url": "http://127.0.0.1:8000/sse" // SSE 协议的默认地址,如果服务器运行在其他地址或端口,需要修改 } } }
- 'financial_analysis_server': 这是您为该 MCP 服务器指定的名称,客户端将通过此名称引用该服务器。您可以根据需要修改。
- 'command': 启动 MCP 服务器进程的命令。示例中使用 'uv'。如果直接运行 Python 脚本,可能是 'python'。
- 'args': 传递给 'command' 的参数列表。这里的参数指示如何通过 'uv run' 启动 'ai-agent-mcp-servers' 包中的主入口点,并指定了源代码所在的目录。'/path/to/your/ai-agent-mcp-servers/src/financial_mcp_server' 需要替换为您实际存放该服务器代码的路径。
- 其他可选配置项(如 'transport', 'url' 等)根据服务器实际启动方式和客户端能力进行配置。项目中 'server.py' 示例代码默认以 SSE 协议启动。
基本使用方法
- 启动服务器: 按照上述安装步骤准备好环境和代码后,使用客户端配置中指定的 'command' 和 'args' 启动 MCP 服务器进程。服务器启动后会监听连接并注册其提供的工具。
- 客户端连接: 在您的 MCP 客户端(如支持 MCP 的 LLM 框架或应用程序)中,使用上述配置信息建立与该服务器的连接。
- 调用工具: 通过客户端,LLM 可以发现服务器注册的工具列表,并根据需要调用这些工具来获取金融数据或执行分析任务。例如,LLM 可以向服务器发送请求调用 'get_stock_real_time_data' 工具查询某只股票的当前价格。
服务器将接收客户端的 JSON-RPC 请求,执行对应的工具函数,并将结果以 JSON-RPC 响应的形式返回给客户端。
信息
分类
商业系统