mcpField
H
hyper-mcp

hyper-mcp

本地服务
github.com/kranners开发工具1035 周前更新

关于 hyper-mcp

hyper-mcp(README 中称为 jailbreak-mcp)是用于通过可选模式接入已配置 MCP 服务的中间件 MCP 服务与客户端。它可限制暴露的工具,并旨在将配置的提示词和资源作为工具提供;README 指出该项目现已过时,相关功能目前仅支持工具。

主要功能

  1. 01加载已配置的 MCP 服务
  2. 02将工具调用转发至源服务
  3. 03按模式设置服务和工具白名单
  4. 04可选排除或优先显示工具
  5. 05加载提示词和资源

适用场景

  1. 01按任务模式仅暴露相关工具
  2. 02减少 MCP 客户端可见的工具
  3. 03将选定工具调用转发到已配置服务

MCP 相关

它作为客户端连接已配置的 MCP 服务,再通过包装 MCP 服务暴露并转发其工具。README 表示会加载提示词和资源,但将它们作为工具暴露的功能尚未完成。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"hyper": {
"command": "npx",
"args": [
"-y",
"hyper-mcp"
]
}
}
}
启动命令npx -y hyper-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmhyper-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。

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

提示

默认位置为 ~/.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 schema)
启动
  • 为每个 MCP 条目加载新的客户端
  • 列出所有工具
  • 将所有工具添加到注册表
  • 为 npm init jailbreak 安装流程创建 create-jailbreak 包
运行时
  • 通过工具端点公开该列表
  • 接收命令
  • 将命令转发给相应的 MCP 服务
  • 将结果转发回来
支持
  • 更新传输命令,以支持 Nix、fnm 等
  • 更新连接,使其传递 MCP 主机环境(需要这样做吗?)
  • 更新工具,以支持动态工具,例如变更
进阶功能
  • CI 和发布
  • 支持 SSE 服务
  • 同时加载所有提示词和资源
  • 可选择排除或优先使用工具
  • 也公开所有其他内容
  • 指令,动态的?
    • 可模板化的帮助消息?

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。