Token导航 LogoToken导航

MCP Server · 数据服务

finance graph agent

基于Neo4j图数据库和MCP工具调用协议的增强型RAG系统,支持关系推理和多维度检索。

stdio官方级别未说明来源级核验工具 0
图数据库Python数据分析

快速开始

作者 / 组织
fu4geliu
提供方
fu4geliu

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

2

仓库热度

收录来源

1 个

MCP World

选型结论

finance graph agent 属于数据服务类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前先确认权限范围。

分类

数据服务

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

pip install -r requirements.txt

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

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

详细介绍

🚀 Graph-Enhanced RAG: Neo4j + MCP

基于图数据库与工具调用协议(MCP)的增强型 RAG 系统

传统向量检索的局限性?→ 图检索 + 关系推理的增强 RAG

📖 项目简介

本项目是一个增强型 RAG(Retrieval-Augmented Generation)系统,采用 Neo4j 图数据库 + MCP(Model Context Protocol)工具调用协议,相比传统基于向量数据库的 RAG 方案,能够实现更精准的上下文检索和复杂关系推理。

🎯 核心创新点

  • 📊 图检索替代向量检索:使用 Neo4j 图数据库存储结构化知识,支持关系查询和多跳推理
  • 🔗 关系感知检索:不仅检索相似内容,还能发现实体间的关联关系和路径
  • 🛠️ MCP 工具调用协议:通过标准化工具接口,让 LLM 能够动态查询图数据库
  • 🧠 智能检索策略:支持实体历史、关系路径、时序查询等多种检索模式
  • ⚡ 实时知识更新:持续从财经新闻中抽取事件,构建动态知识图谱

🆚 对比传统 RAG

特性传统向量 RAG本项目的图增强 RAG
检索方式语义相似度检索图关系检索 + 语义检索
关系理解❌ 无法理解实体关系✅ 支持多跳关系推理
查询能力关键词/语义匹配关系路径、最短路径、时序查询
结构化非结构化文档块结构化事件-实体-关系
复杂查询"A 和 B 的关系?" ❌"A 和 B 的关系?" ✅

🏗️ 系统架构

增强 RAG 架构图

┌─────────────────────────────────────────────────────────┐
│                    用户查询                              │
│          "宁德时代和比亚迪有什么关系?"                   │
└────────────────────┬────────────────────────────────────┘
                     │
                     ▼
┌─────────────────────────────────────────────────────────┐
│              LLM (Qwen) + Tool Calling                  │
│  ┌────────────────────────────────────────────────┐    │
│  │  理解查询意图 → 决定调用哪个检索工具            │    │
│  └────────────────────────────────────────────────┘    │
└────────────────────┬────────────────────────────────────┘
                     │
                     ▼ (MCP Tool Call)
┌─────────────────────────────────────────────────────────┐
│              Neo4j 图数据库 (检索层)                     │
│  ┌────────────────────────────────────────────────┐    │
│  │  Cypher 查询:                                  │    │
│  │  MATCH path = shortestPath(                    │    │
│  │    (a:Entity {name:"宁德时代"})-[*]-(          │    │
│  │    b:Entity {name:"比亚迪"})                    │    │
│  │  )                                             │    │
│  └────────────────────────────────────────────────┘    │
│                                                          │
│  (Entity) ──[竞争关系]──> (Entity)                      │
│  宁德时代                   比亚迪                        │
│     │                        │                          │
│     └─[投资]─> (Event) (e:Event)
WHERE ent.name CONTAINS $name
ORDER BY e.timestamp DESC

应用场景:回答"宁德时代最近有什么动态?"、"茅台的财务数据?"

工具 3: 关系检索 - find_relationships
# 查找两个实体之间的最短路径(关系推理)
MATCH p = shortestPath(
  (e1:Entity {name: $n1})-[*]-(e2:Entity {name: $n2})
)
RETURN p

应用场景:回答"A 和 B 有什么关系?"、"如何从 A 关联到 B?"

2. 图增强检索的优势

