项目简介

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服务,提供数据安全保障。

安装步骤

  1. 环境准备:

    • 确保已安装 Python 3.11+。
    • 准备一个运行中的 MongoDB 实例。
    • 在 Google Cloud Console 设置 Google OAuth 凭据('client_id' 和 'client_secret')。
  2. 克隆仓库:

    git clone [email protected]:michaelfmnk/mcp-composer.git
    cd mcp-composer
  3. 创建配置文件: 在项目根目录创建 '.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
  4. 安装依赖并运行:

    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": "...", ...}'

基本使用方法

  1. 启动 MCP Composer 服务器: 按照上述“安装步骤”启动 'mcp-composer' 服务。
  2. 配置用户MCP服务: 在 MongoDB 中为您的用户(通过电子邮件识别)添加MCP服务器配置。例如,为 '[email protected]' 配置一个远程HTTP MCP或一个本地Stdio 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"
          }
        }
      }
    }
    这里的 'mcpServers' 下定义的才是 'mcp-composer' 所代理的实际MCP服务。
  3. 连接到 Claude.AI 或其他 LLM 客户端:
    • 将 'mcp-composer' 服务器的端点(例如 'http://localhost:8000')提供给您的LLM客户端。
    • 客户端会引导您进行 Google OAuth 认证。认证后,您的账户将与 'mcp-composer' 关联。
    • 一旦认证成功,LLM 客户端即可通过 'mcp-composer' 访问您在MongoDB中为该账户配置的MCP工具和资源。

信息

分类

AI与计算