mcpField
U
Unified MCP Tool Graph: A Intelligence Layer for Dynamic Tool Retrieval

Unified MCP Tool Graph: A Intelligence Layer for Dynamic Tool Retrieval

本地服务
github.com/pratikjadhav2726AI 与智能体2833 周前更新

关于 Unified MCP Tool Graph: A Intelligence Layer for Dynamic Tool Retrieval

Unified MCP Tool Graph 是一个研究型项目,将多个 MCP 服务的工具 API 汇总到 Neo4j 图数据库中,帮助 LLM 与 Agent 按任务动态检索最相关的工具。项目面向需要处理大量工具的 Agent 开发者。

主要功能

  1. 01将多个 MCP 服务的工具结构化存入 Neo4j
  2. 02按用户查询动态检索相关工具
  3. 03记录工具之间的重叠与依赖关系
  4. 04按需启动 MCP 服务并在闲置后关闭
  5. 05集成 A2A 与 LangGraph 示例 Agent

适用场景

  1. 01为 Agent 仅加载与当前任务相关的少量工具
  2. 02在企业内按权限筛选可用内部工具
  3. 03构建基于标签与依赖的工具推荐 Agent

MCP 相关

该项目通过 Dynamic Tool Retriever MCP 返回相关工具及其 MCP 服务配置,并由服务管理器按需连接对应的 MCP 服务。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MseeP.ai Security Assessment Badge

统一 MCP 工具图谱:用于动态检索工具的智能层

image

统一 MCP 工具图谱 是一个以研究为导向的项目,它将来自不同 Model Context Protocol(MCP)服务 的工具 API 汇总并构建为结构化数据,存储在集中式 Neo4j 图数据库 中。该图谱充当智能基础设施层,使 大语言模型(LLM) 和 Agent 式 AI 系统 能够针对任何任务 动态检索 最相关的工具,而不会被冗余或令人困惑的选项淹没。


🚀 最新动态:该项目已集成到 SmarterMCP,目前处于预览模式。

动态启动 MCP 服务并提供精简工具上下文

🟢 动态编排 MCP 服务
  • 系统现在会 仅启动给定用户查询所需的 MCP 服务。默认情况下,五个常用 MCP 服务(包括 Dynamic Tool Retriever MCP)会保持预热状态;其他服务则按需启动,并在最后一次使用后保持运行 10 分钟。
  • Dynamic Tool Retriever MCP 返回的不仅是工具元数据,还包括运行/连接到该工具对应 MCP 服务所需的配置(自动从供应商的 GitHub README 获取)。
  • 自动提取 MCP 配置: 使用供应商的 GitHub 仓库,从 README 中提取每个工具对应的 MCP 服务配置,以便 Agent 随时启动/连接正确的服务。
  • 错误处理: 如果配置提取失败,系统会记录警告并继续运行,确保工具检索过程稳健可靠。
🟢 为大模型/Agent 提供精简工具上下文
  • 仅将用户查询所需的确切工具加载到 Agent 的上下文中(而非加载所有 MCP 服务的全部工具)。这可以避免大模型混淆和无限工具循环。
  • 端到端流程:
    1. 接收用户查询。
    2. Dynamic Tool Retriever MCP 查询 Neo4j 图谱,并返回最相关的工具 及其 MCP 服务配置。
    3. Agent 使用这些配置,仅启动/连接所需的 MCP 服务,并加载检索出的工具。
    4. Agent 执行工作流并返回答案。
🟢 支持 A2A 和 LangGraph Agent
  • A2A Agent 示例: 查看 Example_Agents/A2A_DynamicToolAgent/,了解一个完全动态的 A2A Agent,它会根据每次请求编排 MCP 服务和工具。
  • LangGraph 示例: 查看 Example_Agents/Langgraph/,了解一个使用相同动态精简工具方法的 LangGraph Agent。

🔬 本仓库专注于创建和演进 统一工具图数据库。基于聊天机器人的集成(例如 LangChain)被视为这一基础层的模块化扩展。

📢 即将支持 Cline 和 IDE……


研究问题

随着大模型和自主 Agent 不断发展,开始与外部工具和 API 交互,一个关键瓶颈也随之出现:

面对不断扩大的 API 集合,模型如何高效选择合适的工具,而不会陷入无限循环或选错工具?

为什么会出现这种情况:
  • 工具混淆:
    当许多工具提供相似功能时(例如 create_post、schedule_post、post_to_social),大模型难以抉择,并可能调用错误的工具。

  • ↺ 无限调用链:
    如果缺少对工具差异的结构化理解,大模型往往会陷入无效调用链,重复调用工具或选择不理想的工具。

  • 缺乏结构化的访问方式:
    当前大多数实现会将所有可用工具都塞进大模型的上下文,使其被过多选项淹没,并增加产生幻觉的风险。


image ## ✅ 解决方案:统一 MCP 工具图谱

本项目提出了一种结构化、可查询的解决方案:一个与供应商无关的 Neo4j 图数据库,收录来自 MCP 服务(例如 LinkedIn、Google、Facebook、Notion 等)的工具/API。