传统向量 RAG 的限制
# 只能做相似度检索
query_vector = encode("宁德时代和比亚迪的关系")
results = vector_db.similarity_search(query_vector, k=5)
# ❌ 问题:无法理解"关系"的含义,只能返回包含这两个词的文档
图增强 RAG 的实现
# 能够进行关系推理
cypher = """
MATCH p = shortestPath(
  (a:Entity {name: "宁德时代"})-[*]-(b:Entity {name: "比亚迪"})
)
RETURN p, relationships(p) as rels
"""
# ✅ 优势:直接返回实体间的路径和关系类型

3. MCP 协议集成

通过 OpenAI Tool Calling 兼容协议(类似 MCP),实现 LLM 与图数据库的交互:

TOOLS_SCHEMA = [
    {
        "type": "function",
        "function": {
            "name": "find_relationships",
            "description": "分析两个实体之间的关系路径",
            "parameters": {
                "type": "object",
                "properties": {
                    "entity1": {"type": "string"},
                    "entity2": {"type": "string"}
                }
            }
        }
    }
]

# LLM 自动决定调用哪个工具
response = client.chat.completions.create(
    model="qwen-max",
    messages=messages,
    tools=TOOLS_SCHEMA,  # 提供工具定义
    tool_choice="auto"   # 让 LLM 自主决定
)

🛠️ 技术栈

组件技术选型作用
检索层Neo4j图数据库,存储结构化知识
LLMQwen (DashScope)生成模型 + Tool Calling
协议OpenAI Tool CallingMCP 兼容的工具调用协议
数据抽取LLM + Transformers从非结构化文本抽取结构化事件
数据源akshare实时财经新闻

📁 项目结构

finance_graph_agent/
├── ingest_service.py      # 数据抽取与图谱构建服务
├── agent_client.py        # RAG Agent 客户端(工具调用)
├── mcp_server.py          # MCP 工具定义(检索策略)
├── database.py            # Neo4j 连接层
├── requirements.txt       
└── README.md             

🚀 快速开始

1. 环境准备

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

# 启动 Neo4j(Docker 方式)
docker run -d \
  --name neo4j \
  -p 7474:7474 -p 7687:7687 \
  -e NEO4J_AUTH=neo4j/password \
  neo4j:latest

2. 配置环境变量

创建 .env 文件:

# Neo4j
NEO4J_URI=bolt://localhost:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=password

# LLM API
DASHSCOPE_API_KEY=your_key
DASHSCOPE_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
LLM_MODEL=qwen-max

3. 启动服务

# 终端1: 启动数据抽取服务(构建知识图谱)
python ingest_service.py

# 终端2: 启动 RAG Agent(支持工具调用)
python agent_client.py

💡 使用示例

示例 1: 关系推理查询

User: 宁德时代和比亚迪有什么关系?

Agent 思考过程:
  1. 识别实体: "宁德时代"、"比亚迪"
  2. 调用工具: find_relationships(entity1="宁德时代", entity2="比亚迪")
  3. Neo4j 查询: 最短路径算法
  4. 返回结果: 路径包含 [竞争关系]、[同行业]、[投资关系] 等
  
Agent 回答:
  根据知识图谱查询,宁德时代和比亚迪之间存在以下关系:
  - 直接关系:同属锂电池行业,存在竞争关系
  - 间接关系:都投资了上游产业链(如锂矿、正极材料)
  - 关联事件:在多个新能源汽车项目中同时出现

示例 2: 时序检索

User: 最近有什么重要的财经事件?

Agent:
  ⚙️ 调用工具: get_latest_market_events(limit=5)
  🔍 执行 Cypher 查询...
  
  根据最新数据,最近发生了以下重要事件:
  1. 宁德时代宣布投资100亿建设新工厂(2024-01-15)
  2. 茅台发布三季度财报,净利润增长15%(2024-01-14)
  ...

示例 3: 实体历史检索

User: 宁德时代最近有什么动态?

Agent:
  ⚙️ 调用工具: search_entity_history(entity_name="宁德时代")
  
  宁德时代最近的动态包括:
  - 2024-01-15:宣布投资100亿建设新工厂(主体角色)
  - 2024-01-10: 与某公司达成战略合作(主体角色)
  - 2024-01-05: 发布新技术突破(主体角色)

🎨 技术亮点

1. 图检索 vs 向量检索

传统向量 RAG:

  • 只能做语义相似度匹配
  • 无法理解实体关系
  • 返回的是文档片段,需要 LLM 自行理解

