---
title: "MCP"
description: "按用户级或项目级接入 MCP 服务器——数据库、工单系统、内部 API——把 agent 能做的事扩展到你的工具栈上。"
---

> Documentation Index
> Fetch the complete documentation index at: https://colmugx.github.io/cetas/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP

MCP 服务器扩展 agent 能做的事 —— 一个数据库、一个工单系统、一个内部 API。Cetas 从两处读取它们的配置：

```text
<CETAS_HOME>/.cetas/mcp.json     # 用户级
<cwd>/.mcp.json       # 项目级
```

同名的服务器以项目级为准，所以一个仓库可以钉住它需要的那套服务器，而不去动别人 home 目录里的东西。

> **schema 归服务器自己**
>
> 本页故意不定义 MCP 的 JSON schema。服务器字段由 MCP 扩展解释（编辑器提供的服务器则由编辑器解释）。请照着该服务器自己的文档抄形状，而不是照这里的通用示例。

## 什么时候连

| 入口 | 默认 | 改动方式 |
| --- | --- | --- |
| 终端 | 第一个回合时连 | — |
| 编辑器（ACP） | 第一个回合时懒加载 | `CETAS_MCP_MODE=eager` 改为启动时连 |
| 编辑器提供的服务器 | 始终 eager | 这些服务器归编辑器所有 |

默认懒加载，是因为启动不该被你这轮根本不用的服务器卡住。连不上的服务器表现为工具失败，而不是启动失败。

## 各入口能看到哪些服务器

- 终端和编辑器都组合了 MCP 扩展，所以两者都读上面两个文件。
- 编辑器还可以通过 ACP 直接提供服务器定义。那些服务器归编辑器：Cetas 不会写回去，终端也看不到。

## 排查连接问题

```bash
CETAS_DEBUG_MCP_CATALOG=1 cetas-acp
```

会把每个会话在组装时的工具目录 dump 到 `<CETAS_HOME>/.cetas/debug/<session-id>-catalog.json` —— 回答"服务器连上了吗？它到底暴露了什么？"最快的方式。要看线上细节，用 `CETAS_DEBUG_WIRE=1`。

先看目录：一个连上了但没暴露工具的服务器，是服务器的问题，不是 Cetas 的问题，而目录能让这个区分一目了然。

Source: https://colmugx.github.io/cetas/configuration/mcp/index.mdx
