关于 McpHub
McpHub 是面向多款 AI 编辑器的本地 MCP 网关,可共享服务器进程、按需加载工具定义,并通过安全检查路由调用。
主要功能
- 01统一连接多个 MCP 服务
- 02按需搜索和调用工具
- 03编辑器间共享服务进程
- 04使用 macOS Keychain 保存密钥
- 05工具固定、沙箱隔离与审计日志
适用场景
- 01减少编辑器会话中的工具定义上下文
- 02在多款 AI 编辑器间复用服务
- 03避免在编辑器配置中保存 OAuth 凭据
- 04检查或阻止已变更的工具定义
MCP 相关
McpHub 通过 Streamable HTTP、SSE 和 stdio 提供本地 MCP 端点,以三个元工具搜索、调用工具及运行代码。它将客户端请求路由至本地或远程服务,并执行配置文件、权限和安全检查。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
McpHub 位于你的 AI 编辑器与所有 MCP 服务之间。
你的 Agent 只需看到 3 个工具,而不是数百个,每次调用都会经过同一套安全防护,
而且你的服务只需在沙箱中运行一次,即可供 Cursor、Claude、Windsurf 和 VS Code 共享。
安装 · 连接编辑器 · 工作原理 · 代码模式 · 安全 · 控制面板 · 资源库 · Linux 与同步 · 配置 · 常见问题
✨ 一览
-99.9%工具定义消耗的令牌在包含 928 个工具的配置中,从 1,054,593 降至 918 | 1 个进程供所有编辑器使用服务只启动一次,编辑器重启后仍继续运行 | 8 层安全防护Keychain、固定、沙箱、审计…… | 0 个运行时依赖项单个已签名的 Rust 二进制文件 |
| 每个编辑器分别接入每个服务 | 通过 McpHub | |
|---|---|---|
| 每条提示词中的工具定义 | 全部工具(数十万个令牌) | 3 个工具,按需加载架构 |
| 服务进程 | 每个编辑器各运行一份 | 共享一份 |
| 密钥 | 以纯文本形式存储在每个编辑器的配置中 | macOS Keychain,使用 ${NAME} 引用 |
| 服务悄悄更改工具 | 无人察觉 | 在你批准前隔离 |
恶意 npm 服务读取 ~/.ssh | 可以读取 | 由 macOS 沙箱拦截 |
| 使用 OAuth 的远程服务 | 每个服务各运行一个 mcp-remote 进程,令牌以纯文本文件存储 | 原生 HTTP,令牌存于 Keychain,并自动刷新 |
| 谁调用了什么 | 无从得知 | 包含已编辑参数的审计日志 |
| 查找新服务 | 搜索 GitHub、复制 JSON 代码片段、粘贴令牌 | 官方 MCP Registry 的资源库:信任评分、一键添加、密钥直接存入 Keychain |
| Agent 需要你没有的工具 | 你手动安装 | 如果信任度足够,Agent 会从注册表中自行安装,并在沙箱中运行 |
| 第二台设备或 Linux 服务 | 重做所有配置、四处复制令牌 | 同一个二进制文件、bubblewrap 沙箱,以及服务和密钥的加密同步 |
🚀 一行安装
curl -fsSL https://raw.githubusercontent.com/Soflutionltd/McpHub/main/get.sh | bash
脚本会为你的机器下载最新二进制文件(macOS 上为已签名的通用二进制文件,Linux 上为 x64 或 arm64),验证其 SHA-256 校验和,并将其安装到 ~/.local/bin/McpHub。然后:
McpHub dashboard # Library tab: add servers from the official MCP Registry (or McpHub add)
McpHub generate # index every tool once
McpHub install # start the daemon at login (LaunchAgent on macOS, systemd --user on Linux)
手动下载
- 下载
McpHub-macos-universal.tar.gz及其校验和。 shasum -a 256 -c McpHub-macos-universal.tar.gz.sha256tar -xzf McpHub-macos-universal.tar.gz && install -m 755 McpHub ~/.local/bin/McpHub- 通过浏览器下载的?请清除隔离标记:
xattr -d com.apple.quarantine ~/.local/bin/McpHub
Linux(amd64、arm64)和 Windows(amd64)的压缩包也附在每个版本发布页中。Linux 上,沙箱使用 bubblewrap,密钥存储在 ~/.McpHub/secrets.env 中(权限模式为 600,沙箱化的服务无法访问),详见 Linux 服务与同步。Windows 没有沙箱。
从源代码构建
git clone https://github.com/Soflutionltd/McpHub.git
cd McpHub
make install # cargo build --release, install, sign
如果存在 Developer ID 证书,make install 会使用该证书签名,因此 macOS 会在不同版本间保留其权限。Linux 和 Windows 从源代码构建(cargo build --release);macOS 沙箱和 Keychain 功能仅适用于 macOS。
🔌 连接编辑器
守护进程监听 http://127.0.0.1:24680。你的令牌位于 ~/.McpHub/auth-token。
Cursor,~/.cursor/mcp.json
{
"mcpServers": {
"McpHub": {
"url": "http://127.0.0.1:24680/mcp",
"headers": { "Authorization": "Bearer <your-token>" }
}
}
}
Claude Code
claude mcp add --transport http mcphub http://127.0.0.1:24680/mcp \
--header "Authorization: Bearer $(cat ~/.McpHub/auth-token)"
Claude Desktop,claude_desktop_config.json
{
"mcpServers": {
"McpHub": { "command": "/Users/you/.local/bin/McpHub", "args": ["stdio"] }
}
}
VS Code,.vscode/mcp.json
{
"servers": {
"mcphub": {
"type": "http",
"url": "http://127.0.0.1:24680/mcp",
"headers": { "Authorization": "Bearer <your-token>" }
}
}
}
Windsurf 和其他 SSE 客户端
使用 http://127.0.0.1:24680/sse,并附上相同的 Authorization 标头。
每个客户端使用一个配置文件。 为每个编辑器提供各自的视图:http://127.0.0.1:24680/mcp/cursor 仅显示 cursor 配置文件允许的内容(详见每个客户端的配置文件)。
项目感知型客户端(可选)
client/ 是一个小型 Node MCP 服务,位于编辑器和守护进程之间。它与正在运行的守护进程通信(通过 SSE,令牌来自 ~/.McpHub/auth-token),并在连接失败时回退到 McpHub stdio。它提供六个工具:
mcphub_bootstrap:每次对话调用一次。从工作区解析项目,返回其别名和允许使用的服务,并提取精简的 MemoryPilot 上下文;对于没有项目条目的文件夹也同样适用。mcphub_search、mcphub_call:与守护进程功能相同,此外在工具或服务名称拼写错误时提供建议,并在参数出错时返回输入架构。mcphub_batch:一次往返中最多执行 20 个互不依赖的调用。mcphub_status、mcphub_savings:服务运行状况和如实的上下文大小对比。
每个项目的策略存储在 ~/.McpHub/projects.json 中(或 MCPHUB_PROJECTS 指定的路径),详见 client/projects.example.json。对于其中列出的工作区,只能访问其 allowedServers 中的服务;如果调用指向其他 Supabase 项目、App Store 应用或 Cloudflare 项目,则会被拒绝。没有此文件时,不会应用策略;如果文件无法读取,则会报错,不会静默忽略。
cd client && npm ci
{
"mcpServers": {
"McpHub": { "command": "node", "args": ["/path/to/McpHub/client/index.js"] }
}
}
npm test 会使用临时项目文件,对本地守护进程运行冒烟测试(已配置 MemoryPilot 和 supabase)。
管理客户账户
连接到客户的 Stripe(或 Supabase、Cloudflare……)不应让你退出自己的账户,而你自己的 Agent 也绝不能误连到客户的服务。提供两个级别,从宽松到严格:
1. 客户拥有的服务(同一个 McpHub)。 使用客户自己的名称添加客户的服务(stripe-acme,并使用它自己的 OAuth 令牌或受限密钥,因为令牌按服务名称存储),并将其列入客户项目的 ownedServers:
"acme": {
"workspaces": ["/Users/you/Clients/Acme"],
"aliases": { "product": "Acme" },
"allowedServers": ["MemoryPilot", "context7"],
"ownedServers": ["stripe-acme"]
}
只有当 working_dir 位于客户工作区内时,客户拥有的服务才会响应,并显示在 mcphub_search 和 mcphub_status 中;仅提供 project 参数并不足够。一个服务由两个项目拥有会导致启动错误。这项防护在 Node 客户端中实现:直接连接到守护进程的编辑器仍能看到所有服务,因此请为它配置一个包含 "excludeServers": ["*-acme"] 的配置档。
2. 独立实例(完全隔离)。 对于有此要求的客户,运行第二个 McpHub,并为其使用独立的文件夹、端口、Keychain 服务、身份验证令牌和 LaunchAgent:
export MCPHUB_INSTANCE=acme MCPHUB_PORT=24690
McpHub add # writes ~/.McpHub-acme/config.json
McpHub oauth login stripe # token stored under Keychain service McpHub-acme
McpHub install # LaunchAgent com.soflution.mcphub.acme
命名实例不会导入编辑器中声明的服务,会拒绝使用主端口(24680),其令牌也会被主守护进程拒绝(反之亦然)。为该客户的工作区编辑器设置相同的变量,将其指向这个实例:
"McpHub": {
"command": "node",
"args": ["/path/to/McpHub/client/index.js"],
"env": { "MCPHUB_INSTANCE": "acme", "MCPHUB_PORT": "24690" }
}
MCPHUB_HOME 和 MCPHUB_VAULT_SERVICE 可分别覆盖文件夹和 Keychain 服务。所有实例中的沙盒服务都无法访问任何 ~/.McpHub* 文件夹。macOS 和 Linux 支持命名实例自动启动。
🧭 工作原理
- 编辑器只需连接一次 McpHub 守护进程(Streamable HTTP、SSE 或 stdio)。
- Agent 可以使用三个工具:
mcphub_search(搜索所有工具的 BM25 搜索)、mcphub_call(运行一个工具)和mcphub_run(代码模式)。 - 每次调用都会经过身份验证,按客户端配置档筛选,并依据工具固定项和权限进行检查,然后路由到相应服务;该服务会按需启动,空闲时停止。
- 本地服务在 macOS 沙盒中运行,并使用最精简的环境;远程服务则通过 HTTP 直接访问,OAuth 令牌保存在 Keychain 中。
- 每次调用都会写入审计日志。
节省令牌
将数十个 MCP 服务直接接入编辑器,会把每个工具的架构加载到每次对话中。在上述配置(35 个服务、928 个工具)下,这需要超过一百万个令牌,超出任何上下文窗口的容量。McpHub 用三个小型工具取而代之,并且只在 Agent 确实需要时才加载架构。
🧠 代码模式
对于多步骤或批量任务,Agent 使用 mcphub_run 发送一段简短的 JavaScript 程序:
const projects = await mcp.call("supabase", "list_projects", {});
const unhealthy = projects.filter(p => p.status !== "ACTIVE_HEALTHY");
return unhealthy.map(p => p.name);
mcp.call(server, tool, args)返回工具结果,mcp.search(query)用于查找工具,console.log的输出会被捕获。- 程序在独立的 Node.js 进程中运行(版本 22.13 或更高),该进程通过
--permission启动:无法访问文件、网络或子进程,并且运行在 macOS 沙盒中。 - 程序唯一的外部访问方式是
mcp.call,它会经过 McpHub 的所有防护(权限、隔离、配置档、审计)。 - 限制:
settings.codeMode→{ "timeoutSecs": 60, "maxCalls": 100 },输出上限为 1 MB。
🛡️ 安全
MCP 服务是第三方程序,通常通过 npx -y package@latest 即时获取,并以你的权限运行。McpHub 会相应地对待它们。
受保护的本地 API
/mcp、/sse、/message和所有/api/*路由都需要Authorization: Bearer <token>(一个 256 位随机令牌,位于~/.McpHub/auth-token,权限模式为 600)。- 如果请求的
Host不是127.0.0.1、localhost或[::1],请求将被拒绝(防止 DNS 重绑定);来自其他来源的Origin也会被拒绝。不提供 CORS 标头:网页无法调用此中心。 - 仪表板通过一次性链接(
McpHub dashboard)打开,并使用每个会话独有的密钥,绝不使用主令牌。
将密钥存储在 macOS 钥匙串中
McpHub vault set GITHUB_TOKEN # masked prompt, stored in the Keychain
McpHub vault migrate # move an existing secrets.env into the Keychain
config.json 只包含 ${GITHUB_TOKEN} 引用。每个服务进程启动时只获得最少的环境变量(系统变量、自身的 env,以及 inheritEnv 中列出的名称),因此任何服务都不会收到其他服务的密钥。
工具固定与投毒检测
McpHub 首次发现某个服务时,会将每个工具(名称、描述、输入和输出架构、注释)的 SHA-256 指纹记录到 ~/.McpHub/tool-pins.json。如果服务之后更改了定义(即“偷梁换柱”),该工具会被隔离:从目录中隐藏,并在调用时拒绝,直到你检查它:
McpHub pins status # what is quarantined and why
McpHub pins approve SERVER [TOOL] # accept the new definition
McpHub pins scan # scan every cached tool, read-only
系统会扫描描述和架构,检查其中是否含有不可见的 Unicode 字符以及常见的注入语句(“ignore previous instructions”、“do not tell the user”、~/.ssh/id_rsa、mcp.json……)。已批准的服务中出现的新工具也会被拦截。
"settings": { "toolSecurity": { "pinning": "block", "scan": "block", "newTools": "block" } }
设置 "pinning": "off"(或 "warn")后,定义更改会自动接受,但仍会再次扫描:如果新的描述触发扫描,当 scan 为 block 时仍会被拦截。
服务隔离(macOS 沙盒)
"settings": { "sandbox": "shield" }
shield 会通过 sandbox-exec 运行每个本地服务。服务仍可正常运行,但无法读取或写入 SSH 和 GPG 密钥、云服务和 GitHub 凭据、浏览器配置和 Cookie、Claude/Cursor 配置、Shell 配置文件、LaunchAgents 或 McpHub 自身的文件,也无法运行 security、launchctl、osascript 或 open。服务在自身 env 或 args 中引用的密钥文件(例如 App Store .p8 密钥)仍可读取。
每个服务可设置为:"sandbox": false、"strict"(不允许在临时文件夹和缓存以外写入),或 { "mode": "strict", "network": false, "allowWrite": ["~/data"], "allowExec": ["open"] }。
McpHub sandbox # effective isolation of every server
McpHub sandbox show supabase # the generated profile
此沙盒能有效阻止遭入侵的软件包窃取凭据,但并非完整的容器。
权限、确认与审计
"permissions": {
"default": "allow",
"rules": [
{ "server": "supabase", "tool": "delete_*", "action": "deny", "reason": "production" },
{ "server": "stripe", "tool": "*", "action": "confirm" }
]
}
deny会阻止工具运行;confirm会先通过原生 macOS 对话框请求人工确认,Agent 无法代为确认。autoClassify: true会对所有破坏性工具应用confirm(根据名称和 MCPdestructiveHint注释判断)。McpHub policy test SERVER TOOL会显示适用的规则。McpHub audit --tail 50会显示最近的调用记录,密钥已隐藏,记录位于~/.McpHub/audit.jsonl(会轮换)。
🌐 远程服务与共享 OAuth
"sentry": { "url": "https://mcp.sentry.dev/mcp" },
"aqara": { "url": "https://agent.aqara.com/open/mcp", "headers": { "Authorization": "Bearer ${AQARA_API_KEY}" } }
远程服务通过 Streamable HTTP 直接连接,无需为每个服务单独运行 mcp-remote 进程。McpHub 实现了 MCP 授权规范:发现(RFC 9728 和 8414)、动态客户端注册、PKCE、资源指示器、自动刷新、仅限 HTTPS、令牌绑定到服务 URL 并存储在钥匙串中。
McpHub oauth status # connection state of every remote server
McpHub oauth login sentry # sign in through the browser, once
McpHub oauth logout sentry
McpHub oauth migrate --apply # convert "npx mcp-remote URL" entries, keeping their tokens
📊 控制面板
运行 McpHub dashboard(将打开一个一次性链接,在浏览器中访问控制面板)。
![]() 服务:状态、工具,以及一键启用或停用 | ![]() 所有已编入索引的工具,均可搜索 |
![]() 每个服务的调用次数、错误数和延迟 |
|
📚 库
控制面板中的 库 标签页是 McpHub 内置的官方 MCP Registry:搜索数千个服务,查看信任评分,然后点击 添加。
- 搜索在本地运行。 首次打开库时,McpHub 会在后台下载一次目录(首先是 GitHub MCP Registry 中的热门服务,只需几秒;随后下载完整的官方目录),并将其存入
~/.McpHub/registry-cache/。之后,它只会获取有变更的内容,每天最多一次。搜索即时完成,也支持离线使用。 - 不会增加 Agent 的负担。 目录存放在控制面板和磁盘上。它不会向 Agent 的上下文添加任何工具定义,搜索之间也不会在内存中保留任何内容。
- 安装前查看信任评分(0 到 100 分),并了解每一分的详细依据:
- 已验证的发布者:Registry 会检查命名空间(GitHub 账号或 DNS 域名),McpHub 会检查该发布者是否发布自己的代码;
- 人气和活跃度:GitHub stars、最近更新时间、已归档的代码库;
- 权限扫描:请求的密钥、纯 HTTP 端点、特权 Docker 选项、软件包完整性哈希、未固定的版本,以及服务可执行的操作(运行命令、访问文件、使用浏览器、付款等)。
- 一键添加各种类型的服务:远程服务(Streamable HTTP)、npm(
npx)、Python(uvx)、Docker、.NET(dnx)和.mcpb软件包(下载后进行 SHA-256 校验,并解压到~/.McpHub之外)。 - 密钥会存入 Keychain,绝不会存入
config.json。如果你已有所需密钥(如GITHUB_TOKEN),就会直接复用。 - 远程服务通过 McpHub 的原生 OAuth 登录(点击一次 登录 即可),令牌存入 Keychain。
- 新服务继承所有防护措施:本地代码使用盾牌沙箱(Docker 保留其容器)、首次联系时固定工具并扫描说明、变更时隔离、审计日志、权限和配置文件。
在终端中运行:McpHub registry search postgres、McpHub registry info NAME、McpHub registry install NAME、McpHub registry sync。
Agent 会安装所需内容
这不会添加任何新工具(总计约 30 个令牌)。当 mcphub_search 找不到结果时,Agent 可以调用:
mcphub_call server=mcphub tool=registry_search arguments={"query": "postgres"}
mcphub_call server=mcphub tool=registry_install arguments={"name": "io.github.acme/postgres-mcp"}
服务会在应用相同防护措施的情况下安装,其工具会立即编入索引,调用也会记录在审计日志中。Agent 绝不会处理密钥:如果某个服务需要密钥,Agent 会请你前往控制面板完成设置。在 settings.registry 中进行控制:
"registry": { "agentInstall": "trusted", "minTrust": 60 }
agentInstall:"trusted"(默认值,仅安装信任评分达到 minTrust 的服务)、"any" 或 "off"。
🐧 Linux 服务和同步
McpHub 在 Linux 服务上以相同方式运行,例如与运行在 VPS 上的 Agent 并行运行:
curl -fsSL https://raw.githubusercontent.com/Soflutionltd/McpHub/main/get.sh | bash
sudo apt install bubblewrap # sandbox
McpHub install # systemd --user service
- 使用 bubblewrap 进行沙箱隔离:采用与 macOS 相同的策略。每个机密文件夹(
~/.ssh、~/.aws、~/.McpHub……)都会在内存中替换为空文件夹,每个机密文件都会替换为空文件;strict模式会将整个系统设为只读,但临时文件夹、缓存和allowWrite除外。 - 机密信息存储在
~/.McpHub/secrets.env中,权限模式为 600,对沙箱隔离的服务不可见。McpHub vault set NAME的用法相同。
在不同机器之间迁移设置,不留下任何明文机密信息:
McpHub sync export mcphub.sync.json --secrets # on the Mac
McpHub sync import mcphub.sync.json --secrets # on the server
导出内容是可移植的 config.json:每个机密信息都以 ${NAME} 引用表示(看起来像令牌的纯文本值会从副本中移除),主目录路径会转换为 ${HOME}/...。使用 --secrets 时,机密信息也会一并迁移,并使用口令加密(先用 scrypt,再用 ChaCha20-Poly1305)。没有口令时,文件只会显示机密信息名称。导入时,如果某个服务的程序在该机器上不存在,该服务会以禁用状态导入;解密后的机密信息会存入 Keychain(macOS)或 secrets.env(Linux)。对于脚本,请设置 MCPHUB_SYNC_PASSPHRASE。
⚙️ 配置
所有内容都存储在 ~/.McpHub/config.json 中,并会在守护进程运行时热重载。
{
"servers": {
"supabase": {
"command": "npx",
"args": ["-y", "@supabase/mcp-server-supabase"],
"env": { "SUPABASE_ACCESS_TOKEN": "${SUPABASE_ACCESS_TOKEN}" },
"tools": { "exclude": ["delete_*", "pause_project"] },
"toolDescriptions": { "list_projects": "List my Supabase projects" }
},
"github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"], "readOnly": true },
"sentry": { "url": "https://mcp.sentry.dev/mcp" }
},
"settings": {
"mode": "discover",
"sandbox": "shield",
"toolSecurity": { "pinning": "block", "scan": "block", "newTools": "block" },
"permissions": { "default": "allow", "rules": [] },
"profiles": {
"cursor": { "servers": ["supabase", "git*"], "excludeTools": ["supabase/execute_sql"] },
"review": { "readOnly": true }
},
"codeMode": { "timeoutSecs": 60, "maxCalls": 100 },
"idleTimeout": 300
}
}
每个服务的选项
| 选项 | 效果 |
|---|---|
tools.include / tools.exclude | 要公开或隐藏的工具的 glob 列表 |
readOnly: true | 仅允许读取数据的工具(带有 readOnlyHint,或使用 get、list、search 等读取动词) |
toolDescriptions | 重写向 Agent 显示的工具描述 |
sandbox | false、"shield"、"strict" 或对象(参见 Security) |
inheritEnv | 按名称传递给此服务的守护进程变量 |
pool | 用于并行调用的实例数量 |
url、headers、auth | 通过 HTTP 连接的远程服务(auth:"oauth" 或 "none") |
每个客户端的配置文件
配置文件决定每个客户端可以查看和调用哪些内容:servers 和 excludeServers(glob)、excludeTools("server/tool" glob)以及 readOnly。通过 http://127.0.0.1:24680/mcp/<profile>、/sse?profile=<profile>,或在 stdio 模式下使用 MCPHUB_PROFILE=<profile> 选择配置文件。
模式
discover(默认):Agent 可以看到mcphub_search、mcphub_call和mcphub_run。passthrough:直接将每个工具公开为server__tool(完全可见,但令牌成本更高)。
🧰 CLI
McpHub serve # HTTP daemon (Streamable HTTP /mcp, SSE /sse, dashboard)
McpHub stdio # stdio mode for editors that spawn the process
McpHub install # start at login · McpHub uninstall
McpHub generate # start every server and index its tools
McpHub status | doctor # configuration, cache and health diagnostics
McpHub search "send email"
McpHub dashboard # open the dashboard (one-time link)
McpHub logs # follow the daemon log
McpHub add # interactive server wizard
McpHub vault ... # Keychain secrets: status, list, set, get, rm, migrate
McpHub registry ... # Library: search, info, install, uninstall, sync
McpHub sync ... # export / import to another machine, secrets encrypted
McpHub oauth ... # remote servers: status, login, logout, migrate
McpHub pins ... # tool pinning: status, approve, reset, scan
McpHub sandbox [show S] # server isolation
McpHub policy test S T # which permission applies
McpHub audit --tail 50 # recent calls
McpHub update | version | help
文件:~/.McpHub/(配置、缓存、固定项、审计日志、令牌;用于命名实例的 ~/.McpHub-<name>/)以及 ~/Library/Logs/McpHub/<server>.stderr.log(各服务的错误输出)。
❓ 常见问题
它适用于任何 MCP 服务吗?
是:任何 stdio 服务(command + args)和任何 Streamable HTTP 服务(url)都适用。工具注释、输出架构、分页工具列表以及截至 2026-07-28 的协议版本都会转发。
编辑器重启时会发生什么?
什么也不会发生:守护进程会继续运行,服务会保持就绪,编辑器会重新连接到同一个 URL。
沙盒会导致我的服务无法运行吗?
shield 只会移除对机密信息以及少数可能逃逸出沙盒的程序的访问权限;普通服务仍可正常运行。默认情况下,需要访问整台机器的服务(例如 desktop-commander 这样的 shell 工具)不会放入沙盒;任何服务都可以通过 "sandbox": false 选择退出。
为什么 macOS 更新后会再次请求权限?
macOS 会按签名身份记住权限。若有可用的 Developer ID,make install 会使用它进行签名;预编译二进制文件由 SOFLUTION LTD 签名。临时签名的构建每次构建都会获得新的身份,因此 macOS 会再次请求权限。
如何卸载?
McpHub uninstall
rm ~/.local/bin/McpHub
rm -rf ~/.McpHub
MIT 许可证 · 由 SOFLUTION LTD 制作
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。