图增强 RAG(本项目):

  • 结构化存储:Event + Entity + Relation
  • 关系推理:支持多跳查询、最短路径
  • 精确检索:直接返回结构化关系数据

2. 多维度检索策略

系统支持三种检索模式,对应不同的查询需求:

检索模式适用场景Cypher 查询类型
时序检索"最近发生了什么?"ORDER BY timestamp
实体检索"A公司的情况?"WHERE name CONTAINS
关系检索"A和B的关系?"shortestPath()

3. MCP 协议的优势

  • 标准化接口:工具定义遵循标准格式,易于扩展
  • LLM 自主决策:让模型自己决定调用哪个工具
  • 灵活组合:支持多工具链式调用
  • 易于维护:工具逻辑与 LLM 逻辑解耦

4. 实时知识更新

  • 持续从新闻源抽取事件
  • 自动构建知识图谱
  • 支持增量更新和去重
  • 时间戳管理,支持时序查询

📊 知识图谱模型

数据模型

(Entity {name: "宁德时代"})
    -[:PARTICIPATES_IN {role: "主体"}]-> 
(Event {type: "投资", trigger: "宣布", timestamp: "2024-01-15"})
    
(Entity {name: "比亚迪"})

检索查询示例

-- 关系路径查询
MATCH p = shortestPath(
  (a:Entity {name: "宁德时代"})-[*]-(b:Entity {name: "比亚迪"})
)
RETURN [n in nodes(p) | labels(n)[0] + ':' + coalesce(n.name, n.type)] as path

-- 实体历史查询
MATCH (ent:Entity)-[r:PARTICIPATES_IN]->(e:Event)
WHERE ent.name CONTAINS "宁德时代"
RETURN e.timestamp, e.type, e.trigger, r.role
ORDER BY e.timestamp DESC

-- 时序查询
MATCH (e:Event)
WHERE e.timestamp >= date() - duration({days: 7})
RETURN e
ORDER BY e.timestamp DESC

🔬 对比实验

查询:"宁德时代和比亚迪有什么关系?"

传统向量 RAG:

检索结果: 
- "宁德时代是锂电池龙头企业..."
- "比亚迪也从事锂电池生产..."
- "两者在新能源汽车领域..."

❌ LLM 需要自行推理关系,可能不准确

本项目的图增强 RAG:

Neo4j 查询结果:
路径: 宁德时代 -[COMPETES_WITH]-> 比亚迪
路径: 宁德时代 -[INVEST]-> Event -[INVEST]-> 比亚迪

✅ 直接返回结构化关系,LLM 直接使用

🎯 适用场景

  • 金融领域:公司关系分析、事件追踪
  • 知识问答:需要关系推理的复杂查询
  • 企业图谱:供应链、投资关系分析
  • 学术研究:论文引用关系、作者合作网络

🔮 未来规划

  • [ ] 支持向量 + 图混合检索(Hybrid Search)
  • [ ] 实现更复杂的图算法(PageRank、社区发现)
  • [ ] 支持自然语言到 Cypher 的自动转换
  • [ ] 添加查询结果缓存和优化
  • [ ] 支持更多数据源和知识抽取策略
  • [ ] Web 界面和可视化展示

📚 相关技术

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📄 License

MIT License

👤 作者

fu4geliu - - Email

🙏 致谢


⭐ 如果这个项目对你有帮助,请给个Star支持一下!

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

图数据库Python本地部署增强RAG关系推理知识图谱工具调用协议

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

用自然语言查库

不用手写 SQL,直接问数据,让模型组织查询语句。

数据巡检

定期拉指标、做对比,把异常项整理成一段说明。

打通业务数据

把数据库、数仓和接口接进同一个上下文,减少导出再上传。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在数据服务场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
finance graph agent

MCP World · 本页

0stdio有1 个2026-05-17
Memory 9d25f64e

MCP World

9未说明未标注1 个2026-05-17
Prisma MCP Server

MCP World

0stdio有3 个2026-05-17
Astr Bot

MCP World

0stdio有1 个2026-05-17
Getzep MCP

MCP World

9stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

finance graph agent 怎么安装?

公开资料给出的安装命令是 pip install -r requirements.txt,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

finance graph agent 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

finance graph agent 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

finance graph agent 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

finance graph agent 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP