Token导航 LogoToken导航TokenDH.com
Autonomous Agent With MCP Zero logo
AI代理stdio官方级别未说明来源级核验

Autonomous Agent With MCP Zero

MCP Server

MCP-Zero是一个创新的框架,用于在基于大型语言模型(LLM)的代理系统中动态发现所需工具,减少上下文过载并增强代理的自主决策能力。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
PythonAI代理工作流自动化

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Zouhair-Manar

提供方

Zouhair-Manar

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python get_server_summary.py

详细介绍

MCP-Zero的实施:在AI代理中主动发现工具

本项目展示了MCP-Zero的实现,这是一个创新框架,用于在基于大型语言模型(LLM)的代理系统中主动发现工具。与传统方法(即大量将工具描述注入模型上下文)不同,MCP-Zero允许代理根据其感知到的能力不足,动态地请求所需的工具。

主要功能

  • 主动工具发现(主动工具请求) 该代理自主识别其对外部工具的需求,并通过代码块生成结构化查询 ``。
  • 🔍 看起来像是一个放大镜的符号,常用于表示搜索、查看细节或调查等意思,在中文中可以翻译为“🔍(放大镜)”或者根据上下文意译为“仔细查看”、“搜索”等。 层次语义路由 一个两阶段机制首先过滤出相关的MCP服务器,然后根据语义相似性对工具进行分类。
  • 🔄 旋转或循环的符号(可理解为“循环”、“重复”或“刷新”等意思,具体含义根据上下文而定) 迭代扩展能力 代理可以在运行过程中细化其查询并发现新工具,从而确保持续适应。
  • 📦 箱子/包裹 构建MCP-Tools数据集 从MCP服务器中提取、结构化和向量化元数据,以实现高效检索。
  • ⚙️ 代表齿轮的符号,常用于表示机械、装置或技术相关的概念,在中文中可直接以“⚙️(齿轮符号)”或根据上下文翻译为“齿轮”、“装置”、“技术部件”等。 通过PocketFlow进行编排 集成到基于节点的模块化工作流中,实现流畅且可配置的执行。
  • 🖥️(电脑显示器) 使用Gradio实现的交互式界面 实时可视化查询、决策和发现的工具。

项目目标

  • 大幅减少因大量注入工具而产生的上下文负担。
  • 恢复员工的自主决策权,让他们能够积极表达自己的需求。
  • 验证MCP-Zero在自主智能体实际场景中的有效性。

所使用的技术

  • Python 3.8或更高版本
  • OpenAI GPT-4o、Qwen2.5、DeepSeek-r1(评估模型)
  • text-embedding-3-large(OpenAI)用于语义嵌入
  • 用于与MCP服务器交互的MCP Python SDK
  • PocketFlow用于工作流编排
  • Gradio用于交互式用户界面
  • PyYAML 用于解析结构化输出

流程图

______________________________________________________________________

代理架构:

flowchart TD
    decide_node[Decide Node] -->|"Find Tool"| Tool_Matcher_Node[Tool Matcher Node]
    Tool_Matcher_Node -->|"Return Found Tool"| decide_node
    decide_node -->|"Call Tool"| execute_node[Execute Node]
    decide_node -->|"Generate Final Response"| None((End))
    execute_node -->|"Tool Result"| decide_node
    decide_node -->|"On Error"| decide_node

📂 项目结构

mcp-zero/
├── agent/                      # Code principal de l'agent
│   ├── main.py                 # Point d'entrée - interface et orchestration
│   ├── flow.py                 # Définition du flux d'exécution (nodes)
│   ├── node_s.py               # Implémentation des nodes (ToolMatcher, Decision, Execute)
│   ├── utils.py                # Fonctions utilitaires (LLM call, embedding, etc.)
│   ├── server_config.json      # Configuration des serveurs MCP (commandes de lancement)
│   └── requirements.txt        # Dépendances Python
│
├── mcp_build_tools_dataset/    # Scripts pour construire le dataset MCP-tools
│   ├── get_server_summary.py   # Génère les résumés et embeddings des serveurs
│   ├── server_summary.prompt   # Prompt utilisé pour générer les résumés
│   ├── readmes/                # Dossier pour stocker les README des serveurs MCP
│   └── output/                 # Dossier de sortie pour les fichiers générés
│       └── all_servers.json    # Dataset final (sortie)
│
└── README.md                   # Ce fichier

______________________________________________________________________

🛠️ 如何构建数据集

  1. 将MCP服务器的README文件放入 mcp_build_tools_dataset/readmes/
  2. 脚本 get_server_summary.py 将提取信息并生成一个JSON数据集(all_servers.json) 根据以下方案:
{
  "server_name": "string",
  "server_summary": "string",
  "server_description": "string",
  "tools": [
    {
      "name": "string",
      "description": "string",
      "parameter": {
        "param1": "(type) description1",
        "param2": "(Optional, type) description2"
      },
      "description_embedding": "..."
    }
  ],
  "description_embedding": "...",
  "summary_embedding": "..."
}
  1. 构建数据集的命令:
cd mcp_build_tools_dataset
python get_server_summary.py

⚠️ 重要提示 :\ 在 utils.pyget_server_summary.py,功能 call_llmget_embedding 并且 extract_info_for_readme 它们定义了如何调用模型(LLM)、生成嵌入向量,以及如何从README文件中生成包含服务器和工具描述的JSON。这些函数的逻辑尚待实现。

______________________________________________________________________

⚙️ MCP服务器管理

  • 在文件夹中添加自定义服务器 servers/
  • 在(某处)设置其启动配置 server_config.json (启动服务器并运行其工具的命令)。
  • server_config.json,领域 server_name 必须与……完全一致 server_name 在……中定义 all_servers.json

______________________________________________________________________

🚀 如何运行项目

  1. 进入文件夹 代理
cd agent
  1. 安装依赖项
pip install -r requirements.txt
  1. 启动应用程序
python main.py

______________________________________________________________________

📌 文件描述

  • main.py(主程序文件) → 应用程序启动的主要点。包含界面并将代理与该界面连接。
  • flow.py(这个文件名直接翻译为中文可以保持原样,因为文件名通常不翻译,但如果是描述其功能或内容的,可以翻译为“流程.py”或根据具体上下文翻译,不过在这里直接保留原文件名的形式更为常见) → 定义代理流程并实例化各个节点。
  • node_s.py(文件名可译为“节点S.py”,但通常保留原文件名,仅说明其含义为“节点S的Python脚本”或“节点S的程序文件”) → 包含 节点

- ToolMatcherNode → 找到要使用的正确工具。 - DecisionNode → 决定要采取的行动(通过大型语言模型)。 - ExecuteNode → 执行所选工具。

  • server_config.json 翻译为中文是:“服务器配置文件.json” → 配置MCP服务器以启动并调用其工具。
  • \utils.py\ 翻译成中文可以是“实用工具模块.py”或“工具函数文件.py”,具体翻译可能根据上下文或项目习惯有所调整。在这里,“utils”通常指的是“utilities”的缩写,意为“实用工具”或“工具函数”,而“.py”表示这是一个Python文件 → 实用功能(调用大型语言模型、生成嵌入、解析等)。
  • all_servers.json 翻译成中文是:“所有服务器.json” → 生成的MCP数据集(符合上述图表)。
  • 服务器摘要提示 → 将提示传递给大型语言模型(LLM)以生成服务器摘要。

目录标签

目录标签

PythonAI代理工作流自动化主动工具发现本地部署语义路由能力扩展LLM代理工作流编排

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

来源信息

继续浏览同类 MCP