AgentDNS·节点:模型上下文协议(MCP)服务器的统一中心
英语| 中文版
AgentDNS·Node通过将多个MCP(模型上下文协议)服务器组织成灵活的流式HTTP(SSE)端点,使其易于管理和扩展,支持对所有服务器、单个服务器或逻辑服务器组的访问。
🚀 特性
- 扩大MCP服务器支持:以最少的配置无缝集成任何MCP服务器。
- 集中式仪表板:通过一个时尚的web UI监控实时状态和性能指标。
- 灵活的协议处理:与stdio和SSE MCP协议完全兼容。
- 热插拔配置:动态添加、删除或更新MCP服务器,无需停机。
- 基于组的访问控制:将服务器组织成可定制的组,以简化权限管理。
- 安全认证:内置用户管理,基于角色的访问由JWT和bcrypt提供支持。
- Docker就绪:使用我们的容器化设置立即部署。
🔧 快速开始
配置
创建一个 mcp_settings.json 用于自定义服务器设置的文件:
{
"mcpServers": {
"amap": {
"command": "npx",
"args": ["-y", "@amap/amap-maps-mcp-server"],
"env": {
"AMAP_MAPS_API_KEY": "your-api-key"
}
},
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest", "--headless"]
},
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
},
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "your-bot-token",
"SLACK_TEAM_ID": "your-team-id"
}
}
}
}Docker部署
推荐:装载您的自定义配置:
docker run -p 3000:3000 -v ./mcp_settings.json:/app/mcp_settings.json -v ./data:/app/data samanhappy/mcphub或使用默认设置运行:
docker run -p 3000:3000 samanhappy/mcphub访问仪表板
打开 http://localhost:3000 并使用您的凭据登录。
备注:默认凭据为admin/admin123.
仪表板概述:
- 所有MCP服务器的实时状态
- 启用/禁用或重新配置服务器
- 用于组织服务器的组管理
- 访问控制的用户管理
可流式传输HTTP端点
截至目前,对流式HTTP端点的支持因不同的AI客户端而异。如果遇到问题,可以使用SSE端点或等待将来的更新。
通过以下方式连接AI客户端(例如,Claude Desktop、Cursor、DeepChat等):
http://localhost:3000/mcp此端点为所有MCP服务器提供了一个统一的流式HTTP接口。它允许您:
- 向任何配置的MCP服务器发送请求
- 实时接收响应
- 轻松与各种AI客户端和工具集成
- 对所有服务器使用相同的端点,简化集成过程
智能路由(实验):
Smart Routing是AgentDNS·Node的智能工具发现系统,它使用向量语义搜索来自动为任何给定的任务找到最相关的工具。
http://localhost:3000/mcp/$smart它是如何工作的:
- 工具索引:所有MCP工具都会自动转换为向量嵌入,并使用pgvector存储在PostgreSQL中
- 语义搜索:用户查询被转换为向量,并使用余弦相似度与工具嵌入进行匹配
- 智能过滤:动态阈值确保相关结果无噪音
- 精确执行:找到的工具可以通过适当的参数验证直接执行
设置要求:
要启用智能路由,您需要:
- 带pgvector扩展的PostgreSQL
- OpenAI API密钥(或兼容的嵌入服务)
- 在AgentDNS中启用智能路由·节点设置
组特定端点(推荐):
对于特定服务器组的定向访问,请使用基于组的HTTP端点:
http://localhost:3000/mcp/{group}哪里 {group} 是您在仪表板中创建的组的ID或名称。这使您能够:
- 连接到按用例组织的MCP服务器的特定子集
- 隔离不同的AI工具,仅访问相关服务器
- 为不同的环境或团队实施更精细的访问控制
服务器特定端点: 要直接访问单个服务器,请使用特定于服务器的HTTP端点:
http://localhost:3000/mcp/{server}哪里 {server} 是您要连接的服务器的名称。这允许您直接访问特定的MCP服务器。
备注:如果服务器名称和组名称相同,则组名称将优先。
SSE端点(未来不再使用)
通过以下方式连接AI客户端(例如,Claude Desktop、Cursor、DeepChat等):
http://localhost:3000/sse对于智能路由,请使用:
http://localhost:3000/sse/$smart对于特定服务器组的目标访问,请使用基于组的SSE端点:
http://localhost:3000/sse/{group}要直接访问单个服务器,请使用服务器特定的SSE端点:
http://localhost:3000/sse/{server}🧑💻 地方发展
git clone https://github.com/samanhappy/mcphub.git
cd mcphub
pnpm install
pnpm dev这将在开发模式下通过热重新加载启动前端和后端。
对于windows用户,您可能需要分别启动后端服务器和前端:pnpm backend:dev,pnpm frontend:dev.
🛠️ 常见问题
使用Nginx作为反向代理
如果您使用Nginx反向代理AgentDNS·Node,请确保在Nginx设置中添加以下配置:
proxy_buffering off🔍 技术栈
- 后端:Node.js、Express、TypeScript
- 前端:React、Vite、顺风CSS
- 认证:JWT&bcrypt
- 协议:模型上下文协议SDK
🙏🏻 谢谢
这个项目是基于以下出色的项目开发的:
📄 许可证
根据 Apache 2.0许可证.
