MCP代理网关

AI驱动的MCP网关,发现后端MCP服务器的工具,并将自然语言请求路由到一个后端工具。

  • by steipete
  • TypeScript
  • 本地部署
  • 39 星标
  • 更新于
在 GitHub 查看 steipete/mcp-agentify

使用说明

mcp代理

人工智能驱动的MCP网关,从后端MCP服务器发现工具,并将每个自然语言请求路由到一个后端工具。

实验。npm包是 @steipete/mcp-agentify.未放映的 mcp-agentify 该包属于一个无关的项目。

需求

  • Node.js 20.19或更新版本
  • 一个OpenAI API密钥
  • 至少一个stdio MCP后端

安装

npm install --global @steipete/mcp-agentify

已安装的命令仍然存在 mcp-agentify.

配置

创建 mcp-agentify.json:

{
  "openaiModel": "gpt-4.1-mini",
  "frontendPort": 3030,
  "agents": ["openai/gpt-4.1-mini"],
  "backends": [
    {
      "id": "filesystem",
      "displayName": "Workspace files",
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem@2026.1.14",
        "/absolute/path/to/allowed/files"
      ]
    },
    {
      "id": "browserbase",
      "displayName": "Browserbase",
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@browserbasehq/mcp@3.0.0"],
      "inheritEnv": [
        "BROWSERBASE_API_KEY",
        "BROWSERBASE_PROJECT_ID",
        "GEMINI_API_KEY"
      ]
    }
  ]
}

在网关进程环境中设置凭据:

export OPENAI_API_KEY=...
export BROWSERBASE_API_KEY=...
export BROWSERBASE_PROJECT_ID=...
export GEMINI_API_KEY=...
mcp-agentify --config /absolute/path/to/mcp-agentify.json

inheritEnv 是一个明确的反对者。后端进程接收一个最小的默认环境,加上仅列出的变量和配置 env 价值观。配置值,例如 "TOKEN": "${TOKEN}" 从网关环境扩展。

MCP客户端

将网关配置为stdio MCP服务器:

{
  "mcpServers": {
    "agentify": {
      "command": "npx",
      "args": [
        "-y",
        "@steipete/mcp-agentify",
        "--config",
        "/absolute/path/to/mcp-agentify.json"
      ],
      "env": {
        "OPENAI_API_KEY": "..."
      }
    }
  }
}

网关公开了一个MCP工具:

  • orchestrate_task:选择并调用从配置的后端中发现的一个工具。

多步骤工作流需要多个 orchestrate_task 电话。例如,Browserbase工作流可以调用 start那么 navigate那么 extract.

命令行界面

mcp-agentify --config <path> [--frontend-port <port>|--no-ui] [--model <model>]

环境覆盖:

变量 目的
OPENAI_API_KEY 必需的OpenAI证书
OPENAI_BASE_URL 可选的OpenAI兼容基本URL
OPENAI_MODEL 以(权力)否决 openaiModel
MCP_AGENTIFY_CONFIG 默认配置路径
FRONTEND_PORT UI端口,或 disabled
LOG_LEVEL Pino日志级别
AGENTS 逗号分隔 openai/<model> UI代理

本地UI

集 frontendPort 或通过 --frontend-port。仪表板绑定到 127.0.0.1 并显示后端状态、编辑日志、MCP跟踪、配置和可选的直接OpenAI聊天。

安全

  • 将文件系统后端限制为所需的最小目录。
  • 将凭据保存在环境变量中;不要将它们放在JSON或命令参数中。
  • 仅列出中的变量 inheritEnv 被转发到后端。
  • 配置、日志、跟踪、错误和后端命令参数在显示之前会被编辑。
  • 仪表板HTTP请求需要本地主机 Host;浏览器来源和WebSockets必须是同一来源。
  • 仪表板仅在本地,没有身份验证。不要代理或公开它。

发展

npm ci
npm run lint
npm test
npm pack --dry-run

npm test 在运行单元和集成测试之前,重建服务器和打包的UI。

看 API, 例子,以及 发布说明.