金融研究代理工具包

Finance MCP 是一个专为金融研究场景设计的智能代理工具包和 MCP 服务器,集成了多种金融数据搜索和分析工具,帮助快速构建专业金融研究代理系统。

  • by FlowLLM-AI
  • Python
  • 混合部署
  • 26 星标
  • 更新于
在 GitHub 查看 FlowLLM-AI/finance-mcp

使用说明

金融MCP

📖 项目概述

金融MCP是为金融研究场景设计的智能代理工具包和MCP服务器。建立在 这 FlowLLM 框架,它集成了以下组件 作为 Crawl4AI, Tushare, 塔维利/达摩院 搜索等等,帮助您快速构建专业的金融研究代理系统。

💡 为什么选择金融MCP?

  • ✅ 零代码配置:通过YAML配置文件组合运算符,而无需编写服务代码
  • ✅ 开箱即用:预先配置了20多个涵盖常见研究场景的金融研究相关流程
  • ✅ 多协议支持:同时支持MCP(stdio/SSE/HTTP)和HTTP RESTful API
  • ✅ 智能缓存:内置多级缓存机制,提高效率,降低成本
  • ✅ 模块化设计:每个功能模块均可独立配置,支持根据需要启用/禁用

📰 最新动态

  • [2025-12] 🎉 发布金融mcp v0.1.x

🚀 快速开始

安装

使用pip安装财务MCP:

pip install finance-mcp

或使用紫外线:

uv pip install finance-mcp

标准模式

该模式直接通过以下方式运行财务MCP uvx,通过标准输入/输出进行通信。非常适合本地MCP客户。

{
  "mcpServers": {
    "finance-mcp": {
      "command": "uvx",
      "args": [
        "finance-mcp",
        "config=default,ths",
        "mcp.transport=stdio",
        "llm.default.model_name=qwen3-30b-a3b-thinking-2507",
        "disabled_flows='[\"tavily_search\",\"mock_search\",\"react_agent\"]'"
      ],
      "env": {
        "FLOW_LLM_API_KEY": "xxx",
        "FLOW_LLM_BASE_URL": "https://dashscope.aliyuncs.com/compatible-mode/v1",
        "DASHSCOPE_API_KEY": "xxx",
        "TUSHARE_API_TOKEN": "xxx",
        "TAVILY_API_KEY": "xxx",
        "BAILIAN_MCP_API_KEY": "xxx"
      }
    }
  }
}

服务模式(HTTP/SSE服务器)

此模式将Finance MCP作为可远程访问的独立HTTP/SSE服务器启动。

步骤1:配置环境变量

复制 example.env 到 .env 并填写您的API密钥:

cp example.env .env
# Edit .env and fill in your API keys

步骤2:启动服务器

使用SSE传输启动财务MCP服务器:

finance-mcp \
  config=default,ths \
  mcp.transport=sse \
  mcp.host=0.0.0.0 \
  mcp.port=8001 \
  llm.default.model_name=qwen3-30b-a3b-thinking-2507 \
  disabled_flows='["tavily_search","mock_search","react_agent"]'

该服务将在以下地点提供: http://0.0.0.0:8001/sse

步骤3:从MCP客户端连接

将此配置添加到MCP客户端以连接到远程SSE服务器:

{
  "mcpServers": {
    "finance-mcp": {
      "type": "sse",
      "url": "http://0.0.0.0:8001/sse"
    }
  }
}

步骤4:与FastMCP客户端一起使用

在服务模式下运行时,您还可以使用 FastMCP python 客户端直接访问服务器:

import asyncio
from fastmcp import Client


async def main():
    async with Client("http://0.0.0.0:8001/sse") as client:
        for tool in client.list_tools():
            print(tool)

        result = await client.call_tool(
            name="dashscope_search",
            arguments={"query": "Recent news about Zijin Mining"}
        )
    print(result)


asyncio.run(main())

