使用说明
金融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: 601899query过去一周上涨了多少?任何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: 600519query:公司的主要业务和管理情况如何? |
| crawl_ths_holder | 按A股股票代码获取股东研究信息,包括股东数量、前10名流通股股东、前10位股东、债券持有人、控制层级等。 | crawl4ai |
code: 600519query:最近股东人数和大股东结构有何变化? |
| crawl_ths_operate | 按A股代码获取运营分析信息,包括主营业务介绍、运营数据、主营业务构成、客商、业务回顾、产品价格等。 | crawl4ai |
code: 600519query:公司的主要业务构成和经营情况如何? |
| crawl_ths_equality | 按A股股票代码获取股权结构信息,包括解锁计划、总股权构成、A股结构图、历史股权变动等。 | crawl4ai |
code: 600519query:明年将解锁哪些限制性股票? |
| crawl_ths_capital | 按A股代码获取资金运作信息,包括资金来源、项目投资、并购、股权投资、IPO参与、股权转让、质押/解冻等。 | crawl4ai |
code: 600519query:公司最近进行了哪些并购或资本运作? |
| crawl_ths_worth | 按A股代码获取盈利预测信息,包括业绩预测、详细预测表、研究报告评级等。 | crawl4ai |
code: 600519query:未来三年的盈利预测和机构评级是什么? |
| crawl_ths_news | 按A股代码获取新闻和公告,包括新闻价格相关性、公告列表、热点新闻、研究报告列表等。 | crawl4ai |
code: 600519query:最近有什么重要公告或新闻? |
| crawl_ths_concept | 通过A股代码获取概念和主题信息,包括常规概念、其他概念、主题亮点、概念比较等。 | crawl4ai |
code: 600519query:这只股票涉及哪些概念主题? |
| crawl_ths_position | 按A股代码获取主要持仓信息,包括机构持股汇总、持股详情、收购情况、IPO配售机构等。 | crawl4ai |
code: 600519query:机构持股趋势和主要机构持股情况如何? |
| crawl_ths_finance | 按A股代码获取财务分析信息,包括财务诊断、财务指标、指标变动说明、资产负债构成、财务报告、杜邦分析等。 | crawl4ai |
code: 600519query:公司的盈利能力和财务结构如何? |
| crawl_ths_bonus | 通过A股股票代码获取股息和融资信息,包括股息诊断、股息历史、增发分配详情、增发概述、配股概述等。 | crawl4ai |
code: 600519query:历史股息情况和最近的融资安排是什么? |
| crawl_ths_event | 按A股代码获取公司事件,包括高管持股变动、股东持股变动、担保详情、违规行为、机构研究、投资者互动等。 | crawl4ai |
code: 600519query:最近发生了什么重大事件或高管持股变动? |
| crawl_ths_field | 按A股代码获取行业比较信息,包括行业定位、行业新闻等。 | crawl4ai |
code: 600519query:公司在行业中的地位如何? |
外部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 配置。
🤝 贡献
我们欢迎捐款!开始:
- 在开发模式下安装软件包:
pip install -e .
- 安装预提交挂钩:
pip install pre-commit
pre-commit run --all-files
- 提交一个包含您的更改的拉取请求。
⚖️ 许可证
此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。