MCP Composer

MCP Composer

通过单一的 SSE 接口连接并动态管理多个 MCP 服务器/工具,从而使您的 AI 代理或 AI 应用能够更灵活地控制 MCP 服务器。

htkuan

开发者工具
访问服务器

README

MCP Composer

UI Demo

MCP Composer 是一个网关服务,用于集中管理你所有的 MCP 服务器。你可以使用它来整合你需要的全部 MCP 服务器,并为每个需要访问 MCP 服务器的服务(如 AI 代理或工具)开放独立的端口,这些端口可以配置不同的服务器和工具组合。

主要特性

  • 动态 MCP 服务器管理: 动态管理与多个 MCP 服务器及其工具的连接,支持服务的即时激活或停用。
  • 统一 SSE 接口: 暴露一个单一的 Server-Sent Events (SSE) 接口,提供对所有受管理 MCP 服务器功能的访问。
  • 多个动态端点: 支持动态创建和移除多个 SSE 端点,以适应不同的 AI 代理或 AI 工具。
  • 独立接口配置: 每个 SSE 接口独立管理其自身的 MCP 服务器和工具组合,从而实现定制化的服务提供。

系统架构

MCP Composer Architecture Diagram

关键术语

  • MCP 客户端: 外部工具或 AI 代理和 AI 工作流,例如 Cursor, n8n 等。
  • 网关[A/B]: 绑定到 ServerKit 并由 Composer 管理的 MCP 服务器实现,用于处理 MCP 客户端连接。
  • Server Kit: 管理和控制关于下游 MCP 服务器的信息,以及服务器中应启用哪些工具。
  • 下游控制器: 负责控制和管理与下游 MCP 服务器的连接。
  • 下游 MCP 服务器: 连接到下游 MCP 服务器的内部对象,实现为连接到下游 MCP 服务器的内部 MCP 客户端。
  • MCP 服务器: 外部 MCP 服务器服务,例如:https://github.com/modelcontextprotocol/servers 等。
  • Composer: 提供 API 来控制和编排网关、Server Kit 和下游控制器。

要求

  • Python >= 3.12
  • uv: 一个快速的 Python 包安装器和管理器。

安装

  1. 克隆仓库:

    git clone https://github.com/htkuan/mcp-composer
    cd mcp-composer
    
  2. 安装依赖: 使用 uv 来同步项目依赖。

    make install
    # 或者直接使用 uv
    # uv sync
    

配置

在运行应用程序之前,你需要配置目标 MCP 服务器。

  1. 复制示例配置文件:

    cp mcp_servers.example.json mcp_servers.json
    
  2. 编辑 mcp_servers.json 并输入你要连接的 MCP 服务器的详细信息。

  3. 设置环境变量:

    cp .env.example .env
    
  4. 编辑 .env 文件来配置以下设置:

    • HOST: 服务器主机地址 (默认: 0.0.0.0)
    • PORT: 服务器端口 (默认: 8000)
    • MCP_COMPOSER_PROXY_URL: MCP Composer 代理 URL (默认: http://localhost:8000)
    • MCP_SERVERS_CONFIG_PATH: MCP 服务器配置文件的路径 (默认: ./mcp_servers.json)

运行

使用 uv 运行 FastAPI 应用程序:

make run
# 或者直接使用 uv
# uv run src/main.py

服务启动后,你可以通过浏览器中的 API 文档与 API 进行交互 (通常在 http://127.0.0.1:8000/docs)。

开发

该项目包含一个 Makefile 来简化常见的开发任务:

  • 安装依赖: make install
  • 格式化和检查代码: make format (使用 Ruff)
  • 运行应用程序: make run

贡献

欢迎对本项目做出贡献! 请遵循标准的 GitHub Fork & Pull Request 工作流程。 建议在提交 Pull Request 之前创建一个 Issue 进行讨论。

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
MCP Package Docs Server

MCP Package Docs Server

促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。

精选
本地
TypeScript
Claude Code MCP

Claude Code MCP

一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。

精选
本地
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。

精选
本地
JavaScript
mermaid-mcp-server

mermaid-mcp-server

一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。

精选
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

精选
TypeScript
Linear MCP Server

Linear MCP Server

一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

精选
JavaScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Curri MCP Server

Curri MCP Server

通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。

官方
本地
JavaScript