一个命令测试

python test_op/test_project_sse.py

这将启动服务器,通过FastMCP客户端连接,并自动测试所有可用工具。

🚀 MCP工具

默认工具

工具名称 描述 依赖关系 输入参数
历史_计算 基于Tushare A股历史数据的成交量分析 TUSHARE_API_TOKEN code: 601899
query过去一周上涨了多少?任何MACD金十字架?
crawl_url 抓取和解析web内容 crawl4ai url: https://example.com
提取时间代码 通过文本和完整的股票代码识别金融实体(目前使用dashscope_search,可替换) DASHSCOPE_API_KEY query我想了解贵州茅台的股票
execute_code 执行任意Python代码 - code: print(1+1)
execute_shell 执行shell命令 - command: ls
dashscope_search 基于DashScope的Web搜索 DASHSCOPE_API_KEY query:紫金矿业最新动态
tavily_search 基于Tavily的网络搜索 TAVILY_API_KEY query:财经新闻
模拟搜索 LLM模拟的模拟搜索 - query:测试查询
反应剂 ReAct代理结合多种工具回答复杂问题 - query:帮我分析一下紫金矿业下周的走势

通华顺工具

备注:这些工具是通过crawl4ai实现的。高并发可能会导致IP阻塞。

工具名称 描述 依赖关系 输入参数
crawl_ths_公司 按A股代码获取公司简介信息,包括详细信息、高管介绍、发行相关信息、子公司等,并返回查询相关信息 crawl4ai code: 600519
query:公司的主要业务和管理情况如何?
crawl_ths_holder 按A股股票代码获取股东研究信息,包括股东数量、前10名流通股股东、前10位股东、债券持有人、控制层级等。 crawl4ai code: 600519
query:最近股东人数和大股东结构有何变化?
crawl_ths_operate 按A股代码获取运营分析信息,包括主营业务介绍、运营数据、主营业务构成、客商、业务回顾、产品价格等。 crawl4ai code: 600519
query:公司的主要业务构成和经营情况如何?
crawl_ths_equality 按A股股票代码获取股权结构信息,包括解锁计划、总股权构成、A股结构图、历史股权变动等。 crawl4ai code: 600519
query:明年将解锁哪些限制性股票?
crawl_ths_capital 按A股代码获取资金运作信息,包括资金来源、项目投资、并购、股权投资、IPO参与、股权转让、质押/解冻等。 crawl4ai code: 600519
query:公司最近进行了哪些并购或资本运作?
crawl_ths_worth 按A股代码获取盈利预测信息,包括业绩预测、详细预测表、研究报告评级等。 crawl4ai code: 600519
query:未来三年的盈利预测和机构评级是什么?
crawl_ths_news 按A股代码获取新闻和公告,包括新闻价格相关性、公告列表、热点新闻、研究报告列表等。 crawl4ai code: 600519
query:最近有什么重要公告或新闻?
crawl_ths_concept 通过A股代码获取概念和主题信息,包括常规概念、其他概念、主题亮点、概念比较等。 crawl4ai code: 600519
query:这只股票涉及哪些概念主题?
crawl_ths_position 按A股代码获取主要持仓信息,包括机构持股汇总、持股详情、收购情况、IPO配售机构等。 crawl4ai code: 600519
query:机构持股趋势和主要机构持股情况如何?
crawl_ths_finance 按A股代码获取财务分析信息,包括财务诊断、财务指标、指标变动说明、资产负债构成、财务报告、杜邦分析等。 crawl4ai code: 600519
query:公司的盈利能力和财务结构如何?
crawl_ths_bonus 通过A股股票代码获取股息和融资信息,包括股息诊断、股息历史、增发分配详情、增发概述、配股概述等。 crawl4ai code: 600519
query:历史股息情况和最近的融资安排是什么?
crawl_ths_event 按A股代码获取公司事件,包括高管持股变动、股东持股变动、担保详情、违规行为、机构研究、投资者互动等。 crawl4ai code: 600519
query:最近发生了什么重大事件或高管持股变动?
crawl_ths_field 按A股代码获取行业比较信息,包括行业定位、行业新闻等。 crawl4ai code: 600519
query:公司在行业中的地位如何?

