越狱mcp
\[!重要\] 该工具的存在是为了填补现有MCP客户端中的一些功能空白 像Cursor或Claude Desktop一样,由于这些工具本身实现了它,现在已经过时了。 其想法是创建一个可以列入白名单或黑名单的中间件MCP服务器和客户端 将不需要的工具保存在上下文窗口中,并将资源和提示作为工具公开。
______________________________________________________________________
无需工具即可使用整个模型上下文协议的MCP服务器包装器 限制、缺少概念或上下文过载。
为什么会有这种情况?
MCP服务器可以是✨ 惊人的✨ 但使用它们有一些注意事项。
______________________________________________________________________
您的客户可能缺少大部分实际协议. MCP中列出了许多功能:
- 工具,就像功能一样。
- 资源,就像价值观。
- Prompts,即提示。
在撰写本文时,几乎没有MCP客户端(Cursor、Claude Desktop、Cherry Studio)实现了所有这些功能。 如果您是Cursor用户,则只能使用工具。
请参阅模型上下文协议文档 查看您选择的MCP客户端缺少什么。
诚然,这不是最大的问题——无论如何,大多数服务器都只是使用工具。 如果更多的服务器开始实施更多的协议,这可能会在未来成为一件更大的事情。
\[!警告\] 这部分还没有完成!目前它只是工具。
越狱MCP通过将配置的资源和提示暴露为 工具,因此即使是最严格的实现也是完全可用的。
______________________________________________________________________
MCP服务器填充上下文窗口
您配置的工具越多,MCP服务器占用的空间就越大 你的代理最重要的上下文窗口。
如果您想同时使用来自多个MCP服务器的工具或信息, 你的上下文窗口很快就会变得很小。
为了解决这个问题,一些客户端已经实施了关于过多的警告 立即配置工具。Cursor已实现40的硬限制 工具,但隐藏在任何给定时刻禁用的工具。
某些服务器暴露 _许多_ 工具同时。仅GitHub MCP服务器 填充整个光标工具帽。
您目前能做的最好的事情是手动启用和禁用哪个MCP 您希望在任何特定时刻打开的服务器。
JailbreakMCP通过提供可配置的“模式”来解决这个问题,这些模式仅公开 完成给定任务所需的确切工具和资源,以及切换工具 在运行模式之间。
安装
示例安装将假设您使用的是Cursor。
- 首先备份您当前的
mcp.json文件。
\[!提示\] 默认位置为~/.cursor/jailbreak.mcp.json. 要重命名现有的Cursor配置,请执行以下操作:mv ~/.cursor/mcp.json ~/.cursor/jailbreak.mcp.json
- 创建新
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.
- 从这里开始,您需要配置
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
需要:
- \[x\] 读取配置文件(mcp.json),可以接受参数或env-var
- \[x\] 验证其格式是否正确(zod模式)
初创公司
- \[x\] 为每个MCP条目加载一个新客户端
- \[x\] 列出所有工具
- \[x\] 将所有这些添加到注册表中
- \[ \]
create-jailbreak包装用于npm init jailbreak设置
运行时
- \[x\] 通过工具端点公开该列表
- \[x\] 接收命令
- \[x\] 将它们转发到相应的MCP服务器
- \[x\] 将结果转发回去
支持
- \[\]更新传输命令以支持Nix、fnm等
- \[x\] 更新连接以通过MCP主机环境(需要吗?)
- \[\]更新工具以支持动态工具,例如更改
香料
- \[x\] CI和发布
- \[\]支持SSE服务器
- \[x\] 同时加载所有提示和资源
- \[x\] 可选择排除或首选工具
- \[\]也把所有其他东西都暴露出来
- \[\]说明,动态?
- \[\]诱人的帮助信息?
