# MCP 服务器 (/zh/docs/mcp-servers)

“MCP 服务器”页面是你检查和调试 [Model Context Protocol](https://modelcontextprotocol.io) 服务器的地方：既包括你自己构建的，也包括你的 AI 客户端所使用的。Echolot 会连接、判断服务器使用哪个协议版本、
检查每一步是否正常、列出它提供的内容，并让你调用任何工具、资源或提示词，将这次调用存储为请求。

用边栏的模块切换器中的 **MCP 服务器**，或按 <kbd>⌘</kbd><kbd>2</kbd> 打开它。边栏列出工作区的服务器；页面显示你选中的那个。

<Shot id="mcp-server-detail" alt="选中 Alpenglow MCP 的“MCP 服务器”页面：服务器的标题区带有“编辑”“监视”和“检查”，“连接正常”卡片，显示协议、Ping 和工具数量的“服务器”卡片，以及“工具”卡片" />

## 用演示服务器试一试 [#try-it-with-the-demo-server]

演示 API 在 `https://demo.echolot.dev/mcp` 上运行着一个 MCP 服务器。Alpenglow 示例工作区已将它作为 **Alpenglow MCP** 包含在内。要将它添加到另一个工作区：

1. 在边栏的**服务器**标题处点按 **+**，选取**添加 MCP 服务器…**
2. 输入一个**名称**，例如 `Alpenglow MCP`，并将**传输方式**设为 **HTTP（Streamable HTTP）**。
3. 输入 **URL** `https://demo.echolot.dev/mcp`，然后点按**添加**。

Echolot 会立即检查该服务器。它提供三个工具（`search_catalog`、`get_product`、`order_status`）、一个资源和一个提示词。[添加服务器](/docs/mcp-servers/adding-servers)介绍本地服务器、
从其他 App 导入服务器、标头和 OAuth。

## 服务器列表 [#the-server-list]

每一行显示服务器的名称、它的连接方式，以及检查之后它有多少个工具：首次检查之前是 `http · demo.echolot.dev`，之后是 `http · 3 tools`，本地命令则是 `stdio · npx`。
绿点表示上次检查通过，红点表示失败。

在服务器上右键点按，可选取**编辑…**、**检查连接**和**删除…** 标题区中的 **−** 按钮会删除选中的服务器。Echolot 会先询问，服务器的文件会移到废纸篓。

每个服务器都是工作区的 `mcp-servers` 文件夹中的一个文件，所以它会随工作区一起通过 Git 传递。机密则不会：参见[值和机密](/docs/mcp-servers/adding-servers#values-and-secrets)。

## 检查服务器 [#checking-a-server]

Echolot 在你打开服务器时检查它，在你点按**检查**时再检查一次。检查会连接、检测协议、ping 服务器，并列出它的工具、资源和提示词。Echolot 以前没有启动过的本地服务器是例外：
它们会等到你审查过它们的命令之后（参见[运行前请审查](/docs/mcp-servers/adding-servers#review-before-running)）。

结果以卡片的形式从上到下显示：

| 卡片 | 显示什么 |
| --- | --- |
| **连接正常**或**连接问题** | 检查的每一步，通过或失败：**服务器已启动**（本地服务器）、**服务器可访问**、**授权**、**协议**、**存活检测**（即 ping）、**工具**、**资源**和**提示词**。失败的步骤会说明出了什么问题，并给出修复建议。 |
| **服务器** | 协议版本（**协议（无状态）** 或**协议（会话）**）、 **Ping** 和**连接**耗时、工具数量、服务器的名称和版本、它的**功能**、服务器列出多个版本时它**支持**的版本，以及它给模型的**指令**。 |
| **工具**、**资源**、**提示词** | 服务器提供的内容，附带每一项的描述。点按其中一项即可调用它。 |
| **模型如何看待此服务器** | 工具列表每一轮占用模型多少开销，以及模型会在哪里出错。参见[工具与质量](/docs/mcp-servers/tools-and-quality)。 |
| **用模型试试** | 模型会为你输入的提示词选择哪个工具。参见[工具与质量](/docs/mcp-servers/tools-and-quality#try-with-a-model)。 |
| **实时** | 被监视的服务器宣布了什么。参见[监视服务器](#watching-a-server)。 |
| **消息** | 上一次检查的每条消息。参见[消息日志](#the-message-log)。 |

服务器要求 OAuth 时，**需要登录**卡片会排在最前面。参见[使用 OAuth 登录](/docs/mcp-servers/adding-servers#signing-in-with-oauth)。

如果服务器把某个工具的定义写错了，会在**工具**步骤中计入，该步骤会失败，并指出该工具以及它的问题。

## 调用工具、资源和提示词 [#calling-tools-resources-and-prompts]

点按卡片中的工具、资源或提示词。会打开一个面板，显示它的名称和参数：

- 带有输入 Schema 的工具会得到一个表单，每个参数一个字段。必填字段的名称后面带有 `*`。将鼠标停在字段上会显示它的描述。将**参数**切换为 **JSON**，可以自己编写参数；
  JSON 会以 Schema 的每个字段开头。
- 提示词的每个参数都有一个字段。
- 资源不需要参数。

点按**调用**或按 <kbd>↩</kbd>。答案会显示在参数下方，并附有耗时。报告错误的工具会以红色显示该错误。

**存储为请求**会将这次调用及其参数存储为工作区中的 MCP 请求，这样你可以再次运行它、添加检查，并在[运行器](/docs/requests/runner)中运行。参见 [MCP 请求](/docs/requests/mcp-requests)。**关闭**（<kbd>esc</kbd>）会不存储就离开。

参数中的值可以使用活动[环境](/docs/workspaces/environments)中的 `{{variables}}`。调用与每个请求经过同一个引擎，所以工作区的代理和证书设置都会生效，每次调用也会保存在[历史记录](/docs/workspaces/history)中。

### 当服务器问你问题时 [#when-the-server-asks-you-something]

在你调用工具的过程中，服务器可以反过来请求某些内容。Echolot 会显示一个表单：

| 表单上写着 | 怎么做 |
| --- | --- |
| **服务器请求信息** | 填写服务器发来的表单并点按**提交**，或选取**拒绝**或**取消**。 |
| **服务器请求你打开一个页面** | 点按**在浏览器中打开**，在那里完成操作，然后点按**完成**。 |
| **服务器请求模型答复** | 表单会显示服务器希望模型回答的消息。你自己写出答复并点按**发送答复**，或点按**拒绝**。 |

只有提出请求的那个服务器会收到你的回答。

## 监视服务器 [#watching-a-server]

点按**监视**可以保持连接打开。按钮会变成**正在监视**，**实时**卡片会按最新在前的顺序显示服务器宣布的内容：它的工具、资源或提示词列表发生变化，以及资源的更新。列表变化时，Echolot 会重新读取它，
所以各卡片始终是最新的。点按**正在监视**即可停止。

## 消息日志 [#the-message-log]

**消息**卡片列出上一次检查的每条 JSON-RPC 消息，并附有自检查开始以来的时间：发送给服务器的消息、收到的消息、连接的事件，以及对本地服务器而言，它写入错误输出的内容。
前 12 条会显示；**显示全部**会列出其余的。

将指针停在某条消息上，可以看到它完整的、格式化后的内容，以及它的方法、ID、它是结果、错误还是通知，还有它的大小。**拷贝**会将它拷贝下来。

检查失败时，这里是要看的地方：本地服务器的错误输出常常会说明它为什么停止，而 OAuth 的问题会显示每个发现步骤。

## 受保护的环境 [#protected-environments]

[受保护的环境](/docs/workspaces/protected-environments)处于活动状态时，**检查**、**监视**和每次调用都会先询问你，因为该服务器可能是生产服务器。该环境处于活动状态时，
Echolot 不会自行检查服务器；需要时请点按**检查**。

## 协议版本 [#protocol-versions]

Echolot 支持两种 MCP：

- **无状态 MCP**，修订版 `2026-07-28`，通过 `server/discover` 发现。**服务器**卡片会显示**协议（无状态）**。
- 基于握手的修订版 `2025-11-25`、`2025-06-18`、`2025-03-26` 和 `2024-11-05`，它们通过 `initialize` 开始会话。卡片会显示**协议（会话）**。

通过 HTTP 时，Echolot 使用 Streamable HTTP。服务器拒绝它时，Echolot 会自行尝试 `2024-11-05` 的较旧的 HTTP+SSE 传输。以 `/sse` 结尾的 URL 会先尝试 HTTP+SSE。

## 通过命令行 [#from-the-command-line]

`echolot mcp check` 在终端或 CI 中运行相同的检查，`echolot mcp sign-in` 则登录要求 OAuth 的服务器。参见 [echolot mcp](/docs/cli/mcp)。

要让 AI 客户端通过 Echolot 自己的 MCP 服务器使用你的工作区，参见[智能体](/docs/ai/agents)。教程[检查和调试 MCP 服务器](/docs/tutorials/inspect-an-mcp-server)会一步步带你走完这个页面。
