概述
mcphub 二进制同时是 CLI 入口。不带参数调用 mcphub 启动服务器(保持原有行为);带子命令则通过 HTTP API 操作本地或远端 hub。
登录
0600:
- macOS/Linux:
$XDG_DATA_HOME/mcphub/credentials.json(默认~/.local/share/mcphub/credentials.json) - 兼容旧路径:若
~/.mcphub/credentials.json已存在则继续使用
staging、prod 等:
| 覆盖方式 | 来源 |
|---|---|
--url、--token、--bearer 参数 | 单条命令 |
MCPHUB_URL、MCPHUB_TOKEN、MCPHUB_TOKEN_KIND 环境变量 | shell / CI |
credentials.json 中的 active profile | 默认 |
全局参数
| 参数 | 用途 |
|---|---|
--url <url> | 覆盖 active profile 的 URL |
--token <token> | 覆盖 active profile 的 token |
--bearer | 将 --token 当作 bearer key 使用(默认是 JWT,走 x-auth-token) |
--profile <name> | 选择非 current 的 profile |
--json | 输出 JSON 而非人类可读表格 |
--debug | 出错时打印堆栈 |
子命令
servers
groups
<group> 可填 UUID 或人类可读名称,CLI 会先列表再解析成 id。
keys
管理 bearer 密钥。管理员可管理系统级和用户级密钥;普通用户可管理自己的用户级密钥。
create 创建后服务端生成的 token 只会显示一次——记得当场复制。
tools —— 发现可调用的工具
tools 是 call 的发现索引:回答有哪些 tool、每个 tool 接受什么参数、归属哪个 server——不用手工解析 servers list 的嵌套 JSON。
tools get 的文本视图会先列参数表(带 required 标识),再打印完整 JSON schema,最后给一条可直接复制的 mcphub call ... 样例(必填参数已占位)。
call
调用 active profile 对应 hub 上的 MCP 工具。默认走 /mcp/$smart,由智能路由挑选工具。推荐的 agent 工作流:tools list → tools get → call。
call 的路由优先级:--smart > --server <name> > --group <name> > 默认($smart)。三种最终都走 /mcp/<slug> 同一个端点;--server 是和 tools list/tools get 输出天然对齐的写法。
key=value 强转规则:
| 形式 | 结果 |
|---|---|
n=42、f=1.5 | 数字 |
b=true、b=false | 布尔 |
x=null | null |
obj={"a":1}、arr=[1,2] | JSON 解析 |
payload=@./body.json | 从文件加载 JSON |
phone=0123 | 保留为字符串 "0123"(保护前导零) |
| 其他 | 字符串 |
--no-coerce 强制所有值按字符串处理。
export
下载 hub 当前的 mcp_settings.json。
discover / install(市场)
当 hub 开启了 systemConfig.discovery.enabled = true,CLI 即可浏览公共市场并把 server 装到自己的 hub 或客户端配置文件里。
--type选择安装方式(npm、docker、uvx、pip、binary)。不指定则由 hub 选第一个可用;指定但不存在时 CLI 会列出可用类型。--env KEY=VAL(可重复)注入环境变量——预声明的键和新增的键都会合并进最终env。--to file采用原子写(临时文件 + rename),中断不会破坏客户端配置。
退出码
| 退出码 | 含义 |
|---|---|
0 | 成功 |
1 | 用法错误(参数缺失、未登录等) |
2 | API 错误(hub 返回非 2xx) |
Agent 自动化范式
所有命令都支持--json,并读取 MCPHUB_URL / MCPHUB_TOKEN,因此 agent 可以纯 JSON 驱动整个”发现 → 调用”流程:
tools list --json 的响应是扁平的({server, serverStatus, name, description, enabled}),agent 一次过滤就能定位目标,不必再下钻 servers[*].tools[*]。
脚本与 CI
CLI 对 JSON 友好:所有命令都支持--json;MCPHUB_URL / MCPHUB_TOKEN 在 CI 中可跳过凭据文件。
MCPHUB_TOKEN_KIND=bearer(或加 --bearer)。注意:只有 accessType=all 的系统级 bearer key 才能调用 /api/* 管理接口;受限 scope 的系统级密钥和用户级密钥仅用于 MCP transport。