> ## Documentation Index
> Fetch the complete documentation index at: https://chatcli.edilsonfreitas.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP Server — ChatCLI como servidor (e ACP)

> chatcli mcp-server expõe o ChatCLI como servidor MCP sobre stdio: não só chat, mas o agent loop, o coder e as built-in tools. chatcli acp expõe o ChatCLI via Agent Client Protocol para editores.

Além de ser um **cliente** MCP (consumir ferramentas externas — ver [MCP Integration](/pt/features/mcp-integration)), o ChatCLI também pode **ser um servidor**: outros agentes/clientes podem dirigir o ChatCLI via protocolo.

<Info>
  São dois subcomandos externos, ambos falando JSON-RPC sobre **stdio** (stdin/stdout carregam o protocolo; todo log vai para o file logger):

  * **`chatcli mcp-server`** (alias `mcp-serve`) — servidor **MCP** (Model Context Protocol).
  * **`chatcli acp`** — servidor **ACP** (Agent Client Protocol), para editores.
</Info>

***

## `chatcli mcp-server`

Expõe o ChatCLI como servidor MCP (revisão `2024-11-05`). O diferencial: ele **não é só Q\&A** — expõe a funcionalidade real do ChatCLI como ferramentas MCP.

### Ferramentas expostas

| Ferramenta                                        | O que faz                                                                                                                                                                                 |
| ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ask_chatcli`                                     | Pergunta ao modelo (chat, sem tools). Mantém histórico por `session` no servidor.                                                                                                         |
| `agent_task`                                      | Roda o **agent loop (ReAct) completo** numa tarefa — o agente usa autonomamente suas tools (read, search, shell via coder, web, memory) e retorna o transcript. Para trabalho multi-step. |
| `coder_task`                                      | Roda o **coder loop** numa tarefa (focado em ler/editar código no workspace).                                                                                                             |
| `read`, `search`, `tree`, `websearch`, `webfetch` | As **built-in tools curadas** (read-only/seguras), expostas individualmente.                                                                                                              |

```text theme={"system"}
ask_chatcli(prompt, session?)     → resposta de chat
agent_task(task, session?)        → transcript do agente
coder_task(task, session?)        → transcript do coder
read(args) / search(args) / ...   → resultado da tool
```

<Note>
  O agente e o coder renderizam para o stdout; o backend captura essa saída durante a execução e a devolve como resultado da ferramenta. O servidor JSON-RPC mantém sua própria cópia do stdout original, então o canal de protocolo nunca é corrompido.
</Note>

### Backend (provider/modelo)

O backend usa `LLM_PROVIDER` / `LLM_MODEL` (ou a config global) para escolher o modelo. Se a inicialização completa do ChatCLI falhar, o chat (`ask_chatcli`) ainda funciona; agent/coder/tools ficam indisponíveis e retornam erro claro.

### Configurando um cliente MCP

```json theme={"system"}
{
  "mcpServers": {
    "chatcli": {
      "command": "chatcli",
      "args": ["mcp-server"],
      "env": {
        "LLM_PROVIDER": "CLAUDEAI",
        "ANTHROPIC_API_KEY": "sk-ant-...",
        "LLM_MODEL": "claude-sonnet-4-6"
      }
    }
  }
}
```

***

## `chatcli acp`

Expõe o ChatCLI sobre o **Agent Client Protocol** (stdio): `initialize`, `session/new`, `session/prompt`, com as respostas do agente transmitidas como `session/update` (streaming). Use em editores que falam ACP.

```bash theme={"system"}
chatcli acp
```

***

## Veja também

* [MCP Integration](/pt/features/mcp-integration) — ChatCLI como **cliente** MCP
* [Variáveis de Ambiente](/pt/reference/environment-variables) — `LLM_PROVIDER`, `LLM_MODEL`
* [Referência de Comandos](/pt/reference/command-reference) — subcomandos externos