🔍 核心能力:
  • 集中式工具智能:
    以图格式存储 API 描述、元数据、参数及工具之间的关系。

  • 面向大模型的查询层:
    Agent 可以根据元数据和关系,为每项任务检索最相关的 3–4 个工具,从而最大限度地减少混淆。

  • 语义区分:
    通过图关系(例如 overlaps_with、extends、preferred_for_task)记录工具之间的相似之处和差异,以指导决策。


模块化扩展

图谱是核心,同时也支持强大的下游用例:

动态工具检索(DTR):

一种模块化的 LangChain/Autogen 聊天机器人扩展,可查询图谱,并针对给定的用户意图提供一组精简、准确的工具。

这样可以避免大模型盲目扫描庞大的工具库,而是只提供完成任务所需的工具——不多不少。

核心实现:

  • 按需启动 MCP 服务(使用工具检索 MCP 和 GitHub 中的配置),并在不活跃后关闭。
  • 始终只运行最受欢迎的 5 个 MCP;其他 MCP 按需运行。
  • Agent(A2A 或 LangGraph)只能看到与当前查询相关的工具,而不是全部工具。

核心目标

目标描述
工具摄取从公共/私有 MCP 服务获取 API 和架构,并对其进行规范化
工具关系映射定义图谱边,例如 overlaps_with、requires_auth、preferred_for、belongs_to_vendor
面向大模型的查询实时返回针对特定任务的工具组合
可扩展的生态系统持续添加供应商和工具,无需重新训练或硬编码
感知 Agent 的结构通过富含元数据、可搜索的工具表示,引导大模型推理

主要优势

  • 减少大模型中的工具混淆
    只展示与任务相关的选项,避免工具过载。防止无限调用循环和错误的工具选择。

  • 与供应商无关的集成
    将不同提供商的 API 整合到一个智能系统中。

  • 映射互操作性
    记录工具之间的关联或依赖关系,便于在工作流中串联 API。

  • 优化 Agent 推理
    让大模型能够更高效地推理,减少上下文窗口中的干扰。

  • 可扩展且模块化
    可独立于大模型或聊天机器人基础设施进行更新。可扩展至任何 Agent 技术栈。


示例用例

  • “我想在 LinkedIn 上安排一条帖子,并分享到 Slack。”
    → 图谱只返回相关的 create_post、schedule_post 和 send_message 工具。

  • 面向企业的定制 AI 助手:
    只开放图谱中的内部工具,并按访问权限、范围或功能进行筛选。

  • 智能推荐 Agent:
    根据标签、人气、成功率或依赖关系推荐最匹配的工具。

Example_Agents 目录提供了与 LangGraph 和 A2A 的集成,可简化 Agent 工作流和动态工具编排。


🏗️ 架构

┌─────────────────────────────────────────────────────────────┐
│                    MCP Unified Gateway                      │
│                    (Port 8000)                             │
└─────────────────────┬───────────────────────────────────────┘
                      │
┌─────────────────────┴───────────────────────────────────────┐
│                 MCP Proxy Server                            │
│                 (Port 9000)                                │
└─┬─────────────┬─────────────┬─────────────┬─────────────────┘
  │             │             │             │
┌─▼──────────┐ ┌▼─────────────▼┐ ┌─▼─────────▼┐ ┌─▼─────────────┐
│ Dynamic    │ │ Everything   │ │Sequential  │ │ Time Server   │
│ Tool       │ │ Server       │ │ Thinking   │ │               │
│ Retriever  │ │              │ │ Server     │ │               │
└────────────┘ └──────────────┘ └────────────┘ └───────────────┘
      │
┌─────▼─────┐
│   Neo4j   │ (Optional)
│ Database  │
└───────────┘

🛠️ 工作原理(概述)

  1. 用户提交查询(例如:“安排一条 LinkedIn 帖子,并分享到 Slack。”)
  2. 动态工具检索器 MCP 查询 Neo4j 图,并返回最相关的工具,以及它们的 MCP 服务配置(如有需要,则从 GitHub 获取)。
  3. MCP 服务管理器仅启动/连接所需的 MCP 服务(使用这些配置),并在最后一次使用后保持运行 10 分钟。
  4. Agent(A2A 或 LangGraph)仅加载检索到的工具并执行工作流。
  5. 结果返回给用户,尽可能减少工具混淆并提高效率。


即将推出

  • 图数据导入脚本
  • 架构蓝图 + Cypher 查询
  • 工具可视化 Playground
  • LangChain DTR 聊天机器人插件
  • 操作教程与用例

开始使用

👉 查看 GETTING_STARTED.md,了解使用 uv 的完整设置说明。

快速开始
# Clone the repository
git clone https://github.com/your-username/unified-mcp-tool-graph.git
cd unified-mcp-tool-graph

# Install dependencies with uv
uv sync

# Start the unified gateway
uv run python start_unified_gateway.py

