使用说明
MCP即服务
通过HTTP/SSE远程运行MCP服务器,并按需执行包。
mcp-as-a-service 从npm/PyPI获取MCP包,在隔离的Podman容器中运行它们,并通过web友好的网关公开它们,这样客户端就不需要本地stdio运行时。
使用Bun+Hono+TypeScript构建。
为什么这个项目
- 将MCP运行时执行集中在您控制的基础架构上
- 跨多个客户端共享远程MCP连接
- 仅在需要时启动包运行时
- 使用Podman安全边界隔离运行时
- 保持一流的协议支持(
2024-11-05)
最佳适配
- 团队内部MCP网关
- 为无法运行本地进程的客户端托管MCP运行时
- 具有可观察性的受控包执行环境
快速启动
先决条件:
- Bun 1.1+
- 波德曼(无根)
设置:
bun install
bun run build:runtime-images
bun run dev
生产开始:
bun run start
运行测试:
bun test
默认端口: 8787 (或 PORT 有人)。
60秒内首次成功
- 启动SSE流:
curl -N "http://127.0.0.1:8787/package/firecrawl-mcp/sse?firecrawlApiKey=YOUR_KEY"
- 发送JSON-RPC消息:
curl -X POST "http://127.0.0.1:8787/package/firecrawl-mcp/messages?firecrawlApiKey=YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'
API概述
核心:
GET /服务元数据和使用提示GET /health健康+协议状态GET /servers活动运行时统计信息
MCP协议:
POST /mcpJSON-RPC 2.0端点GET /mcp/capabilities服务器能力/状态
HTTP/SSE包桥:
GET /package/:packageName/sse流服务器事件/消息POST /package/:packageName/messages发送JSON-RPC有效载荷
规范写入端点为 POST /package/:packageName/messages.
已删除别名:
POST /package/:packageName/respondPOST /package/:packageName/message
客户端使用示例
克劳德桌面:
claude mcp add firecrawl \
'https://mcp.llmbase.ai/package/firecrawl-mcp/sse?firecrawlApiKey=YOUR_KEY' \
-t http
直接MCP:
curl -X POST https://mcp.llmbase.ai/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'
安全和运行时模型
- 仅波德曼执行模型
- 强化容器默认值(取消上限、资源限制、隔离网络模式)
- 输入和参数净化
- 包配置的参数到环境映射
- 自动清理非活动运行时
Ubuntu Podman先决条件:
sudo apt-get update
sudo apt-get install -y podman uidmap slirp4netns fuse-overlayfs apparmor apparmor-utils
podman --version
podman info | grep rootless
电流限制
- 内存中进程注册表(重新启动时状态重置)
maxConcurrentProcesses默认值:10- 容器启动延迟取决于包安装/引导时间
建筑
Client (Claude/Desktop/App)
-> HTTP/SSE
mcp-as-a-service
-> JSON-RPC over stdio
Containerized MCP package runtime (npm/pypi)
-> external APIs/tools/resources
项目结构
src/
app/ app wiring and routes
transport/ HTTP/SSE and MCP protocol controllers
runtime/ process orchestration, execution plans, stdio framing
packages/ package parsing and registry detection
security/ input and environment policies
shared/ config, logging, errors, and types
文档
docs/API_REFERENCE.md端点参考和示例docs/DEPLOYMENT.md生产部署运行手册docs/OPERATIONS.md第二天作战指挥docs/MIGRATION.md打破变化迁移笔记docs/TROUBLESHOOTING.md常见故障和修复docs/MCP_COMPLIANCE.mdMCP协议实现细节docs/CLOUDFLARE_SETUP.mdCloudflare设置指南CONTRIBUTING.md贡献工作流程SECURITY.md漏洞报告策略CODE_OF_CONDUCT.md贡献者行为标准
