项目简介

Jibberish 仓库中包含两个用于演示 Model Context Protocol (MCP) 的示例服务器实现:一个基于 HTTP 协议 ('tests/simple_http_mcp_server.py'),另一个基于标准输入/输出 (Stdio) 协议 ('tests/simple_mcp_server.py')。它们作为独立的后端服务,旨在向 LLM 客户端提供标准化的工具注册与调用能力,是理解 MCP 协议和客户端如何与其交互的绝佳范例。

主要功能点

  • 工具注册与调用: 服务器通过 MCP 定义的 JSON-RPC 协议,允许 LLM 客户端发现其托管的工具列表(通过 'tools/list' 请求),并按需调用这些工具(通过 'tools/call' 请求),以获取特定信息或执行外部操作。
  • 多传输协议支持: 示例服务器分别展示了通过 HTTP 和 Stdio 两种常见传输协议与客户端进行通信的能力,适应不同的部署和集成场景。
  • 标准化 JSON-RPC 接口: 严格遵循 MCP 规范,实现 'jsonrpc' 2.0 版本协议,确保与兼容的 LLM 客户端进行无缝通信。
  • 内置示例工具:
    • HTTP 服务器: 提供了 'greet' (生成问候语)、'calculate' (执行基本算术运算) 和 'reverse' (反转字符串) 等工具。
    • Stdio 服务器: 提供了 'repeat' (回显输入消息) 和 'add' (将两个数字相加) 等工具。

安装步骤

  1. 克隆 Jibberish 仓库: 打开您的终端,执行以下命令将 Jibberish 仓库克隆到本地:
    git clone https://github.com/bjeremy23/jibberish.git
    cd jibberish
  2. 准备 Python 环境: 这些示例 MCP 服务器是 Python 脚本,通常只需要 Python 3 环境即可运行,无需额外的 'pip install' 依赖(它们主要依赖 Python 标准库)。

MCP 客户端配置示例

MCP 客户端(例如 Jibberish 自身或其他兼容的 LLM 应用)需要配置 MCP 服务器的连接信息。以下是配置这两个示例服务器的 JSON 格式片段,您可以将其作为参考,整合到您的 MCP 客户端配置文件中(例如 '~/.jbrsh-mcp-servers.json' 或客户端指定的文件):

{
  "SimpleHttpServer": {
    "enabled": true,
    "command": "http://localhost:8080",
    "tool_prefix": "http_example",
    "description": "提供 HTTP 接口的 MCP 示例服务器,包含 greet, calculate, reverse 工具。"
  },
  "SimpleStdioServer": {
    "enabled": true,
    "command": "python3",
    "args": ["tests/simple_mcp_server.py"],
    "tool_prefix": "stdio_example",
    "description": "提供 Stdio 接口的 MCP 示例服务器,包含 repeat, add 工具。"
  }
}
  • 'SimpleHttpServer' 配置说明:

    • '"enabled": true': 表示该 MCP 服务器处于启用状态,客户端将尝试连接。
    • '"command": "http://localhost:8080"': 指定 HTTP 服务器的 URL 地址。客户端将向此地址发送 JSON-RPC POST 请求。
    • '"tool_prefix": "http_example"': 在客户端中,该服务器提供的所有工具名称都将带有此前缀(例如,'http_example_greet')。这有助于避免工具名称冲突。
    • '"description"': 简要描述此服务器提供的功能和工具。
  • 'SimpleStdioServer' 配置说明:

    • '"enabled": true': 表示该 MCP 服务器处于启用状态。
    • '"command": "python3"': 指定用于启动服务器进程的可执行程序,此处为 Python 3 解释器。
    • '"args": ["tests/simple_mcp_server.py"]': 传递给 'command' 的命令行参数,此处为 Stdio 服务器脚本的路径。客户端通过向此进程的标准输入发送 JSON-RPC 请求,并从标准输出接收响应。
    • '"tool_prefix": "stdio_example"': 客户端中该服务器工具的前缀(例如,'stdio_example_repeat')。
    • '"description"': 简要描述此服务器提供的功能和工具。

基本使用方法

  1. 启动 HTTP MCP 示例服务器: 在一个独立的终端窗口中,导航到克隆的 'jibberish' 仓库目录,然后运行:

    python3 tests/simple_http_mcp_server.py --port 8080

    您将看到服务器启动并监听 'http://localhost:8080'。它将显示可用的 'greet', 'calculate', 'reverse' 工具。

  2. 启动 Stdio MCP 示例服务器: Stdio 服务器通常由 MCP 客户端应用程序自动作为子进程启动和管理。您无需手动运行此命令,客户端会自动处理其生命周期。

  3. 通过 MCP 客户端调用工具: 如果您的 LLM 客户端(如配置了上述信息的 Jibberish shell)已成功集成,当您向 LLM 提出需要外部工具协助的问题时,LLM 将能够自动识别并调用这些 MCP 服务器提供的工具。例如,您可以:

    • HTTP 服务器工具: 客户端的 LLM 可能会调用 'http_example_greet' 工具来生成问候语。
    • Stdio 服务器工具: 客户端的 LLM 可能会调用 'stdio_example_add' 工具来执行加法。

信息

分类

AI与计算