网关将在 http://localhost:8000 上提供服务,所有 MCP 服务中的工具都可通过单一端点访问。

有关详细设置说明、故障排除和配置选项,请参阅 GETTING_STARTED.md。


贡献

如果你热衷于 Agent 式 AI、图数据库或大模型集成,我们非常期待你的帮助!

  • 提交想法或供应商来源
  • 提交 PR,改进架构/设计
  • 为此研究点亮 Star,给予支持

许可证

MIT 许可证——可免费用于学术、个人和商业用途。


总结

与其把 100 多个工具一股脑塞进模型的提示词并期待它做出明智选择,不如通过 统一 MCP 工具图为你的大模型提供结构、清晰度和相关性。

它能解决工具混淆问题、防止无限循环,并支持模块化、智能化的 Agent 工作流。

让我们一次构建一个工具图,共同打造更智能的系统。


为项目点亮 Star,关注发展历程,让工具真正变得智能、可搜索且模块化。

开发动态

面向多标签开放式用例的聚类。
image

创建了一个包含供应商和工具的 GraphDB,并为其生成嵌入,以支持向量搜索。 需要一种方法来对供应商进行分类,并将同一类别的供应商关联起来。例如(网页搜索、文件系统、社交媒体等)。 支持的工具数量:11066 MCP 服务数量(官方 + 社区):4161

UnifiedMCPToolGraph

查询 = 我想发布一条关于 AI 最新趋势的 LinkedIn 帖子。
Here are the top 5 tools recommended based on your task of creating a LinkedIn post about AI trends, along with brief explanations to help you choose:

---

### 1. **linkedin_post_generator** (Likely the Most Relevant)  
**Description**: Generates optimized LinkedIn posts with engaging headlines, content structure, and hashtags tailored for professional audiences.  
**Why Use**: Directly creates polished posts while suggesting multimedia (images, videos) and tone adjustments for maximum engagement.  

---

### 2. **ai_search** (Top Search Tool)  
**Vendor**: Higress AI-Search  
**Key Feature**: Aggregates **real-time data** from Google/Bing/Quark and academic sources like ArXiv for cutting-edge AI research and industry trends.  
**How to Use**:  
   - Query: `Latest AI trends 2024` → Get recent news, research papers, and opinion pieces.  
   - Useful for ensuring your post cites fresh, credible sources.  

---

### 3. **tavily-search** (Comprehensive Web Research)  
**Vendor**: Tavily  
**Key Feature**: AI-powered search with advanced filters (e.g., `time_range`, `exclude_domains`) to curate content from trusted sources.  
**How to Use**:  
   - Example: Search for "recent AI breakthroughs 2024" → Pull articles from tech blogs, IEEE, or MIT Tech Review to highlight in your post.  

---

### 4. **query_repository** (If Curating Open-Source or GitHub Content)  
**Vendor**: GitHub Chat  
**Use Case**:  
   - If your post references open-source projects (e.g., "Top AI tools from GitHub 2024"), use this to query repositories for trending AI-related code/repos.  

---

### 5. **social_media_analytics** (Post-Creation Optimization)  
**Use Case**:  
   - After drafting your post, analyze engagement metrics (e.g., "Which AI topics are trending this week?") to refine your draft based on what performs well on LinkedIn.  

---

### Recommended Workflow:  
1. **Research** using **ai_search** or **tavily-search** to gather the latest AI news and data (e.g., LLM progress, ethical AI debates).  
2. **Craft the Post** with **linkedin_post_generator** to ensure professional formatting and engagement hooks.  
3. **Validate** with quick checks via **query_repository** (if citing open-source tools) or **social_media_analytics** for topic popularity.  

Let me know if you'd like step-by-step instructions for any specific tool!

使用 mcp-proxy 代理 MCP 服务

本项目使用 mcp-proxy 将基于 stdio 的 MCP 服务暴露为 HTTP 端点。mcp-proxy 充当基于 stdio 的 MCP 服务与 HTTP 客户端之间的桥梁,支持 Streamable HTTP 和 SSE 传输方式。

工作原理
  • MCP 服务作为子进程(stdio)启动,并注册到 mcp-proxy。
  • 每个服务都会在以下地址暴露:
    • http://localhost:<port>/servers/<name>/(Streamable HTTP,POST)
    • http://localhost:<port>/servers/<name>/sse(SSE,GET)
  • 官方 MCP Python SDK 可通过 sse_client 连接到 /sse 端点:
from mcp.client.sse import sse_client
from mcp.client.session import ClientSession
import asyncio

async def main():
    mcp_url = "http://localhost:9000/servers/time/sse"
    async with sse_client(mcp_url) as (read, write):
        async with ClientSession(read, write) as session:
            await session.initialize()
            # ... interact with the server ...

if __name__ == "__main__":
    asyncio.run(main())

有关配置和高级用法的更多详情,请参阅 mcp-proxy 文档。


📚 文档


📄 许可证

本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。


为项目点亮 Star,关注发展历程,让工具真正变得智能、可搜索且模块化。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。