返回市场
麦佩兹

麦佩兹

作者:Veallym0n5 星标更新:2025-04-16

项目介绍

技术文档摘要

MCPez - 微服务命令代理管理平台

License: MIT

MCPez 是一个基于 Web 的管理平台,旨在简化后端服务(如 AI 模型、本地脚本或远程 API)的定义、配置、管理和监控。它通过标准化的代理接口(SSE 或 STDIO)公开这些服务,使其易于被其他应用程序集成和使用,特别是需要调用工具的 AI 代理。

项目意义

当前的微服务命令代理(MCP)生态系统和 AI 代理应用开发面临许多挑战:

  • 孤立的 MCP 价值有限:单个 MCP 服务通常只有一个功能,并且很难独立生成显著的价值。用户需要组合多个 MCP 来构建有意义的应用程序,但这通常需要复杂的编排和集成工作。

  • 代理到代理(A2A)交互复杂:现有的 A2A 通信方案往往过于复杂且缺乏统一标准,使得构建能够协作工作的多代理系统变得困难。

  • 封闭的生态系统:许多平台将用户锁定在特定的、封闭的 MCP 组合中,限制了灵活性和可扩展性。此外,MCP 自身的许多特性无法修改,依赖开源实际上会降低用户体验。

  • MCP 质量参差不齐:现有的 MCP 平台充斥着大量低质量的服务,其中许多是未经测试的代码。据观察,大约 80% 的服务是重复的,15% 存在功能性问题或不可用,剩下的 5% 经常缺乏实际应用价值。这大大增加了开发者筛选和整合可靠工具的难度。

  • 客户端集成和管理难题:开发者需要为不同的服务编写不同的客户端适配代码,并分别管理它们的配置、部署和运行状态,这既耗时又费力。显然,在使用 LLM 工具时,像 Lang* 和过时的 RAG 承载者正在进一步增加令牌消耗。Autogen 和 MCP 协议处于低效的竞争状态,Google 也在改变概念来处理这些问题。Pydantic 正努力将其“格式验证”应用于标准化的概念。乍一看,这个战场看起来非常混乱,甚至 Zelensky 都感到尴尬,所以不要期望短期内实现统一。

因此,MCPez 旨在通过以下方法克服这些挑战,提供一个更开放、可靠且易于管理的解决方案:

  • 统一管理和标准化接口:将不同的后端服务(无论是本地脚本、远程 API 还是其他 MCP)封装成标准的 SSE 或 STDIO 接口。提供一个集中的 Web UI 来创建、配置、监控和管理,减少管理复杂度。

  • 解决客户端问题:应用程序(如 AI 代理)只需通过 MCPez 提供的稳定代理地址与后端服务进行交互,无需关心底层服务的具体实现和部署细节,简化客户端集成。

  • 打破 MCP 岛屿:通过提供一个易于使用的平台来组合和管理多个服务,原本单一且价值有限的 MCP 可以更容易地集成到更复杂的应用流程中,从而产生更大的价值。

  • Docker 部署:提供 Dockerfile 来打包整个管理平台及其依赖项(如 Nginx 和 Python 环境),实现一键部署。这不仅简化了环境配置,还确保了服务运行环境的一致性,方便用户快速设置并运行他们的 MCP 服务集合,无论是在本地还是服务器上。

  • 提高服务质量与可用性:虽然 MCPez 不直接编写 MCP 服务,但它提供了一个框架,鼓励用户整合其经过验证的高质量服务,并通过模板共享等功能促进高质量服务的复用,逐步提升生态质量。

通过 MCPez,开发者可以更加专注于构建核心业务逻辑和代理能力,而不是陷入繁琐的服务集成和管理细节。

主要功能

  • Web 用户界面:直观的界面用于管理和服务应用程序。
  • 应用程序/服务定义:支持创建和配置“应用程序”,每个应用程序可以包含多个后端服务配置。
  • 多种服务类型
    • SSE:代理远程 HTTP SSE 服务,支持配置基础 URL 和头部信息。
    • STDIO:代理本地命令行进程,支持配置命令执行、参数和环境变量。
  • 配置管理
    • 支持将应用程序配置导出为 JSON 文件。
    • 支持从 JSON 文件导入应用程序配置。
    • 支持保存常用的服务配置为“工具模板”,便于复用。
  • 服务状态管理
    • 在首页列出所有已定义的“应用程序”。
    • 启动/停止基于 STDIO 的服务。
    • 查看正在运行的服务的状态详情(ID、地址、状态、详细日志/信息)。
  • AI 实验室:(位于)chat.html:提供一个聊天界面,可以配置 AI 模型(如 OpenAI、Gemini 等),并将 MCPez 中定义的服务作为工具/函数调用的后端,便于测试和调试 AI 与工具之间的交互。
  • Docker 支持:提供 Dockerfile 以便于容器化部署。

