← 返回公开榜单
mc

3choff/mcp-chatbot

A simple CLI chatbot that demonstrates the integration of the Model Context Protocol (MCP).

本周新增
1 星
近 3 周倍数
—
距上次推送
702 天
距上次发布
—
许可证
MIT

星标增长

每根柱子是这个周期记录下来的 star 增长:优先取逐个 stargazer 到达时间分桶的到达数,还没被 stargazer 扫描覆盖的仓库改用该周期的 star 净增;两个写者都没记录的周期画成虚线空档,而不是当成 0。柱高按各自窗口的峰值归一,两张图不共用坐标轴。指向任意一根柱子, tooltip 里是该周期的九项指标:当前值与周期内的净增。

指向或点击一根柱子,看当天的九项指标。

12/1712/301/111/242/62/193/33/16

2025 年 12 月 17 日 新增 0 个星标; 2025 年 12 月 18 日 新增 0 个星标; 2025 年 12 月 19 日 新增 0 个星标; 2025 年 12 月 21 日 新增 1 个星标; 2025 年 12 月 22 日 新增 0 个星标; 2025 年 12 月 23 日 新增 0 个星标; 2025 年 12 月 24 日 新增 0 个星标; 2025 年 12 月 25 日 新增 0 个星标; 2025 年 12 月 26 日 新增 0 个星标; 2025 年 12 月 27 日 新增 0 个星标; 2026 年 1 月 2 日 新增 0 个星标; 2026 年 1 月 3 日 新增 0 个星标; 2026 年 1 月 4 日 新增 0 个星标; 2026 年 1 月 5 日 新增 0 个星标; 2026 年 1 月 6 日 新增 0 个星标; 2026 年 1 月 8 日 新增 0 个星标; 2026 年 1 月 9 日 新增 0 个星标; 2026 年 1 月 10 日 新增 1 个星标; 2026 年 1 月 11 日 新增 0 个星标; 2026 年 1 月 12 日 新增 0 个星标; 2026 年 1 月 13 日 新增 0 个星标; 2026 年 1 月 14 日 新增 0 个星标; 2026 年 1 月 15 日 新增 0 个星标; 2026 年 1 月 16 日 新增 0 个星标; 2026 年 1 月 18 日 新增 0 个星标; 2026 年 1 月 21 日 新增 0 个星标; 2026 年 1 月 23 日 新增 0 个星标; 2026 年 1 月 25 日 新增 0 个星标; 2026 年 1 月 26 日 新增 0 个星标; 2026 年 1 月 27 日 新增 0 个星标; 2026 年 1 月 28 日 新增 0 个星标; 2026 年 1 月 29 日 新增 0 个星标; 2026 年 2 月 1 日 新增 1 个星标; 2026 年 2 月 2 日 新增 0 个星标; 2026 年 2 月 8 日 新增 0 个星标; 2026 年 2 月 9 日 新增 0 个星标; 2026 年 2 月 10 日 新增 0 个星标; 2026 年 2 月 11 日 新增 0 个星标; 2026 年 2 月 13 日 新增 0 个星标; 2026 年 2 月 14 日 新增 0 个星标; 2026 年 2 月 16 日 新增 1 个星标; 2026 年 2 月 17 日 新增 0 个星标; 2026 年 2 月 21 日 新增 0 个星标; 2026 年 2 月 23 日 新增 0 个星标; 2026 年 2 月 25 日 新增 0 个星标; 2026 年 2 月 27 日 新增 0 个星标; 2026 年 2 月 28 日 新增 0 个星标; 2026 年 3 月 1 日 新增 0 个星标; 2026 年 3 月 2 日 新增 0 个星标; 2026 年 3 月 3 日 新增 1 个星标; 2026 年 3 月 4 日 新增 0 个星标; 2026 年 3 月 5 日 新增 0 个星标; 2026 年 3 月 8 日 新增 0 个星标; 2026 年 3 月 10 日 新增 1 个星标; 2026 年 3 月 11 日 新增 1 个星标; 2026 年 3 月 16 日 新增 1 个星标

窗口内最高的一天是 2025 年 12 月 21 日,新增 1 个星标。

证据时间轴

这个项目还没有记录到异动、发布或许可证变化。

README
该仓库存储的文档,若已生成中文翻译则一并显示

MCP Chatbot

