AI助手与工具连接服务

一个基于Model Context Protocol (MCP)的AI助手,支持连接外部工具和资源,提供多服务器支持和动态工具发现。

  • by divyam1408
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 divyam1408/mcp_chatbot

使用说明

MCP聊天机器人和研究工具

使用 模型上下文协议(MCP) 它连接到外部工具和资源。该项目演示了一个支持多种传输和动态工具发现的模块化客户端-服务器架构。

🚀 特性

  • 模块化客户端架构:通过以下方式将聊天逻辑与连接管理分离 MCPClientManager.
  • 多服务器支持:同时连接到多个MCP服务器。
  • 扩大运输:支持 stdio (本地), sse (标准托管),以及 http (现代流式HTTP)协议。
  • 动态工具快捷方式:
    • @<tool_name> <args>:自动将位置参数映射到任何工具的架构。
    • @git <command> <args>GitHub操作的自然简写。
  • 双操作模式:
    1. 可选工具模式:LLM智能地决定何时使用工具。
    2. 强制刀具模式:强制执行严格的研究工作流程(搜索→ 提取→ 总结)。
  • 全面的MCP发现:自动列出和管理所有连接服务器上的工具、资源和提示。

🏗️ 建筑

该项目遵循 客户端主机服务器 架构:

  1. 客户端/主机(聊天机器人): mcp_chatbot.py 管理UI和LLM交互。
  2. 经理: mcp_client_manager.py capsules所有会话管理、配置加载和传输处理。
  3. 服务器:独立进程或远程服务(例如。, research_server.pyGitHub MCP、Fetch MCP)。
  4. 沟通:使用JSON-RPC stdio, sse,或 http 如配置中所定义。

📂 项目组成部分

  • mcp_chatbot.py:主界面。
  • mcp_client_manager.py:服务器连接和工具路由的核心逻辑。
  • research_server.py:基于本地stdio的研究服务器。
  • servers.json:所有MCP服务器的中央配置。
  • .github/workflows/lint.yml:用于自动linting和格式化的CI管道。

🛠️ 安装

  1. 先决条件:Python 3.12+和 uv 包管理器。
  2. 安装依赖项:
    uv sync
    
  3. 环境设置: 创建一个 .env 文件:
    HUGGINGFACE_API_KEY=your_key_here
    GITHUB_TOKEN=your_optional_github_token
    

🏃 用法

运行聊天机器人

uv run mcp_chatbot.py

通用命令

  • 工具快捷方式: @fetch https://google.com (地图到 fetch 工具)。
  • Git快捷方式: @git list_commits owner=divyam1408 repo=mcp_chatbot.
  • 资源快捷方式: @folders (阅读 papers://folders).
  • 提示命令: /prompt generate_search_prompt topic=quantum.

🤖 CI/CD

此项目使用 拉夫 对于自动化代码质量:

  • 代码检查: uvx ruff check .
  • 格式化: uvx ruff format .
  • 每次通过GitHub Actions推送时都会自动运行检查。