Echolot
命令行与 CI

echolot mcp

检查 MCP 服务器以及模型如何看待它们的工具,登录它们,向 AI 智能体提供工作区,并设置 MCP 客户端。

echolot mcp 在两个方向上使用 MCP 服务器。check 和 sign-in 与别人的服务器通信,就像 MCP 服务器页面所做的那样。serve 和 setup 则让你的工作区成为一个 MCP 服务器, 使 Claude Code 或 Cursor 等 AI 智能体可以列出、发送和测试它的请求;参见智能体。

子命令作用
echolot mcp check连接到 MCP 服务器并列出它提供的内容;--quality 报告模型如何看待它的工具。
echolot mcp sign-in登录工作区中要求 OAuth 的 MCP 服务器。
echolot mcp sign-out在这台 Mac 上忘记该登录。
echolot mcp serve通过 MCP 向智能体提供工作区。
echolot mcp setup打印如何将 MCP 客户端连接到工作区。

echolot mcp check

echolot mcp check [--url <url>] [--header <header> ...] [--env <env> ...] [--verbose] [--timeout <seconds>] [--quality] [--strict] [--as <provider>] -- [<command> ...]

用 --url 给出 Streamable HTTP 端点,或在 -- 之后给出启动 stdio 服务器的命令。Echolot 会判断服务器使用的是无状态协议(2026-07-28)还是带握手的早期协议,并列出它的工具、 资源和提示词:

echolot mcp check --url https://demo.echolot.dev/mcp
alpenglow-mcp 1.5.0: MCP 2025-11-25 (session, initialize)
  connected in 263 ms, round trip 54 ms
  instructions: The Alpenglow demo shop from docs.echolot.dev. Read-only: search the catalog, look up products and orders.
3 tools
  search_catalog: Searches the Alpenglow catalog by text and returns matching products with price and stock.
  get_product: Returns one product by SKU, with its price, weight, rating and stock per warehouse.
  order_status: Returns an order's status, total and shipping estimate.
1 resource
  alpenglow://catalog/categories  categories
1 prompt
  pack_for_a_trip: Suggests gear for a trip.

stdio 服务器:

echolot mcp check -- npx -y @modelcontextprotocol/server-everything
echolot mcp check -e API_KEY=demo -- uvx some-mcp-server --flag

模型如何看待这些工具

--quality 会补充模型从服务器得到的内容:工具列表每一轮在各提供商的上下文中占用多少(估计值)、占用最多的工具,以及模型会在哪里出错,例如 Schema 问题和不清楚或相互重叠的描述。 它与 App 中的模型如何看待此服务器是同一份报告;参见工具与质量。

echolot mcp check --url https://demo.echolot.dev/mcp --quality
How a model sees the tools (estimates)
  Anthropic      572 tokens a turn, 0.3% of a 200k context
  OpenAI         166 tokens a turn, 0.1% of a 200k context
  Google Gemini  225 tokens a turn, 0.1% of a 200k context
  largest: search_catalog 98, get_product 66, order_status 62
Nothing a model would stumble over.

--strict 让出现问题(不是警告或注明)时以 1 退出,用于 CI。--as anthropic、--as openai 或 --as gemini 只打印该提供商的 API 所接收的工具列表。

选项含义
--url <url>Streamable HTTP 端点,例如 http://127.0.0.1:3000/mcp。
-H、--header <header>以 'Name: value' 形式给出的 HTTP 标头,用于 --url。可重复。
-e、--env <NAME=value>stdio 服务器的环境变量。可重复。
-v、--verbose将发送和接收的每条消息打印到标准错误。
--timeout <seconds>等待每个应答的秒数。默认 30。
--quality报告模型如何看待这些工具:它们在各提供商处的开销、Schema 和描述问题。
--strict与 --quality 搭配:有问题时以 1 退出。
--as <provider>只打印提供商的 API 所接收的工具列表:anthropic、openai 或 gemini。

echolot mcp sign-in 和 sign-out

echolot mcp sign-in <server> [--workspace <workspace>] [--env <env>] [--force] [--print] [--verbose]
echolot mcp sign-out <server> [--workspace <workspace>]

<server> 是服务器在工作区的 mcp-servers 文件夹中的文件名,不带 .toml。登录会打开你的浏览器,并在 127.0.0.1 上等待重定向:

echolot mcp sign-in alpenglow-mcp -w Alpenglow.echolot
  • 在 Mac 上,登录信息存入钥匙串,与 App 共享:这台 Mac 上的 App 和 echolot run 都会使用它。
  • 在其他地方,或使用 --print 时,Echolot 会将它打印为一行 ECHOLOT_SECRET_…='…'。请把该值保存为 CI 机密,并在 Echolot 运行的地方设置该变量。 它包含刷新令牌:请像对待密码一样对待它。
  • ECHOLOT_BROWSER 指定另一个用来打开登录页面的命令。
选项含义
-w、--workspace <folder>工作区文件夹。默认:当前文件夹。
--env <env>用其变量来解析服务器设置的环境。
--force即使已有可用的登录,也重新登录。
--print将登录信息打印为 ECHOLOT_SECRET_ 变量,用于 CI。
-v、--verbose将每个登录步骤打印到标准错误。

sign-out 会从钥匙串中移除该登录。没有钥匙串时,没有什么可忘记的:请改为移除该变量。

echolot mcp serve

echolot mcp serve [<workspace>] [--env <env>] [--policy <policy>] [--toolsets <toolsets>] [--http <port>] [--verbose] [--headless] [--trust-workspace-policy]

通过 MCP 向智能体提供工作区。智能体通过与 App 相同的工具,列出、读取、发送和运行它的请求,按句柄查询响应,并创建或更改请求。将它作为 stdio 服务器添加到客户端,命令为:

