RobotMCP服务器
模块化模型上下文协议(MCP)服务器,具有自动子模块集成、OAuth 2.1身份验证、Supabase用户管理和Cloudflare隧道支持。适用于ChatGPT和Claude.ai。
快速开始
选项1:pipx(快速启动)
# Install via pipx (submodules auto-download on first run)
pipx install git+https://github.com/robotmcp/robotmcp_server.git
# Run (opens browser for first-time setup)
robotmcp-server注: 安装pipx后,您无法添加或删除模块。如果需要模块管理,请使用选项2。
选项2:克隆和可编辑安装(推荐)
# Clone with submodules included
git clone --recursive https://github.com/robotmcp/robotmcp_server.git
cd robotmcp_server
pip install -e .
# Run (opens browser for first-time setup)
robotmcp-server可编辑的安装允许您使用以下方式管理模块 robotmcp-server add/remove/update.
# Verify everything is working
robotmcp-server verify看 docs/install.md 用于手动安装和故障排除。
特性
- 子模块自动发现:自动从git子模块中查找和注册MCP工具
- 自动安装依赖关系:子模块依赖关系在启动时自动安装
- 可流式HTTP传输:现代MCP运输
/mcp - OAuth 2.1:具有PKCE和动态客户端注册的全流程
- Cloudflare 隧道:通过安全访问
{name}.robotmcp.ai - 仅限创建者访问:只有服务器创建者可以连接
- 可选OAuth:禁用
ENABLE_OAUTH=false - 安全CLI登录:基于POST的凭据传输(不是URL参数)
- WSL支持:使用PowerShell回退可靠地打开浏览器
项目结构
robotmcp_server/
├── main.py # FastAPI app entry point
├── submodule_integration.py # Auto-discover & register submodule tools
├── submodule_deps.py # Auto-install submodule dependencies
├── tools.py # Built-in MCP tools (echo, ping)
├── cli.py # CLI daemon management
├── config.py # Config management (~/.robotmcp-server/)
├── setup.py # Browser-based login flow
├── sse.py # Legacy SSE endpoints
├── oauth/ # OAuth module (optional)
│ ├── endpoints.py # OAuth routes
│ ├── middleware.py # Token validation
│ ├── jwt_utils.py # JWT token generation/validation
│ ├── stores.py # Session stores
│ └── templates.py # HTML templates
└── ros-mcp-server/ # Example submodule (ROS integration)云服务: CLI登录和隧道创建由以下人员处理 robotmcp云 在 https://app.robotmcp.ai.
看 docs/project_plan.md 了解架构细节。
命令行命令
| 命令 | 描述 |
|---|---|
robotmcp-server | 在后台启动服务器 |
robotmcp-server stop | 停止服务器和隧道 |
robotmcp-server status | 显示当前状态 |
robotmcp-server verify | 全面验证(服务器、隧道、DNS、连接) |
robotmcp-server list | 列出已安装的MCP服务器模块及其兼容性状态 |
robotmcp-server list-tools | 列出兼容模块中所有可用的MCP工具 |
robotmcp-server add | 添加MCP服务器模块(git子模块) |
robotmcp-server remove | 卸下MCP服务器模块 |
robotmcp-server update | 将所有MCP服务器模块更新到最新版本 |
robotmcp-server logout | 清除凭据并停止 |
验证命令
这 verify 命令执行全面的诊断:
robotmcp-server verify已执行的检查:
- 配置 -验证隧道令牌和配置是否存在
- 本地服务器 -在上测试服务器连接
localhost:8766 - 云雾燃烧过程 -检查cloudflared是否正在运行
- 隧道身份验证 -分析日志以验证隧道是否经过身份验证并已连接
- DNS解析 -验证DNS记录是否存在并正确解析
- 隧道端点 -通过隧道测试端点(
/,/health)
输出包括:
- ✓/✗ 每次检查的状态
- 带有可操作修复程序的详细错误消息
- 包含通过/失败统计信息的摘要
- 如果发现问题,接下来的步骤
使用此命令诊断连接问题,验证DNS配置,并确保您的隧道正常工作。
环境变量
| 变量 | 描述 |
|---|---|
SUPABASE_URL | Supabase项目URL |
SUPABASE_ANON_KEY | Supabase匿名密钥 |
SUPABASE_JWT_SECRET | 用于令牌验证的JWT密钥 |
ENABLE_OAUTH | 设置 false 禁用OAuth(默认值: true) |
ROBOTMCP_CLOUD_URL | 云服务URL(默认值: https://app.robotmcp.ai) |
API终点
| 端点 | 描述 |
|---|---|
GET / | 服务器信息 |
POST /mcp | 流式HTTP传输(推荐) |
GET /sse | 传统SSE(向后兼容) |
/.well-known/oauth-authorization-server | OAuth元数据 |
连接MCP客户端
有两个端点可用:
| 端点 | 传输 | 使用情况 |
|---|---|---|
/mcp | 流式HTTP | 先尝试(推荐) |
/sse | 传统SSE | 如果/mcp不起作用,则使用 |
客户端兼容性:
- Claude.ai:与合作
/mcp(推荐) - ChatGPT:与合作
/mcp(推荐) - 传统客户:使用
/sse如果/mcp不起作用
示例URL:
https://{your-name}.robotmcp.ai/mcp看 docs/workflow.md 用于连接流程图。
添加MCP子模块
服务器自动从git子模块中发现并集成MCP工具:
# Add a module using the CLI
robotmcp-server add https://github.com/example/my-mcp-tools.git
# Or add tracking a specific branch
robotmcp-server add -b develop https://github.com/example/my-mcp-tools.git
# List installed modules and their compatibility status
robotmcp-server list
# List all available tools
robotmcp-server list-tools
# Update all modules to latest
robotmcp-server update
# Remove a module
robotmcp-server remove my-mcp-tools您的子模块需要:
- A.
pyproject.toml带有包名 - 一
integration.py带着一个register(mcp, **kwargs)函数
兼容性: 没有集成模块的模块将在中显示为“不兼容” list 和 list-tools 命令。服务器在启动时检查兼容性,并警告不兼容的模块。
# my_mcp_tools/integration.py
from fastmcp import FastMCP
def register(mcp: FastMCP, **kwargs) -> None:
@mcp.tool()
def my_tool(param: str) -> str:
"""Process a parameter."""
return f"Result: {param}"看 docs/子模块集成.md 获取完整指南 包括:
- 满的
integration.py配置示例 - 如何组织工具、资源和提示
- 环境变量配置
- 测试您的子模块
自定义工具(不含子模块)
要直接添加自定义MCP工具,请编辑 tools.py:
from fastmcp import FastMCP
mcp = FastMCP("my-server")
@mcp.tool()
def my_tool(param: str) -> str:
return f"Result: {param}"文档
更新日志
看 更改日志.md 版本历史。
许可证
版权所有(c)2025 Contoro。保留所有权利。
该软件是专有和机密的。未经明确书面许可,严禁未经授权复制、修改、分发或使用本软件。
