模型上下文协议客户端

一个基于Gradio的MCP客户端概念验证,用于通过STDIO和SSE通信方法与MCP服务器交互,实现语言模型与工具的标准集成。

  • by justjoehere
  • Python
  • 本地部署
  • 67 星标
  • 更新于
在 GitHub 查看 justjoehere/mcp_gradio_client

使用说明

MCP Gradio客户端概念验证

此存储库是一个概念验证,用于使用以下方式实现模型上下文协议(MCP)客户端 格拉迪奥它演示了如何在Gradio接口中使用STDIO和SSE通信方法与MCP服务器进行交互。

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

目录

引言

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

关键要素 模型上下文协议:

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

特性

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

安装

先决条件

  • Python 3.12或更高版本
  • Node.js
  • 优维康 (适用于STDIO服务器的UVX)
  • NPX (适用于STDIO服务器的NPX)
  • python (适用于Python模块STDIO服务器)
  • 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  # On Windows use `venv\Scripts\activate`
    

    窗户:

     python -m venv .venv
     .venv\Scripts\activate
    
  3. 再进行

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

    创建一个 .env 根目录中的文件使用 .env.example 作为参考,并添加您的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 使用,它并不完全相同。 有几个重要的区别(都在其他自述文件中注释)

  • "type": "stdio"|"sse" 需要指定您使用的服务器类型
  • "command": "uvx"|"npx"|"python" 可能需要为windows用户进行调整。例子, npx 将需要 npx.cmd 对于Windows

STDIO服务器定义

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

备注:STDIO服务器由Gradio实例化,不需要手动启动。它们通常通过以下方式启动 npx, uvicorn/uvx,或 python -m 命令参数。如果无法识别包,则必须先下载并安装一些Python STDIO服务器。

SSE服务器定义

  • 类型:应设置为 "sse".
  • 统一资源定位符:运行SSE服务器的端点。
  • 标头:(可选)连接所需的任何标头。

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

用法

  1. 启动SSE服务器(如果有) 确保您的系统中定义了任何SSE服务器 config.json 正在奔跑。

  2. 运行Gradio应用程序

    python gradio_ui.py
    
  3. 与界面交互 在web浏览器中打开提供的URL(通常 http://127.0.0.1:7860)访问Gradio界面。

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

备注

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

许可证

该项目根据MIT许可证获得许可。请参阅 许可证 文件以获取详细信息。


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

贡献

Open Developer Guide

先决条件

Gradio需要Python 3.12+

安装

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

git clone xxxxx
cd xxx

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

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

视窗

venv
.venv/bin/activate

测试

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

从根目录运行测试:

pytest -v

格式化

此POC强制执行各种所需的格式,您可以通过预提交自动执行这些格式。

安装预提交挂钩:

pre-commit install

钩子现在将在每个提交(以及每个PR)上运行。要手动运行它们,请执行以下操作:

pre-commit run --all-files

打开拉取请求

分叉存储库并创建一个新分支:

git checkout -b my-branch

进行更改并提交:

git add . && git commit -m "My changes"

将您的更改推到叉子上:

git push origin my-branch

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