添加服务器
通过 HTTP 或作为本地命令添加 MCP 服务器,从其他 App 导入它们,并使用 OAuth 登录。
MCP 服务器要么可通过 HTTP 访问,要么是 Echolot 在你的 Mac 上启动并通过 stdio 与之通信的程序。你可以自己输入一个,也可以导入其他 App 已经知道的服务器。
添加服务器
在边栏的服务器标题处点按 +,选取添加 MCP 服务器… 在空的“MCP 服务器”页面上,添加 MCP 服务器… 按钮作用相同。

为服务器指定一个名称,选取传输方式,填写下面的字段,然后点按添加。Echolot 会存储该服务器、选中它并检查它。服务器标题区中的编辑…(或它的右键菜单)会打开同一个表单; 存储会保留更改并再次检查服务器。可以用编辑 › 撤销撤销编辑。
通过 HTTP
选取 HTTP(Streamable HTTP)。
| 字段 | 填什么 |
|---|---|
| URL | 服务器的端点,例如 https://demo.echolot.dev/mcp。MCP 端点常常以 /mcp 结尾。 |
| 标头 | 随每条消息发送的标头,例如 Authorization,值为 Bearer {{token}}。点按添加可添加一行;复选框可以关闭某一行而不删除它。 |
| OAuth | 仅用于使用 OAuth 登录、且其授权服务器无法自行注册 Echolot 的服务器。参见使用 OAuth 登录。 |
仍然使用较旧的 HTTP+SSE 传输的服务器不需要单独的设置:在这里输入它们的 URL 即可,Streamable HTTP 被拒绝时,Echolot 会回退到 HTTP+SSE。以 /sse 结尾的 URL 会先尝试 HTTP+SSE。
作为本地命令(stdio)
选取本地命令(stdio)。
| 字段 | 填什么 |
|---|---|
| 命令 | 要启动的程序,例如 npx、uvx、node 或二进制文件的完整路径。 |
| 参数 | 它的参数,用空格分隔,例如 -y @modelcontextprotocol/server-everything。含有空格的参数请放在双引号中。 |
| 工作目录 | 程序启动的位置。可选。 |
| 环境 | 程序的环境变量,例如 GITHUB_TOKEN,值为 {{github_token}}。 |
Echolot 使用你的登录 shell 所具有的 PATH 启动程序,所以即使你是从访达或 Dock 打开 Echolot 的,npx、uvx 以及用 Homebrew、nvm、mise 或 Volta 安装的工具也能找到。
如果检查显示服务器已启动这一步失败,它会建议检查该命令是否已安装并在 PATH 上,或者给出它的完整路径。程序的错误输出显示在消息卡片中。
仅限直接下载版
本地(stdio)服务器在直接下载版中运行。App Store 版无法启动程序:它会把服务器保留在工作区中,并在原处显示作为本地程序运行。直接下载版和 echolot 命令行工具可以运行它。
通过 HTTP 的 MCP 服务器在两个版本中都能使用。
运行前请审查
来自工作区文件(比如同事的提交)或来自导入的本地服务器,还没有在这台 Mac 上启动过。Echolot 会显示运行前请审查,列出确切的命令、参数、工作目录和环境, 在你点按信任并检查之前不会启动任何内容。
你的批准属于这台 Mac 上这条确切的命令,绝不会写入工作区。如果命令、它的参数或它的环境发生变化,Echolot 会再次询问。你自己添加或编辑的服务器视为已批准,因为它们是你写的。
值和机密
每个字段都可以使用 {{variables}},在 Echolot 连接时根据活动环境解析。请把令牌和密钥保存在机密变量中,并按名称引用它们:
Bearer {{token}}、{{github_token}}。机密值保留在钥匙串中,绝不会写入工作区,所以服务器的文件可以放心提交。
从其他 App 导入服务器
Echolot 读取 Claude Desktop、Claude Code、Cursor、VS Code、Windsurf 和 Codex 的 MCP 服务器列表。
仅限直接下载版
直接下载版会自行找到这些文件。找到后,边栏底部的在这台 Mac 上找到框会列出每个 App,并带有导入按钮。+ 菜单也在导入自下列出它们, 而选择配置文件… 可以选取任何其他文件。用框上的 × 关闭它;导入仍可通过 + 菜单进行。
比较两个版本Mac App Store 版
App Store 版无法自行读取其他 App 的文件。在 + › 导入自下,选取该 App(例如 Cursor…):打开面板会从该 App 的文件夹开始,由你选取文件。选择配置文件… 可以选取任何其他文件。
比较两个版本| App | 文件 |
|---|---|
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Claude Code | ~/.claude.json,或某个项目的 .mcp.json |
| Cursor | ~/.cursor/mcp.json |
| VS Code | ~/Library/Application Support/Code/User/mcp.json,或某个项目的 .vscode/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
| Codex | ~/.codex/config.toml |
你也可以将这些文件之一拖到窗口上,或在文件 › 导入… 中选取它:Echolot 会像识别其他导入一样识别 MCP 客户端配置。
导入会做什么:
- 文件中的每个服务器都会成为工作区的一个服务器,与原来一样是本地的或 HTTP 的。
- 字面上的机密(
Authorization标头中的令牌、看起来像机密的环境变量中的密钥)会被移入工作区的机密变量,服务器按名称引用它们。导入报告会指出这些变量,绝不会给出值。 - 占位符会变成 Echolot 的值:
${env:NAME}和${NAME}在 Echolot 连接时读取环境变量NAME,VS Code 的${input:id}会变成变量{{id}}。报告会说明要添加哪些变量。 - Codex 的
bearer_token_env_var会变成一个读取该环境变量的Authorization: Bearer标头。 - 原来已关闭的服务器会被导入,并在报告中附带一条备注。既没有命令也没有 URL 的服务器会被跳过。
- 导入的本地服务器会在运行前请审查中等你处理。
使用 OAuth 登录
当服务器回应说它需要 OAuth 时,Echolot 会在页面顶部显示需要登录,其中有授权服务器以及 Echolot 如何获得客户端:
| 客户端显示 | 含义 |
|---|---|
| Echolot 自行注册 | 授权服务器自己接受新客户端。无需设置。 |
| 来自服务器的 OAuth 设置 | 你在服务器的 OAuth 部分输入了客户端 ID。 |
| 需要客户端 ID(编辑…) | 授权服务器不注册客户端。请在那里注册一个,然后在编辑… › OAuth 下输入。 |
点按登录… Echolot 会打开你的浏览器,等待登录结果返回到 127.0.0.1,然后再次检查服务器。令牌会存入钥匙串,绝不会进入工作区。随后卡片会显示已登录,
以及授权服务器、范围、令牌的过期时间,如果是 Echolot 自行注册的,还会显示由 Echolot 注册。已过期但可以刷新的令牌会在下一次调用时刷新。
退出登录会忘记令牌以及 Echolot 注册的客户端。令牌本身在服务器上仍然有效,直到它过期。
服务器表单的 OAuth 部分用于自动发现无法处理的情况:
| 字段 | 留空时的默认行为 |
|---|---|
| 客户端 ID | 自动注册。 |
| 客户端密钥 | 无。请使用机密变量,例如 {{client_secret}}。 |
| 范围 | 按服务器的要求。 |
| 重定向 URI | http://127.0.0.1:<any port>/callback。 |
将该部分留空,则一切都自动发现。标头中的 Authorization 标头优先于 OAuth。
命令行工具用 echolot mcp sign-in 登录:在 Mac 上与 App 共用同一个钥匙串项目,或者为 CI 将登录信息打印为机密。参见 echolot mcp。
检查失败时
连接问题卡片会指出失败的步骤,并给出修复建议:
| 步骤 | 常见原因 |
|---|---|
| 服务器已启动 | 命令没有安装或不在 PATH 上。在“终端”中运行它,看它为什么停止;它的错误输出在消息中。 |
| 服务器可访问 | 该主机和端口上没有任何监听,或 URL 的路径有误(MCP 端点常常是 /mcp)。 |
| 授权 | 没有人登录、凭据不被允许,或服务器需要 Authorization 标头。 |
| 存活检测 | 服务器没有应答 ping。它可能很忙,或不符合规范。 |
| 工具 | 一个或多个工具定义无效;该步骤会指出它们。 |