echolot mcp serve /path/to/Alpenglow.echolot

App 已打开时。 当 Echolot App 打开了该工作区并允许智能体访问(设置 › 智能体)时,客户端会被转接到 App。随后 App 会请你批准需要批准的操作,你也能看到智能体做了什么。 --headless 则无论如何都自行提供服务。

独立运行。 没有 App 时,没有人可以询问,所以策略本该询问的操作会被拒绝:

策略运行什么
standard(默认)读取和安全的发送(例如 GET)。其他发送、工作区不认识的主机以及对工作区的更改会被拒绝。
readonly仅读取。
permissive发送以及对工作区的更改。删除会被拒绝,工作区不认识的主机和发送到受保护的环境也会被拒绝。

机密从 ECHOLOT_SECRET_ 变量和这台 Mac 的钥匙串中解析,永远不会到达智能体。在无界面模式下,服务器只运行启动时工作区已有的脚本。

工作区自己的规则。 workspace.toml 中的 [agents] 部分可以为该工作区关闭智能体,或按操作类型让策略更严格。会放宽策略的规则只有在使用 --trust-workspace-policy 时才算数; 否则 Echolot 会说明它忽略了哪些规则。新主机和受保护的环境永远不会被直接允许。这些键参见工作区文件。

工具集。 requests 始终提供。--toolsets 添加更多组,用逗号分隔,或用 all:

工具集提供的工具用于
requests列出、读取、创建和发送请求;响应、历史记录、GraphQL、正在运行的模拟服务器。始终开启。
flows运行提供给智能体的流程,并回答它们提出的问题。默认开启。
workspace创建、重新命名、移动、复制和删除文件夹与请求;文件夹的认证;工作区变量;将收集到的数据存储为文件。
environments创建、更改和删除环境。
specs读取、编写 OpenAPI 规范并对其做 Lint;将文件夹链接到规范并应用更改。
mocks创建、更改和删除模拟服务器及其路由,使用示例数据;根据路由创建请求;将响应存储为示例。
mcp-servers添加、更改、检查和删除 MCP 服务器。
history打开、比较和删除过去的交换记录。
flow-editing读取、绘制和删除流程;try_flow 在用户批准后运行一次(无界面时没有人可以批准,所以会被拒绝)。

任何工具集都从不向智能体提供智能体策略、代理、证书、认证设置和脚本。

通过 HTTP。 --http <port> 在 127.0.0.1 上提供 Streamable HTTP,而不是 stdio(0 表示选取一个空闲端口)。由于这台 Mac 上的任何程序都能访问回环端口, 客户端必须发送一个 Bearer 令牌,Echolot 会将它打印出来:

echolot mcp serve Alpenglow.echolot --http 0 --policy readonly
Echolot MCP server for Alpenglow at http://127.0.0.1:52817/mcp (policy readonly)
Clients send the header  Authorization: Bearer 6f1c…

设置 ECHOLOT_MCP_TOKEN 可以自己指定令牌。

选项含义
--env <env>调用未指明环境时使用的环境。
--policy <policy>standard、readonly 或 permissive。默认 standard。
--toolsets <list>要提供的工具组,用逗号分隔,或用 all。默认 requests,flows。
--http <port>在 127.0.0.1 的此端口上提供 Streamable HTTP(0 表示选取一个),而不是 stdio。
-v、--verbose将每条消息打印到标准错误。
--headless即使 Echolot App 打开了此工作区,也自行提供服务。
--trust-workspace-policy让工作区的 [agents] 规则不仅能收紧策略,也能放宽策略。

echolot mcp setup

echolot mcp setup <client> [--workspace <workspace>] [--name <name>] [--version <version>]

打印客户端为某个工作区启动 echolot mcp serve 所需的内容。它不会更改任何内容;请把输出复制到客户端读取的位置。输出中的命令是你所运行的 echolot 的路径。

客户端打印
claude-code要运行的 claude mcp add --scope user … 命令。
claude-desktop用于 Claude Desktop 配置的 mcpServers 条目。
cursor用于 Cursor 的 mcp.json 的 mcpServers 条目。
vscode用于 VS Code 的 mcp.json 的 servers 条目。
codex用于 Codex 的 config.toml 的 [mcp_servers.…] 表。
mcpbClaude Desktop 扩展的 manifest.json,其 server/echolot 就是此二进制文件。不带 --workspace 时,扩展会在安装时请你指定一个。
echolot mcp setup claude-code -w Alpenglow.echolot
claude mcp add --scope user echolot-alpenglow -- /usr/local/bin/echolot mcp serve /Users/you/Alpenglow.echolot
echolot mcp setup cursor -w Alpenglow.echolot
{
  "mcpServers" : {
    "echolot-alpenglow" : {
      "args" : ["mcp", "serve", "/Users/you/Alpenglow.echolot"],
      "command" : "/usr/local/bin/echolot"
    }
  }
}
选项含义
-w、--workspace <folder>工作区文件夹;省略时 MCPB 会请你指定。
--name <name>服务器在客户端中的名称。默认 echolot-<workspace>。
--version <version>写入 MCPB 清单的版本。默认:此工具的版本。

App 中的设置 › 智能体会为你设置同样的这些客户端;参见智能体。

退出码

退出码何时
0已连接、已登录、一直提供服务直到停止,或已打印。
1check 无法连接或检查失败、--quality --strict 发现问题,或 sign-in 失败或服务器没有要求 OAuth。
64选项有误、策略或客户端未知、环境未知,或工作区的 [agents] 部分关闭了智能体。

本页内容