关于 hyper-mcp
hyper-mcp(README 中称为 jailbreak-mcp)是用于通过可选模式接入已配置 MCP 服务的中间件 MCP 服务与客户端。它可限制暴露的工具,并旨在将配置的提示词和资源作为工具提供;README 指出该项目现已过时,相关功能目前仅支持工具。
主要功能
- 01加载已配置的 MCP 服务
- 02将工具调用转发至源服务
- 03按模式设置服务和工具白名单
- 04可选排除或优先显示工具
- 05加载提示词和资源
适用场景
- 01按任务模式仅暴露相关工具
- 02减少 MCP 客户端可见的工具
- 03将选定工具调用转发到已配置服务
MCP 相关
它作为客户端连接已配置的 MCP 服务,再通过包装 MCP 服务暴露并转发其工具。README 表示会加载提示词和资源,但将它们作为工具暴露的功能尚未完成。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
jailbreak-mcp
重要
这个工具最初用于弥补 Cursor 或 Claude Desktop 等现有 MCP 客户端的一些功能缺口,而随着这些工具自行实现相关功能,它如今已显得过时。
这个想法是创建一个中间件 MCP 服务和客户端,用于将不需要的工具列入白名单或黑名单,以节省上下文窗口,并将资源和提示词作为工具提供。
一个 MCP 服务包装器,可在不受工具数量限制、概念缺失或上下文过载影响的情况下使用完整的 Model Context Protocol。
为什么要做这个?
MCP 服务✨可能非常出色✨,但使用它们也有一些限制。
你的客户端可能缺少协议的大部分实际功能。 MCP 列出了许多功能:
- 工具,类似函数。
- 资源,类似值。
- 提示词,也就是提示词。
截至撰写本文时,几乎没有 MCP 客户端(Cursor、Claude Desktop、Cherry Studio)实现了所有这些功能。 如果你是 Cursor 用户,就只能使用工具。
查看 Model Context Protocol 文档,了解你所选的 MCP 客户端缺少哪些功能。
诚然,这不算什么大问题——大多数服务反正只使用工具。 如果未来有更多服务开始实现协议的更多功能,这可能会成为更大的问题。
警告
这一部分还没有完成!目前仅支持工具。
Jailbreak-MCP 通过将配置的资源和提示词作为工具提供,解决了这个问题,让功能最受限的实现也能得到充分利用。
MCP 服务会占满上下文窗口
配置的工具越多,MCP 服务占用 Agent 宝贵上下文窗口的空间就越大。
如果你想同时使用多个 MCP 服务中的工具或信息,上下文窗口很快就会变得非常小。
为解决这个问题,一些客户端已实现警告,提示同时配置了过多工具。Cursor 已设置 40 个工具的硬性限制,但不会显示当前禁用了哪些工具。
有些服务会同时提供_大量_工具。仅 GitHub MCP 服务就会占满 Cursor 的工具上限。
目前最好的办法是手动启用和禁用你希望在任意时刻开启的 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
需要完成:
- 读取配置文件(mcp.json),可通过参数或环境变量提供
- 验证配置格式是否正确(zod schema)
启动
- 为每个 MCP 条目加载新的客户端
- 列出所有工具
- 将所有工具添加到注册表
- 为
npm init jailbreak安装流程创建create-jailbreak包
运行时
- 通过工具端点公开该列表
- 接收命令
- 将命令转发给相应的 MCP 服务
- 将结果转发回来
支持
- 更新传输命令,以支持 Nix、fnm 等
- 更新连接,使其传递 MCP 主机环境(需要这样做吗?)
- 更新工具,以支持动态工具,例如变更
进阶功能
- CI 和发布
- 支持 SSE 服务
- 同时加载所有提示词和资源
- 可选择排除或优先使用工具
- 也公开所有其他内容
- 指令,动态的?
- 可模板化的帮助消息?
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。