返回市场
超能-MCP

超能-MCP

作者:kranners7 星标更新:2025-05-28

项目介绍

jailbreak-mcp

一个用于在没有工具限制、缺少概念或上下文过载的情况下使用整个模型上下文协议的MCP服务器封装。

[!WARNING] 此工具正在积极开发中。请注意!🐉

为什么存在这个工具?

MCP服务器可以是✨惊人的✨,但使用它们也有一些注意事项。


您的客户端可能缺少大部分实际协议。 MCP中列出了许多功能:

  • 工具,类似于函数。
  • 资源,类似于值。
  • 提示,即提示。

截至撰写本文时,几乎没有任何MCP客户端(如Cursor、Claude Desktop、Cherry Studio)实现了所有这些功能。 如果您是Cursor用户,您只能使用工具。

查看模型上下文协议文档,以了解您选择的MCP客户端缺少哪些内容。

坦率地说,这并不是最大的问题——大多数服务器通常只使用工具。 如果未来有更多的服务器开始实现更多的协议,这可能会成为一个更大的问题。

[!WARNING] 这部分尚未完成!目前仅支持工具。

Jailbreak-MCP通过暴露配置的资源和提示作为工具来解决这个问题,因此即使是最严格的实现也可以完全使用。


MCP服务器填满上下文窗口

您配置的工具越多,您的MCP服务器占用代理的重要上下文窗口就越多。

如果您想同时使用多个MCP服务器中的工具或信息,您的上下文窗口会变得非常小。

为了解决这个问题,一些客户端已经实现了关于配置过多工具的警告。Cursor实现了40个工具的硬限制,但隐藏了何时禁用哪些工具。

有些服务器同时暴露了许多工具。GitHub MCP服务器本身就已经填满了Cursor的工具上限。

当前最好的做法是手动启用和禁用您希望在任何时候开启的MCP服务器。

JailbreakMCP通过提供可配置的“模式”,只暴露执行给定任务所需的精确工具和资源,并提供切换模式的工具来解决这个问题。

安装

示例安装假设您使用的是Cursor。

  1. 首先备份您当前的mcp.json文件。

[!TIP] 默认位置是~/.cursor/jailbreak.mcp.json。 若要重命名现有的Cursor配置: mv ~/.cursor/mcp.json ~/.cursor/jailbreak.mcp.json

  1. 在旧文件的位置创建一个新的mcp.json文件,内容如下:
{
  "mcpServers": {
    "jailbreak": {
      "command": "npx",
      "args": [
        "jailbreak-mcp@latest",
        "/optional/path/to/jailbreak.mcp.json",
      ],
      "env": {
        "CONFIG_PATH": "/optional/path/to/jailbreak.mcp.json"
      }
    }
  }
}

服务器将优先使用参数而不是环境变量,或者~/.cursor/jailbreak.mcp.json

  1. 接下来,您需要配置一个default模式。
{
  "mcpServers": {
    ...
  },
  "modes": {
    "default": {
      "everything": {
        "tools": [
          "echo",
          "add",
          "longRunningOperation"
        ],
        "prompts": [
          "simple_prompt",
          "complex_prompt",
          "resource_prompt"
        ],
        "resources": [
          "test://static/resource/1",
          "test://static/resource/2"
        ]
      },
      "time": true
    }
  }
}

配置

模式

每个模式都是可用服务器的白名单,以及允许的特定工具/提示/能力。

模式是在配置中的modes键下的键/值对。

{
    "mcpServers": {
        ...
    },
    "modes": {
        "default": {
            ...
        },
        "anotherModeName": {
            ...
        }
    }
}

在每个模式下,键是允许的服务器名称(与定义在mcpServers下的相同名称)。

要为某个服务器允许一切,将其值设置为true

{
    "modes": {
        "admin": {
            "email": true,
            "slack": true,
            "time": true,
        }
    }
}

要更具体,指定您想要的工具、提示和资源名称或资源URI的列表。

{
    "modes": {
        "admin": {
            "time": true,
            "email": {
                "tools": [
                    "read_email",
                    "send_email",
                    "list_inbox"
                ]
            },
            "slack": {
                "tools": [
                    "slack_list_channels",
                    "slack_get_channel_history",
                    "slack_get_thread_replies",
                    "slack_get_users",
                    "slack_get_user_profile"
                ]
            },
            "everything": {
                "tools": [
                    "echo",
                    "add",
                    "longRunningOperation"
                ],
                "prompts": [
                    "simple_prompt",
                    "complex_prompt",
                    "resource_prompt"
                ],
                "resources": [
                    "test://static/resource/1",
                    "test://static/resource/2"
                ]
            },
        }
    }
}

TODO

需要:

  • 读取配置文件(mcp.json),可以接受参数或环境变量
  • 验证其格式是否正确(zod模式)

启动

  • 为每个MCP条目加载新的客户端
  • 列出所有工具
  • 将它们全部添加到注册表
  • npm init jailbreak设置创建create-jailbreak

运行时

  • 通过工具端点公开该列表
  • 接收命令
  • 将它们转发到相应的MCP服务器
  • 将结果返回

支持

  • 更新传输命令以支持Nix、fnm等
  • 更新连接以通过MCP主机环境传递(这是否需要?)
  • 更新工具以支持动态工具,例如更改

调味

  • CI & 发布
  • 支持SSE服务器
  • 同时加载所有提示和资源
  • 可选排除或优先考虑工具
  • 公开其他所有内容
  • 指令,动态?
    • 可模板化的帮助消息?