使用说明
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。