大语言模型工具集成客户端

基于Model Context Protocol (MCP)的多服务器客户端,支持大语言模型发现、理解和调用外部工具,实现多轮对话和复杂任务编排。

  • by Abdulabin
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 abdulabin/model-context-protocol

使用说明

模型上下文协议(MCP)客户端

通过将大型语言模型(LLM)连接到一系列外部工具,释放其全部潜力!该项目提供了一个基于 模型上下文协议(MCP),使您的LLM能够发现、理解和调用自定义功能。通过STDIO或SSE无缝集成工具,利用谷歌强大的Gemini模型编排复杂任务,并跨平台聊天 多回合对话.


🚀 核心概念

现代法学硕士非常强大,但往往仅限于他们接受培训的信息 模型上下文协议(MCP) 是一种规范,允许LLM安全有效地发现和调用外部工具。

该项目实现了一个充当智能编排器的MCP客户端。它接受用户的查询,咨询LLM(如Gemini)以制定计划,然后调用托管在各种MCP服务器上的必要工具来收集信息并执行任务,同时支持 上下文感知的多回合交互.


🏛️ 建筑

该架构旨在实现可扩展性和灵活性,允许您在不修改核心客户端逻辑的情况下添加新的工具和服务器。


✨ 特性

  • ✅ 多回合对话支持:在聊天回合中保持记忆,以实现更智能、上下文感知的交互。
  • 🌐 多服务器连接:同时连接到多个MCP服务器。
  • 🔌 灵活运输:支持两者 stdio 用于基于本地流程的服务器和 sse (服务器发送事件)用于远程基于HTTP的服务器。
  • 🧠 LLM驱动的编排:使用Gemini解释复杂的请求,计划工具使用,并提供智能响应。
  • 🖥️ 可选Web UI(FastAPI):带有Swagger/ReDoc文档的RESTful API,用于直观浏览和使用。
  • 🔍 工具发现:从所有连接的服务器动态检测和加载可用工具。
  • ⚙️ 基于UI的配置和日志:从web界面配置API密钥、工具和服务器。轻松查看日志和调试会话。
  • ⚡ 异步架构:基于 asyncio 以获得无阻塞性能。
  • 🧾 可读配置:基于JSON的服务器配置和 .env 用于安全的凭证管理。
  • 🛠 开发人员友好日志:检查代理推理和工具调用是否完全透明。

🏁 入门指南

1.先决条件

  • Python 3.10+
  • Google AI Studio API密钥

2.安装

git clone https://github.com/Abdulabin/Model-Context-Protocol.git
cd Model-Context-Protocol
pip install -r requirements.txt

3.配置

.env文件(API密钥):

GEMINI_API_KEY="YOUR_API_KEY_HERE"

工具服务器配置(mcp-servers-configs.json):

{
  "mcpServers": {
    "arxiv_server": {
      "disabled": false,
      "transport_type": "stdio",
      "command": "python",
      "args": ["mcp_servers/arxiv_server.py"]
    },
    "remote_tool_server": {
      "disabled": true,
      "transport_type": "sse",
      "url": "http://localhost:8001/mcp"
    }
  }
}

🚀 用法

CLI使用情况💻

python mcp_client.py

然后问以下问题:

查找最近3篇关于“大型语言模型”的论文,并对第一篇进行总结。

客户端理解多步骤过程,将任务委托给适当的工具,并返回一个答案——所有这些都有交互的内存。


web界面🌐

使用以下命令启动UI:

uvicorn app:app

在浏览器中打开:

Web UI功能:

  • 🧠 带记忆聊天(多回合对话)
  • 🛠 添加/编辑工具服务器
  • 🔐 设置API键和模型配置
  • 📜 查看详细的交互日志

🧾 工具配置JSON模式(UI兼容)

支持两者 stdio 和 sse示例UI可加载配置:

[
  {
    "mcpServers": {
      "LocalScript": {
        "disabled": false,
        "command": "python3",
        "args": ["script.py"],
        "transport_type": "stdio"
      },
      "WeatherAPI": {
        "disabled": true,
        "transport_type": "sse",
        "url": "http://api.weather.com/sse",
        "timeout": 30
      }
    }
  }
]

🧭 Web应用程序中的页面

第页 目的
🏠 主页 简介和概述
⚙️ 设置 添加API密钥、选择模型、管理工具
💬 聊天 使用LLM+工具聊天(多回合)
📜 日志 调试和监控工具调用和计划

🎯 理想用例

  • 🤖 配备实时工具的AI助手
  • 📚 使用API的学术研究机器人
  • 🧪 AI开发环境
  • 🎓 结合LLMs和工具的教育演示

✅ 总结

MCP客户端 通过无缝配置、可扩展架构和对智能、, 多回合对话无论你是在构建智能代理、研究助理还是开发工具,它都是你通往下一级人工智能集成的门户。

连接您的工具。配置您的模型。开始聊天。 🚀