返回市场
麦普格拉迪奥客户端

麦普格拉迪奥客户端

作者:justjoehere66 星标更新:2024-12-06

项目介绍

MCP Gradio 客户端概念验证

此仓库是一个使用Gradio实现模型上下文协议(MCP)客户端的概念验证。它展示了如何在Gradio界面中通过STDIO和SSE通信方法与MCP服务器进行交互。

模型上下文协议(MCP)旨在标准化语言模型与工具之间的交互,提供统一的通信接口。这个概念验证展示了MCP在构建具有工具集成的人工智能助手中的实际应用。

目录

介绍

该项目在一个Gradio应用程序中实现了MCP客户端,允许用户与通过MCP暴露的工具进行交互。通过利用MCP的标准通信协议,客户端可以无缝地集成各种工具,增强语言模型的能力。

来自模型上下文协议的关键元素:

  • 标准化:MCP提供了一种标准化的方式,使语言模型能够与工具进行交互,促进互操作性。
  • 通信方法:支持多种通信方法,包括STDIO和SSE,以提高工具集成的灵活性。
  • 工具集成:使语言模型能够使用外部工具,增强其功能性和适用性。

特性

  • Gradio界面:用户友好的界面,用于与MCP客户端和工具进行交互。
  • STDIO和SSE支持:演示了如何使用STDIO和SSE两种方法连接到MCP服务器。
  • 动态工具加载:自动发现并集成由MCP服务器暴露的工具。
  • 调试支持:可选的调试模式,有助于开发和故障排除。

安装

先决条件

  • Python 3.12或更高版本
  • Node.js
  • uvicorn(用于STDIO服务器的UVX)
  • NPX(用于STDIO服务器的NPX)
  • Python(用于STDIO服务器的Python模块)
  • OpenAI API密钥(用于语言模型交互)

步骤

  1. 克隆仓库

    git clone https://github.com/yourusername/mcp-gradio-client.git
    cd mcp-gradio-client
    
  2. 创建虚拟环境 Unix/macOS:

    python -m venv venv
    source venv/bin/activate  # 在Windows上使用 `venv\Scripts\activate`
    

    Windows:

     python -m venv .venv
     .venv\Scripts\activate
    
  3. 安装依赖项

    pip install -r requirements.txt
    
  4. 设置环境变量

    使用.env.example作为参考,在根目录下创建一个.env文件,并添加您的OpenAI API密钥:

    OPENAI_API_KEY=your_openai_api_key
    
  5. 运行应用

    启动Gradio应用程序:

    python gradio_ui.py
    

理解MCP STDIO与SSE服务器

详情参见stdio_versus_sse_mcp_servers.md,了解这两种服务器类型的差异。

配置

应用程序需要一个config.json文件来定义MCP服务器。此文件应放置在根目录下。 config.json应具有以下格式:

{
  "mcpServers": {
    "stdio_server_name": {
      "type": "stdio",
      "command": "uvx",
      "args": [], 
      "env": {}
    },
    "sse_server_name": {
      "type": "sse",
      "url": "http://127.0.0.1:3001/sse",
      "headers": {}
    }
  }
}

详情参见信息 - 如何配置config.json文件。请注意,虽然文件结构与Claude Desktop使用的非常相似,但并不完全相同。 存在几个重要差异(所有注释都在其他readme中)

  • "type": "stdio"|"sse"是必需的,用于指定您正在使用的服务器类型
  • "command": "uvx"|"npx"|"python"可能需要根据Windows用户进行调整。例如,npx在Windows上需要改为npx.cmd

STDIO服务器定义

  • 类型:应设置为"stdio"
  • 命令:启动STDIO服务器的命令(例如,"python""uv""uvx""npx")。
  • 参数:命令的参数(例如,["weather_server.py"])。
  • 环境变量:服务器所需的环境变量。

注意:STDIO服务器由Gradio自动实例化,无需手动启动。它们通常通过npxuvicorn/uvxpython -m命令参数启动。某些Python STDIO服务器必须首先下载并安装,如果它们不是已知的包。

SSE服务器定义

  • 类型:应设置为"sse"
  • URL:SSE服务器运行的端点。
  • :(可选)连接所需的任何头。

注意:SSE服务器必须手动启动,以便Gradio客户端能够连接。确保在运行Gradio应用程序之前启动SSE服务器。

使用

  1. 启动SSE服务器(如果有) 确保在config.json中定义的任何SSE服务器都在运行。

  2. 运行Gradio应用程序

    python gradio_ui.py
    
  3. 与界面交互 在您的网络浏览器中打开提供的URL(通常是http://127..0.1:7860),以访问Gradio界面。

  4. 提问 使用聊天界面与语言模型以及MCP服务器提供的工具进行交互。

注意事项

  • STDIO服务器:Gradio会根据您的配置自动实例化STDIO服务器。
  • SSE服务器:必须在运行Gradio客户端之前手动启动。
  • 调试模式:使用界面上的复选框启用或禁用调试模式,以查看详细日志。
  • 工具安装:某些工具可能需要额外的安装步骤,如果它们不是标准包。确保所有必要的工具都已安装并可访问。

许可证

本项目采用MIT许可证。详情请参阅LICENSE文件。


有关模型上下文协议及其功能的更多信息,请访问官方MCP文档

贡献

<details> <summary><h3>打开开发者指南</h3></summary>

先决条件

Gradio需要Python 3.12+

安装

创建此仓库的分支,然后克隆它:

git clone xxxxx
cd xxx

接下来,创建一个虚拟环境并安装FastMCP: Unix/macOS:

uv venv
source .venv/bin/activate
uv sync --frozen --all-extras --dev

Windows

venv
.venv/bin/activate

测试

请确保测试任何新功能。您的测试应该简单且原子化,并预期变化而不是固化复杂模式。

从根目录运行测试:

pytest -v

格式化

此POC强制执行一系列所需格式,您可以使用pre-commit自动执行这些格式。

安装pre-commit钩子:

pre-commit install

现在,这些钩子将在每次提交时运行(以及在每个PR上)。要手动运行它们:

pre-commit run --all-files

打开拉取请求

分叉仓库并创建一个新分支:

git checkout -b my-branch

进行更改并提交:

git add . && git commit -m "我的更改"

将更改推送到您的分叉:

git push origin my-branch

如果您有任何问题,请随时在GitHub问题或讨论中联系我们!

</details>