未来方向

  • AI 驱动的工具描述和功能理解:计划引入一个大型语言模型(LLM),根据服务配置和上下文自动生成或优化 MCP 服务及其内部功能(如果适用)的描述信息。这将极大地增强 AI 代理对工具功能的理解深度和准确性,有效解决当前 AI 代理在选择和调用 MCP 函数时命中率低的问题。
  • 可分享的工具集:用户可以导出精心配置和验证的应用程序(包括一组相关的 MCP 服务)作为配置包。这些配置包可以在社区或团队内共享,其他用户可以轻松导入和复用这些工具集,加速开发过程。
  • 本地优先和安全性:工具集的共享机制将保持本地部署的核心优势。用户导入配置后,服务仍然在本地运行,避免了将敏感信息(如 API 密钥)上传到第三方共享平台可能带来的安全风险。这确保了数据和凭证的安全性,同时促进了可信工具的流通。

吐槽间接帮你减税 104%

快速开始

先决条件

使用 Docker 运行

  1. 构建 Docker 镜像

    docker build -t MCPez .
    
  2. 运行 Docker 容器

    docker run -d -p 8088:80 --name MCPez-instance -v MCPez_data:/data MCPez
    
    • -d:后台运行。
    • -p 8088:80:将主机的 8088 端口映射到容器的 80 端口(Nginx 默认端口)。可以根据需要更改主机端口 8088
    • --name MCPez-instance:命名容器。
    • -v MCPez_data:/data:创建 Docker 卷 MCPez_data,持久存储 SQLite 数据库和服务配置数据。

访问 Web UI

在浏览器中打开 http://localhost:8088(或您指定的主机端口)。

alt text

alt text

alt text

alt text

alt text

使用说明

  1. 服务管理(index.html

    • 主界面显示所有已创建应用程序及其状态的列表。
    • 您可以搜索应用程序。
    • 对于 STDIO 类型的服务,您可以点击“启动”或“停止”按钮。
    • 点击“编辑服务”跳转至编辑页面。
    • 点击“查看服务状态”查看正在运行的服务的详细信息。
    • 点击“新建服务”跳转至应用程序编辑页面。
  2. 应用程序编辑(edit.html

    • 创建新应用程序:直接访问 edit.html
    • 编辑现有应用程序:从首页点击“编辑服务”或通过 edit.html?id=<app_id> 访问。
    • 应用程序信息:设置应用程序的名称和描述。
    • 配置管理
      • 导入:使用 JSON 文件导入或导出整个应用程序配置(包括名称、描述和所有服务器配置)。
      • 使用模板:从预存的工具模板库中选择并添加服务配置。
    • 服务器配置
      • 点击“MCP”按钮添加新的服务器配置(SSE 或 STDIO)。
      • 填写服务器名称、类型(SSE/STDIO)、描述及相应的配置(URL/头部或命令/参数/环境变量)。
      • 编辑或删除现有的服务器配置。
      • 您可以将配置好的服务器保存为“工具模板”以备将来使用。
    • JSON 预览:实时显示当前应用程序的完整 JSON 配置。
    • 保存配置:点击右上角的“保存配置”按钮保存更改。
  3. AI 实验室(chat.html

    • 点击右上角的齿轮图标配置 AI 模型提供商的 API 密钥、基础 URL、模型名称等。
    • 配置 MCP 服务器地址(通常是 http://localhost:8088/mcp/<app_id>/sse,其中 <app_id> 是您在 edit.html 中配置的应用程序的 ID/名称)。
    • 配置完成后,您可以在聊天界面上与 AI 进行对话。如果 AI 模型支持工具/函数调用并且您配置的 MCP 应用中有相应的服务,AI 将能够调用这些服务。

许可证

该项目采用 MIT 许可证

MIT 许可证

版权所有 (c) [年份] [版权所有者]

在此授权任何人免费获得此软件及其相关文档文件(以下简称“软件”)的副本,
在软件中不受限制地操作,包括但不限于以下权利:
使用、复制、修改、合并、发布、分发、再许可和/或销售
软件的副本,并允许向其提供软件的人这样做,但须遵守以下条件:

上述版权声明和本许可通知必须包含在软件的所有副本或实质部分中。

软件按“原样”提供,不附带任何明示或暗示的担保,包括但不限于适销性、
特定用途适用性和非侵权性的担保。在任何情况下,作者或版权所有者均不对因
软件或软件的使用或其他交易而引起的任何索赔、损害或其他责任负责,无论是
合同行为、侵权行为或其他行为。