这个聊天机器人示例展示了如何将模型上下文协议(MCP)集成到一个简单的CLI聊天机器人中。该实现通过MCP服务器支持多个工具,展示了MCP的灵活性,并且兼容任何遵循OpenAI API标准的LLM提供者。

如果你觉得这个项目有帮助,别忘了给仓库点个⭐,或者给我买杯☕咖啡。

主要特性

  • LLM提供者灵活性:兼容任何遵循OpenAI API标准的LLM(已测试Groq上的Llama 3.2 90b和GitHub Marketplace上的GPT-4o mini)。
  • 动态工具集成:工具在系统提示中声明,确保在不同LLM之间最大兼容性。
  • 服务器配置:通过类似Claude桌面应用的简单JSON配置文件支持多个MCP服务器。

要求

  • Python 3.10
  • python-dotenv
  • requests
  • mcp
  • uvicorn

安装

  1. 克隆仓库:

    git clone https://github.com/3choff/mcp-chatbot.git
    cd mcp-chatbot
    
  2. 安装依赖:

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

    在根目录创建.env文件并添加你的API密钥:

    LLM_API_KEY=your_api_key_here
    
  4. 配置服务器:

    servers_config.json与Claude桌面应用结构相同,支持轻松集成多个服务器。 示例如下:

    {
      "mcpServers": {
        "sqlite": {
          "command": "uvx",
          "args": ["mcp-server-sqlite", "--db-path", "./test.db"]
        },
        "puppeteer": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-puppeteer"]
        }
      }
    }
    

    环境变量也受支持。像使用Claude桌面应用一样传递它们。

    示例:

    {
      "mcpServers": {
        "server_name": {
          "command": "uvx",
          "args": ["mcp-server-name", "--additional-args"],
          "env": {
            "API_KEY": "your_api_key_here"
          }
        }
      }
    }
    

使用

  1. 运行客户端:

    python main.py
    
  2. 与助手交互:

    助手将自动检测可用工具,并根据配置服务器提供的工具来响应查询。

  3. 退出会话:

    输入quit或exit结束会话。

架构

  • 工具发现:从配置服务器自动发现工具。
  • 系统提示:工具动态包含在系统提示中,使LLM理解可用功能。
  • 服务器集成:支持任何MCP兼容服务器,已测试包括Uvicorn和Node.js在内的各种服务器实现。

类结构

  • Configuration:管理环境变量和服务器配置
  • Server:处理MCP服务器初始化、工具发现和执行
  • Tool:表示单个工具及其属性和格式
  • LLMClient:管理与LLM提供者的通信
  • ChatSession:协调用户、LLM和工具之间的交互

逻辑流程

flowchart TD
    A[开始] --> B[加载配置]
    B --> C[初始化服务器]
    C --> D[发现工具]
    D --> E[为LLM格式化工具]
    E --> F[等待用户输入]
    
    F --> G{用户输入}
    G --> H[发送输入到LLM]
    H --> I{LLM决策}
    I -->|调用工具| J[执行工具]
    I -->|直接响应| K[返回响应给用户]
    
    J --> L[返回工具结果]
    L --> M[将结果发送给LLM]
    M --> N[LLM解释结果]
    N --> O[向用户展示最终响应]
    
    K --> O
    O --> F
  1. 初始化:

    • 配置加载环境变量和服务器设置
    • 服务器与其对应工具初始化
    • 工具发现并格式化为LLM理解
  2. 运行时流程:

    • 接收用户输入
    • 带有可用工具上下文将输入发送给LLM
    • LLM响应解析:
      • 如果是工具调用→执行工具并返回结果
      • 如果是直接响应→返回给用户
    • 将工具结果发送回LLM进行解释
    • 向用户展示最终响应
  3. 工具集成:

    • 工具从MCP服务器动态发现
    • 工具描述自动包含在系统提示中
    • 工具执行通过标准化的MCP协议处理

贡献

欢迎反馈和贡献。如果你遇到任何问题或有改进建议,请在GitHub仓库创建新问题。

如果你希望为项目开发做出贡献,欢迎提交包含你修改的pull请求。

许可证

本项目根据MIT许可证授权。

页面上的每个数字都来自记录下来的 stargazer 到达时间,没有评分公式,也没有 AI 判定。 任何结论都可以用 /api/v1/repos/{id}/stats 里的原始增量自己重算。