MCP服务器代理列表服务
一个最小的FastAPI微服务,管理和公开MCP服务器代理队列,支持本地和云部署操作。专为Kubernetes原生环境设计(支持MetalLB)。
该项目实现了CircleCI工作流,并连接到Docker Extended CircleCI实例中的K8s容器代理资源类和Docker。允许我们通过Resource_classes(dasmlab/default和dasmlab/docker)在工作流/管道中同时执行docker的sh和K8s的东西。
两者的安装脚本都可以在以下网址找到https://github.com/lmcdasm/oneshots/install-circle-ci-runner
部署通过三个工作流进行处理:
- cx build pipline-这将构建容器,在隔离的Docker网络上本地启动它,然后运行安全和测试套件并发布一个conatiner
- cx暂存管道-这将获取已构建的容器(cx构建管道),并将其部署在已知KUBECONFIG的静态暂存集群上
- cx生产管道-这首先使用AWS地形模块部署EKS设置,然后将我们的应用程序部署到它。
______________________________________________________________________
框架
- API Python(FastAPI),用于快速、异步的API服务
- 部署: 容器化,带有Kubernetes部署和服务(使用MetalLB作为LoadBalancer IP)
______________________________________________________________________
范围和数据模型
此服务维护MCP服务器代理的“服务器”(队列)。\ 它提供了一个REST API,用于列出、添加、删除和检索已知MCP服务器代理的详细信息。每个代理表示为:
{
"id": "",
"name": "
",
"description": "",
"actions": [
"Link Only", // Only provides homepage/link
"Deploy OnPrem", // Deploy on on-prem infra (Docker, K8s, etc.)
"Deploy InCloud", // Deploy in cloud with proper inputs
"Deploy With MCP Explorer" // Instrument/connect via MCP Explorer Application
]
}所有响应都包含在顶级密钥中: {“mcp_server_agents”:\[…\]}
#API终点
方法端点描述 GET/servers列出所有MCP服务器代理(队列/转盘) POST/servers添加新的MCP服务器代理(返回UUID) 删除/服务器?id=按UUID删除MCP服务器代理 GET/服务器?id=检索特定MCP服务器代理的信息
计划行动终点:
POST/action/:id/deploy in cloud--在云中部署(带有效负载)
资源管理器中的POST/action/:id/deploy——使用MCP资源管理器进行检测等。
使用示例
列出所有服务器代理
卷曲http://host:port/servers
添加新代理
curl-X POSThttp://host:port/servers \ -H'内容类型:应用程序/json' \ -d'{“name”:“Acme Cloud”,“description”:“提供测试环境”,“actions”:\[“Deploy InCloud”,”仅链接“\]'
删除代理
curl-X删除”http://host:port/servers?id="
找一个特定的代理人
卷曲http://host:port/servers?id=
部署
使用您最喜欢的图像构建器进行容器化。
部署为Kubernetes部署+服务。
使用负载平衡器服务(MetalLB建议用于裸机设置)。
如上所述配置API端点。
路线图
实现“部署在云中”和“部署在资源管理器中”的操作端点
支持多个代理发现源
可选:添加身份验证和更详细的状态报告
许可证
看 许可证.md
CI碰撞
