MCP 市场
点击侧边栏底部的设置(也可以在搜索设置…里搜 MCP)。在智能体分组中打开 MCP,再点市场。这里管理的是 MCP 服务器,和插件市场不是同一个页面。 我的服务回到已保存的服务器列表。侧边栏底部显示应用版本。下面的步骤对应 v0.15.2 及之后的版本;最后一节单独说明 v0.15.1 的行为。
三种列表
市场把三份列表合在一起。远程源失败时,内置条目仍然留在页面上。
| 列表 | 从哪里来 | 你可以改什么 |
|---|---|---|
| 内置目录 | 随应用附带的服务器。断网时也会立刻出现。 | 保持随应用附带的内容。这份列表没有地址。 |
| 官方注册表 | 内置源官方注册表,类型是 Registry 协议,地址为 https://registry.modelcontextprotocol.io/v0/servers。 | 它一直留在市场源里。移除出现在其他行上。 |
| 目录 JSON | 你发布在公网 HTTPS 地址上的静态 JSON 文件。 | 在市场源里用类型目录 JSON添加。 |
市场源也可以再加一个 Registry 协议地址。这类地址按官方注册表协议查询,会带上 version、limit,以及 search 或游标。目录 JSON地址只取回一份 JSON,不附加注册表查询参数。
注册表记录要能被本应用安装才会出现。优先 npm,其次 PyPI,然后是公网 HTTPS 的 streamable-http 远端。注册表给出的包版本和启动参数会保留。只提供其他包类型的记录不会出现。PyPI 条目会带上前置说明 Requires uv/uvx on PATH。
远程卡片的标记是源里保存的名称。内置注册表源保存的名称是 Official registry。解析不到名称时,标记为注册表。内置卡片没有远程标记。远程条目若与内置条目使用同一个 id,页面保留内置条目。
搜索 server按名称、说明和作者匹配。分类是全部、开发工具、网络、文档、数据、效率。注册表搜索在注册表服务上执行。目录文件先整份下载,再在本机筛选。加载更多向注册表源再要后续分页。
添加公网目录
- 在 MCP 市场点击市场源。按钮上会带当前数量,例如市场源 · 1。
- 面板说明二者的差别:Registry 型源走官方 MCP 注册表协议;目录型源是符合市场 schema 的静态 JSON 文件。
- 填写源名称。留空时使用主机名。
- 粘贴不含用户名和密码的公网
https://地址。输入框占位是https://…(registry 端点或目录 JSON)。 - 选中目录 JSON。表单默认停在 Registry 协议。目录地址若仍选 Registry 协议,会按注册表去查询,JSON 不会被当成目录读取。
- 点击添加源。
市场只接受没有用户名和密码的公网 HTTPS 地址。回环、私网、链路本地,以及 localhost 这类名字会被拒绝,提示为源地址必须是公网 https 地址。每次请求的时限是 8 秒,响应上限 4 MiB,最多跟随 5 次公网 HTTPS 重定向。最多查询 16 个源,其中始终包括官方注册表。这份列表保存在这台电脑上的本应用里。
私网或明文 HTTP 端点用手动编辑器保存。回到我的服务,点击新增。编辑器接受 http 和 https;未加密的 HTTP 会显示**此 HTTP 连接未加密,凭据和工具调用可能被截获。**参见 ADR 0142 和 ADR 0245。
远程没有任何条目且有源失败时,页面显示官方注册表暂不可达,已显示内置精选,并带上失败的源名称。无论这句提示出不出现,内置服务器都还在。目录失败但注册表仍有结果时,该目录不进入列表,上面那句提示不会出现,注册表条目仍会显示。
查看端点并安装
卡片上是命令行或端点 URL,占位符仍留在原文里,下面是说明。
点击安装。对话框包含:
- 将写入配置:同一条命令行或 URL 模板。这一块不打印 header 原文。
- 条目自带时,显示前置条件:和说明:。
- 需补齐的值:每个已声明的输入各有一个密文输入框。标签是变量名。提示是条目里的说明;可以留空时再附上可留空。目录里写了默认值时,框里会预先填上。
- server 首次连接之前不会执行任何命令。
目录文件里放的是占位符。密钥由你自己填写。安装把这个值写进已保存的服务器(本地命令写入环境变量,HTTP 端点写入 header),然后回到我的服务。目录地址本身不会被改写。保存结果是全局服务器,带全局标记。级别筛选停在项目时,改成全部或全局才能看到这一行。
已安装表示这个 id 已经在全局列表或当前项目列表里,按钮不会再存一份。取消关闭对话框且不保存。必填值缺失时对话框保持打开,提示会点名,例如 Example remote: missing value for API_KEY。可留空的环境变量或 header 若为空,则不会写入。表单会先填入 defaultValue,直到你改动该字段。清掉之后不会自动恢复目录里的默认值:必填字段会以缺失值提示失败,可留空的环境变量或 header 则不会写入。
目录 JSON
把一个 JSON 对象发布到你添加的 HTTPS 地址。加载器读取 servers,用不上的条目会被跳过。一条可用条目都不剩时,这个源失败,内置列表仍在。随应用附带的目录使用 schemaVersion 1。id 符合 [a-z][a-z0-9_-]{0,63},并且以字母开头。填写分类时,只能是 devtools、web、docs、data 或 productivity。
下面这份文件在 v0.15.1 和之后的版本都能安装:
{
"schemaVersion": 1,
"updatedAt": "2026-09-22",
"servers": [
{
"id": "example-remote",
"name": "Example remote",
"description": "Public HTTPS MCP endpoint. The file keeps a placeholder; you supply the key.",
"transport": "http",
"url": "https://mcp.example.com/mcp",
"headers": {
"Authorization": "Bearer ${API_KEY}"
},
"requiredEnv": [
{
"name": "API_KEY",
"description": "Your key for this service."
}
]
}
]
}v0.15.2 及之后的占位规则:
- 命令、参数、环境变量值和端点 URL 只展开
${NAME},NAME符合[A-Z_][A-Z0-9_]*。URL 里的{name}保持原样。stdio 的requiredEnv名称用同一套大写规则,命令里不能出现..。 - 没有
headerBindings的 HTTP header 还会展开requiredEnv里列出的{name}。HTTP 输入名可以包含小写。未声明的{name}保持字面量。 - 只要写了
headerBindings,包括{},就只替换该 header 映射里点名的记号。{ "input": "api_key" }会要求填写。{ "value": "literal" }直接写入这段文字并且不再询问,写入的文字也不会再被当成占位符。映射里没有的记号在每个 header 上都保持字面量,包括自身没有映射的 header。对应的输入名仍然要写进requiredEnv。 optional: true表示字段可以留空。defaultValue是你改动之前表单里显示的值。
要使用注册表那种 {name} 写法时,header 像下面这样。v0.15.2 及之后会提示填写 api_key。v0.15.1 会跳过这条,因为 api_key 不是大写的环境变量名。该版本还会忽略 headerBindings,并让 {api_key} 保持原样:
{
"id": "example-header",
"name": "Example header",
"description": "Header variable declared for this header only.",
"transport": "http",
"url": "https://mcp.example.com/mcp",
"headers": {
"Authorization": "Bearer {api_key}"
},
"headerBindings": {
"Authorization": {
"{api_key}": { "input": "api_key" }
}
},
"requiredEnv": [
{
"name": "api_key",
"description": "Your key for this service."
}
]
}文件里放占位符。每个人在需补齐的值里填写自己的密钥。
移除市场源
打开市场源。官方注册表会留下。其他每一行都有移除,用来停止以后再查询该地址。已经保存在我的服务里的服务器仍然保留。
移除已安装的服务器
回到我的服务。在该行打开 {name} 的操作,选择移除。菜单项会变成再点一次删除。再点一次才会删除这台服务器。
你正在使用的版本
v0.15.2、v0.15.3 和当前源码使用上面的占位规则。v0.15.1 在命令、参数、环境变量值、URL 和 header 里只识别大写的 ${NAME}。在那个版本里,{api_key} 是普通文字,因此这样写的注册表 header 不会出现需补齐的值,保存后的 header 里仍然带着花括号。那里的 headerBindings 会被忽略;requiredEnv 使用小写名称时,整条会被跳过。
上面使用 ${API_KEY} 的目录,在 v0.15.1 和之后的版本都能安装。v0.15.1 之后,注册表 header 只会为它自己声明的变量弹出输入,URL 里的 {name} 保持字面量。这些版本对市场源的公网 HTTPS 限制是同一条(ADR 0245)。