项目简介

MCP Agentify 是一个基于 Node.js/TypeScript 构建的 AI 驱动的 Model Context Protocol (MCP) 网关。它作为一个 MCP 服务器运行,主要通过标准输入输出 (stdio) 与客户端(如 IDE)通信。其核心功能是接收客户端的任务请求,利用 AI (如 OpenAI) 来理解请求意图,智能地选择合适的后端 MCP 工具来执行任务,并将结果返回给客户端。它负责动态管理与这些后端工具的连接。

主要功能点

  • 统一MCP接口: 为 LLM 客户端提供一个单一的 MCP 服务器连接点。
  • 智能任务编排: 利用大型语言模型 (LLM) 分析用户输入的自然语言查询和上下文,智能选择和调用配置好的后台 MCP 工具。
  • 动态后端管理: 根据客户端在初始化时提供的配置,动态启动和管理多个基于 stdio 通信的后台 MCP 服务器进程(例如文件系统工具、网页浏览器工具等)。
  • 简化客户端逻辑: 将复杂的工具选择和参数组织逻辑集中在网关侧处理。
  • Stdio 通讯: 设计为通过标准输入输出进行通信,便于与 IDE 和其他工具集成。
  • 可选前端界面: 提供一个简单的 Web 界面,用于监控网关状态、查看实时日志和 MCP 通讯追踪。

安装步骤

要使用 MCP Agentify,您需要在您的系统上安装 Node.js。

  1. 如果您想在项目中将其作为依赖使用或从本地克隆运行: 打开终端,导航到您的项目目录或克隆的 'mcp-agentify' 仓库目录,然后运行:
    npm install mcp-agentify
    # 或使用 yarn
    yarn add mcp-agentify
    如果您从 GitHub 克隆,请先在仓库目录中运行 'npm install' 安装依赖。
  2. 如果您想使用 'npx' 临时运行(假设已发布到 npm):
    npx mcp-agentify

服务器配置

MCP Agentify 网关通过环境变量和连接的 MCP 客户端在 'initialize' 握手时发送的 'initializationOptions' 进行配置。

MCP 客户端(通常是您的 IDE 或 LLM 应用)需要配置如何启动 'mcp-agentify' 进程,以及启动后需要发送哪些初始化参数。

  1. 启动网关进程的配置 (由客户端工具配置): 客户端工具需要知道执行什么命令来启动 MCP Agentify 网关进程。这通常在客户端的 MCP 服务器配置部分设置。

    • 命令 (command): 用于启动网关的命令,例如 'npx' 或 'node path/to/cli.js'。
    • 参数 (args): 传递给命令的参数,例如 'mcp-agentify'。
    • 环境变量 (env): 为网关进程设置的环境变量。重要的环境变量包括:
      • 'OPENAI_API_KEY': 您的 OpenAI API 密钥,这是 AI 编排功能所必需的。网关优先读取此环境变量。
      • 'LOG_LEVEL': 网关的日志级别(例如 'info', 'debug', 'trace')。
      • 'FRONTEND_PORT': 如果设置为一个端口号(例如 '3030'),将启动调试 Web 界面;设置为 '"disabled"' 则禁用。
      • 'AGENTS': 可选,逗号分隔的 '"Vendor/ModelName"' 列表(例如 '"OpenAI/gpt-4.1,OpenAI/o3"'),用于启用直接与指定模型聊天的动态 MCP 方法(如 'agentify/agent_OpenAI_gpt_4_1')。

    客户端工具的配置示例概念(非实际代码,描述其作用): 客户端会有一个配置入口,指定启动 MCP 服务器的方式:

    指定服务器类型为 stdio
    指定启动命令: /path/to/node
    指定命令参数: /path/to/mcp-agentify/dist/cli.js
    设置环境变量:
      OPENAI_API_KEY=sk-YOUR-ACTUAL-KEY
      LOG_LEVEL=debug
      FRONTEND_PORT=3030
  2. 客户端发送的初始化选项 ('initializationOptions' - JSON 格式): 在客户端与网关建立 stdio 连接后,客户端会发送一个包含初始化参数的 JSON-RPC 请求 ('initialize' 方法)。这些参数告诉网关如何配置其托管的后端工具。

    • 这是一个 JSON 对象,主要包含以下字段:
      • 'backends': **(必需)**一个数组,每个元素定义一个网关将管理的后台 MCP 服务器。
        • 每个后台配置对象包含:
          • 'id': **(必需)**后台的唯一标识符(例如 '"filesystem"', '"mcpBrowserbase"'),将用作 LLM 工具名称。
          • 'displayName': (可选)后台的易读名称。
          • 'type': **(必需)**目前必须是 '"stdio"',表示通过 stdio 与后台通信。
          • 'command': **(必需)**用于启动此后台进程的命令(例如 '"npx"', '"node"')。
          • 'args': (可选)传递给此后台启动命令的参数。
          • 'env': (可选)为此特定后台进程设置的环境变量。
      • 'logLevel': (可选)客户端建议的日志级别,网关会优先使用其自身环境变量的设置。
      • 'OPENAI_API_KEY', 'FRONTEND_PORT': (可选)客户端提供的这些参数会被网关自身的环境变量覆盖,仅作为备用。

    客户端发送的初始化选项示例概念(非实际代码,描述其结构): 客户端发送的 JSON 看起来像这样:

    {
      "logLevel": "debug", // 可能被环境变量覆盖
      "OPENAI_API_KEY": "sk-fallback-key", // 可能被环境变量覆盖
      "backends": [
        {
          "id": "filesystem",
          "displayName": "本地文件访问",
          "type": "stdio",
          "command": "npx",
          "args": ["@modelcontextprotocol/server-filesystem", "/path/to/project"]
        },
        {
          "id": "mcpBrowserbase",
          "displayName": "云浏览器工具",
          "type": "stdio",
          "command": "npx",
          "args": ["@smithery/cli@latest", "run", "@browserbasehq/mcp-browserbase"],
          "env": {"BROWSERBASE_API_KEY": "bb-your-key"}
        }
      ]
    }

总结:用户主要通过配置其 MCP 客户端工具来设置 'mcp-agentify' 的启动命令(含环境变量)和 'initializationOptions'(含后端列表)。

基本使用方法

  1. 按照客户端工具(如兼容 MCP 的 IDE)的文档,配置其启动 MCP Agentify 网关(指定命令、参数和必要的环境变量,尤其是 'OPENAI_API_KEY' 和 'FRONTEND_PORT')。
  2. 配置客户端在连接网关时发送的 'initializationOptions',列出希望网关管理的后端 MCP 工具(例如配置 '@modelcontextprotocol/server-filesystem' 或 '@browserbasehq/mcp-browserbase' 作为后台)。
  3. 启动您的客户端工具。客户端会自动启动并连接到 MCP Agentify。
  4. 在客户端中通过自然语言或特定功能触发需要 LLM 编排的任务。客户端会将请求发送给网关的 'agentify/orchestrateTask' 方法。
  5. 网关接收请求,调用 OpenAI API 确定最佳后台工具和方法,然后代理请求给相应的后台进程。
  6. 后台进程执行任务并将结果返回给网关,网关再将结果返回给客户端。
  7. 如果启用了调试 Web 界面(通过设置 'FRONTEND_PORT' 环境变量),您可以在浏览器中访问 'http://localhost:<PORT>' 查看日志和追踪,监控网关和后台的活动。
  8. 如果设置了 'AGENTS' 环境变量,客户端可能可以通过网关暴露的动态方法直接与指定的 LLM 模型进行聊天交互。

信息

分类

AI与计算