外部MCP服务

备注:外部MCP服务通过SSE(服务器发送事件)调用。您需要配置 BAILIAN_MCP_API_KEY 环境变量 .env.

服务名称 描述 依赖关系 输入参数
同益研究 基于DashScope的WebSearch服务 BAILIAN_MCP_API_KEY query:紫金矿业最新动态
博查伊搜索 基于DashScope的BochaAI搜索服务 BAILIAN_MCP_API_KEY query:财经新闻

服务器配置参数

参数 说明 示例
config 要加载的配置文件(逗号分隔)。可用: default (核心流), ths (通华顺股票数据), stream_agent (流媒体代理), external_mcp (外部MCP服务) config=default,ths
mcp.transport 运输方式: stdio (克劳德桌面), sse (网络应用程序), http (RESTful), streamable-http mcp.transport=stdio
mcp.host 主机地址(仅适用于sse/http传输) mcp.host=0.0.0.0
mcp.port 端口号(仅适用于sse/http传输) mcp.port=8001
llm.default.model_name 默认LLM模型名称(覆盖配置文件) llm.default.model_name=qwen3-30b-a3b-thinking-2507
disabled_flows 要禁用的流名称的JSON数组。 小贴士:如果您没有所需的API密钥(例如。, tavily_search 需要 TAVILY_API_KEY) disabled_flows='["react_agent"]'

有关全套可用选项和默认值,请参阅 default.yaml.

环境变量

变量 必填 描述
FLOW_LLM_API_KEY ✅ 是 OpenAI兼容LLM服务的API密钥
FLOW_LLM_BASE_URL ✅ 是 OpenAI兼容LLM服务的基本URL
DASHSCOPE_API_KEY ⚠️ 可选 用于DashScope搜索和实体提取
TUSHARE_API_TOKEN ⚠️ 可选 用于历史数据分析
TAVILY_API_KEY ⚠️ 可选 用于Tavily网络搜索
BAILIAN_MCP_API_KEY ⚠️ 可选 用于外部MCP服务

支持流媒体的HTTP RESTful API

Finance MCP还支持具有流功能的HTTP RESTful API模式。这允许您直接通过HTTP端点访问流,而不仅仅是通过MCP协议。

步骤1:启动HTTP服务器

使用HTTP后端启动财务MCP服务器:

finance-mcp \
  config=default,stream_agent \
  backend=http \
  http.host=0.0.0.0 \
  http.port=8002 \
  llm.default.model_name=qwen3-30b-a3b-thinking-2507

步骤2:发出流式HTTP请求

所有流都配置了 stream: true 将作为流式HTTP端点公开。响应使用服务器发送事件(SSE)格式实时流式传输。

示例:请求流媒体深度研究(灵感来自 open_deep_research):

curl -X POST http://0.0.0.0:8002/langchain_deep_research \
  -H "Content-Type: application/json" \
  -d '{"query": "I want to learn about Kweichow Moutai stock"}'

响应将实时流式传输,显示:

  • 思维过程和推理
  • 工具调用和中间结果
  • 最终综合答案

备注:默认情况下,这使用DashScope搜索,但您可以通过修改以下内容将其替换为其他搜索后端(例如Tavily) stream_agent.yaml 配置。

🤝 贡献

我们欢迎捐款!开始:

  1. 在开发模式下安装软件包:
pip install -e .
  1. 安装预提交挂钩:
pip install pre-commit
pre-commit run --all-files
  1. 提交一个包含您的更改的拉取请求。

⚖️ 许可证

此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。

📈 明星历史