项目简介
MCP Composer 是一个多租户的 Model Context Protocol (MCP) 服务器,它作为一个中心化的代理,允许不同用户通过单一入口点配置和访问他们各自的MCP服务器。每个用户通过 Google OAuth 进行身份验证,并且只能看到和访问他们自己配置的工具和资源,确保了多租户环境下的安全隔离。
主要功能点
- 多租户架构: 每个用户拥有独立的MCP服务器配置,彼此隔离。
- Google OAuth 身份验证: 集成 OAuth 2.1 流程,支持与 Claude.AI 等LLM应用的安全连接。
- 灵活的服务器支持: 兼容基于 HTTP 和 Stdio 的MCP服务器,可代理不同类型的后端。
- MongoDB 集成: 用户配置和 OAuth 令牌安全存储在 MongoDB 数据库中。
- MCP 隔离: 安全中间件确保用户只能访问其自身的MCP服务,提供数据安全保障。
安装步骤
-
环境准备:
- 确保已安装 Python 3.11+。
- 准备一个运行中的 MongoDB 实例。
- 在 Google Cloud Console 设置 Google OAuth 凭据('client_id' 和 'client_secret')。
-
克隆仓库:
git clone [email protected]:michaelfmnk/mcp-composer.git cd mcp-composer -
创建配置文件: 在项目根目录创建 '.env' 文件,并根据您的环境配置以下变量:
GOOGLE_CLIENT_ID=您的Google客户端ID GOOGLE_CLIENT_SECRET=您的Google客户端密钥 BASE_URL=http://localhost:8000 # MCP Composer的基准URL MONGODB_URI=mongodb://localhost:27017 # MongoDB连接字符串 MCP_HOST=0.0.0.0 MCP_PORT=8000 MCP_TRANSPORT=http # 可以是 http, stdio, sse, streamable-http -
安装依赖并运行:
uv sync # 安装项目依赖 uv run mcp-composer # 启动MCP Composer服务器服务器将在 'http://localhost:8000' 启动。
服务器配置 (面向MCP客户端)
MCP Composer 本身是一个MCP服务器,MCP客户端需要配置连接信息才能与它通信。根据您的MCP Composer运行方式,配置会有所不同:
-
通过HTTP协议连接(默认推荐) 这是MCP Composer的默认启动方式,MCP客户端通过HTTP URL连接。MCP客户端的配置项通常包括:
- 'name': 为此MCP服务器连接起一个易于识别的名称,例如 "MyMCPComposerHttp"
- 'url': MCP Composer服务器的HTTP地址,例如 'http://localhost:8000'
-
通过Stdio协议连接(需要将MCP Composer配置为Stdio传输模式) 如果您将MCP Composer的环境变量 'MCP_TRANSPORT' 设置为 'stdio',则MCP客户端可以通过Stdio协议连接。MCP客户端的配置项通常包括:
- 'name': 为此MCP服务器连接起一个易于识别的名称,例如 "MyMCPComposerStdio"
- 'command': 启动MCP Composer服务器进程的命令,例如 'python'
- 'args': 命令的参数列表,例如 '["-m", "mcp_composer.main"]'
- 'env': (可选)运行MCP Composer进程所需的环境变量,例如 '{"MCP_TRANSPORT": "stdio", "GOOGLE_CLIENT_ID": "...", ...}'
基本使用方法
- 启动 MCP Composer 服务器: 按照上述“安装步骤”启动 'mcp-composer' 服务。
- 配置用户MCP服务: 在 MongoDB 中为您的用户(通过电子邮件识别)添加MCP服务器配置。例如,为 '[email protected]' 配置一个远程HTTP MCP或一个本地Stdio MCP服务:
这里的 'mcpServers' 下定义的才是 'mcp-composer' 所代理的实际MCP服务。// 假设您使用MongoDB客户端工具插入此文档 { "_id": "[email protected]", "mcpServers": { "my-remote-server": { "url": "https://your-remote-mcp-server.com/mcp" }, "my-local-tool-server": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem"], "env": { "ALLOWED_PATHS": "/home/user/documents" } } } } - 连接到 Claude.AI 或其他 LLM 客户端:
- 将 'mcp-composer' 服务器的端点(例如 'http://localhost:8000')提供给您的LLM客户端。
- 客户端会引导您进行 Google OAuth 认证。认证后,您的账户将与 'mcp-composer' 关联。
- 一旦认证成功,LLM 客户端即可通过 'mcp-composer' 访问您在MongoDB中为该账户配置的MCP工具和资源。
信息
分类
AI与计算