项目简介

jailbreak-mcp 是一个MCP(Model Context Protocol)服务器的包装层或代理。它不直接提供工具、资源或Prompt,而是连接到您配置的其他MCP服务器,从中获取能力列表,并根据您的设置选择性地将这些能力(主要是工具)暴露给您的LLM客户端(如Cursor)。

主要功能点

  • 集中管理多个MCP服务器:允许您在一个地方配置和管理与多个不同MCP服务器的连接。
  • 基于模式的能力过滤:通过定义不同的“模式”(mode),您可以精确控制在特定模式下哪些后端服务器的哪些工具会被暴露给LLM客户端。
  • 优化LLM客户端上下文:限制LLM客户端一次只能看到当前模式下所需的少量工具,有效减少发送给大型语言模型(LLM)的上下文长度,避免达到工具数量限制。
  • 简化客户端配置:LLM客户端只需配置连接到 jailbreak-mcp 这一个服务器。

安装步骤

本项目的安装通常通过 npm 的 npx 命令进行,以下是针对Cursor客户端的示例(假定您已安装 Node.js):

  1. 备份现有 MCP 配置:首先备份您的 MCP 配置文件,通常位于 '~/.cursor/mcp.json'。 'mv ~/.cursor/mcp.json ~/.cursor/jailbreak.mcp.json.bak'

  2. 创建新的客户端 MCP 配置:在原位置创建新的 'mcp.json' 文件,内容如下,该文件配置您的LLM客户端连接到 jailbreak-mcp:

    {
      "mcpServers": {
        "jailbreak": {
          "command": "npx",
          "args": [
            "jailbreak-mcp@latest",
            "/path/to/your/jailbreak.mcp.json" 
            // 将此路径替换为您实际存放jailbreak-mcp配置文件的位置
          ],
          "env": {
            "CONFIG_PATH": "/path/to/your/jailbreak.mcp.json"
            // 也可以通过环境变量指定配置文件路径
          }
        }
      }
    }

    请确保将 '/path/to/your/jailbreak.mcp.json' 替换为您希望存放 jailbreak-mcp 自身配置文件的实际路径。

  3. 创建 jailbreak-mcp 配置文件:根据下一节的说明,在 '/path/to/your/jailbreak.mcp.json' 创建 jailbreak-mcp 的配置文件,定义您想要管理的后端MCP服务器和模式。

服务器配置(jailbreak-mcp 自身的配置)

jailbreak-mcp 的核心配置是一个 JSON 文件(例如上一步中的 '/path/to/your/jailbreak.mcp.json'),它包含两部分:'mcpServers' 和 'modes'。

  • mcpServers:定义 jailbreak-mcp 需要连接的后端 MCP 服务器列表。

    • 键名:您为该后端服务器指定的一个唯一名称。
    • 值:一个对象,描述如何启动/连接到该后端服务器。
      • 'command' 和 'args':如果后端服务器是通过命令行启动的标准 I/O (Stdio) 服务器,指定启动命令和参数。
      • 'url':如果后端服务器是 SSE(Server-Sent Events)服务器,指定其URL。
      • 'env':可选,为启动该后端服务器进程设置的环境变量。
  • modes:定义不同的能力集合模式。

    • 必须包含一个名为 'default' 的模式。
    • 键名:模式的名称(如 'default', 'coding', 'browsing' 等)。
    • 值:一个对象,键名是 'mcpServers' 中定义的后端服务器名称。
      • 值 'true':表示在该模式下暴露该后端服务器的所有能力。
      • 值 '{ "tools": ["tool1", "tool2"], "prompts": [...], "resources": [...] }':表示在该模式下只暴露该后端服务器中指定名称的能力列表(当前主要影响工具的暴露)。
      • 值 'false' 或省略:表示在该模式下不暴露该后端服务器的任何能力。

示例 jailbreak.mcp.json 配置:

虽然MCP客户端不需要直接看到这段代码,但理解其结构有助于用户配置。

{
  "mcpServers": {
    "github-server": {
      "command": "github-mcp",
      "args": ["serve"],
      "env": {}
    },
    "test-server": {
      "command": "your-test-mcp",
      "args": [],
      "env": {}
    }
  },
  "modes": {
    "default": {
      "github-server": {
         "tools": ["github.repo.search", "github.issue.create"]
      },
      "test-server": true 
      // 暴露 test-server 的所有工具(当前实现主要影响工具)
    },
    "full-access": {
      "github-server": true,
      "test-server": true
    }
    // 您可以定义更多模式
  }
}

基本使用方法

配置好 jailbreak-mcp 的 'mcp.json' 文件后,您的LLM客户端将通过您在客户端 'mcp.json' 中配置的命令启动 jailbreak-mcp。jailbreak-mcp 会根据其自身的配置文件 ('/path/to/your/jailbreak.mcp.json') 连接到后端 MCP 服务器。

LLM客户端与 jailbreak-mcp 的交互就像与一个单一的MCP服务器交互一样。LLM客户端通过MCP协议请求工具列表、调用工具等。jailbreak-mcp 会根据配置文件中 'modes' 下 'default' 模式的定义,从所有配置的后端服务器那里收集(并过滤)工具列表,然后将过滤后的列表返回给LLM客户端。当LLM客户端调用一个工具时,jailbreak-mcp 会识别该工具属于哪个后端服务器,并将调用请求转发给相应的后端服务器执行。

您可以通过修改 jailbreak-mcp 的配置文件来改变暴露给LLM客户端的能力集合。当前版本主要根据配置过滤和暴露工具。

信息

分类

AI与计算