Back to MCP directory
publicPublicdnsLocal runtime

mcphub-trw

MCPHub是一个可嵌入的模型上下文协议(MCP)解决方案,用于AI服务集成。它提供统一的配置和管理方式,支持多种AI框架(如OpenAI Agents、LangChain、Autogen),简化MCP服务器与AI应用的连接。

article

README

🚀 MCPHub 项目文档

MCPHub 是一款实用工具,旨在简化模型上下文协议(Model Context Protocol, MCP)服务器与人工智能应用的集成过程。它借助四个核心组件,为开发者提供了便捷、高效的集成方案,极大提升了开发效率。

🚀 快速开始

在使用 MCPHub 之前,请确保已安装 Python 3.10 或更高版本以及 poetry。然后运行以下命令进行安装:

poetry install

编辑 .mcphub.json 配置文件,指定要使用的 MCP 服务器和参数。

✨ 主要特性

核心组件

MCPHub 由以下四个核心组件构成: MCPHub架构

  1. Params Hub

    • 负责管理从 .mcphub.json 配置文件读取的配置信息。
    • 明确要使用的 MCP 服务器及其设置方式。
    • 存储服务器相关参数,如命令、参数和环境变量。
  2. MCP 服务器管理器

    • 承担服务器的安装和启动任务。
    • 支持两种类型的服务器:
      • 基于 TypeScript 的服务器(通过 npx 安装)
      • 基于 Python 的服务器(通过 uv 从 GitHub 安装)
    • 管理服务器的生命周期和运行环境。
  3. MCP 客户端

    • 建立与 MCP 服务器的通信连接。
    • 通过标准输入输出(stdio)进行交互。
    • 处理两种主要操作:
      • list_tools:发现可用的服务器工具。
      • call_tool:执行服务器工具。
  4. 框架适配器

    • 将 MCP 工具转换为特定框架的格式。
    • 支持多种人工智能框架,包括 OpenAI 代理、LangChain 和 Autogen。

工作流程

  1. 配置与设置

    • Params Hub 读取配置文件。
    • 服务器管理器启动所需的服务器。
    • 服务器开始运行并可供使用。
  2. 通信

    • MCP 客户端通过 stdio 连接到服务器。
    • 工具被发现并可供使用。
    • 请求和响应在客户端与服务器之间流动。
  3. 集成

    • 框架适配器将 MCP 工具转换为特定框架的格式。
    • 人工智能应用程序通过其首选框架使用这些工具。
    • 工具通过已建立的通信通道执行。

这种架构提供了一种无缝的方式,将 MCP 功能集成到任何人工智能应用中,同时保持了干净的关注点分离和框架灵活性。

💻 使用示例

基础用法

从 MCP 服务器获取工具列表并执行工具:

from mcphub import MCPHub

async def basic_usage():
    hub = MCPHub()
    
    # 获取所有服务器
    servers = hub.list_servers()
    
    # 获取特定 MCP 服务器的工具
    tools = await hub.list_tools(mcp_name="sequential-thinking-mcp")
    
    # 打印工具信息
    for tool in tools:
        print(f"工具名称: {tool.name}")
        print(f"描述: {tool.description}")
        print(f"参数: {tool.parameters}")
        print("---")
    
    # 工具可以:
    # - 使用 cache_tools_list=True 进行缓存以提高性能
    # - 自动转换为特定框架的格式
    # - 通过适配器直接与 AI 框架一起使用

asyncio.run(basic_usage())

高级用法

将 MCP 工具集成到 OpenAI、LangChain 和 Autogen 等流行框架中:

from mcphub import MCPHub, get_openai_proxy, get_langchain_proxy, get_autogen_proxy

async def advanced_usage():
    hub = MCPHub()
    
    # 获取 OpenAI 代理
    openai_proxy = await get_openai_proxy(hub)
    
    # 获取 LangChain 代理
    langchain_proxy = await get_langchain_proxy(hub)
    
    # 获取 Autogen 代理
    autogen_proxy = await get_autogen_proxy(hub)

asyncio.run(advanced_usage())

📚 详细文档

贡献指南

如何贡献代码

  1. Fork 此仓库。
  2. 在您的本地副本中创建一个新的功能分支:git checkout -b feature/your-feature
  3. 提交您的更改:git commit -m "添加新功能"
  4. 推送到远程仓库:git push origin feature/your-feature
  5. 创建 Pull Request。

如何报告问题

Issues 页面创建一个新的问题,并描述您遇到的问题和复现步骤。

开发环境设置

安装依赖

使用 poetry 管理依赖:

poetry install

运行测试

运行单元测试:

poetry run pytest tests/

执行格式检查

运行代码格式检查(假设您已安装 blackflake8):

poetry run black .
poetry run flake8 .

📄 许可证

MCPHub 项目在 MIT License 下开源。

注意:以上内容为示例,实际项目请根据需求进行调整。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client