> For an agent: the map of this documentation is at https://escouade.io/en/mail/docs/llms.txt; every page exists in Markdown, at the same address with `.md` appended.

# Open source: the tools are open, the server stays closed

> What connects Escouade Mail is open, under the MIT licence. The server enforces the sending rules: it stays closed.

GitHub organisation: <https://github.com/escouade-io>

## Seven repositories, produced from the server's registry.

They are online on the escouade-io GitHub organisation. They only work with an Escouade Mail key.

| Repository | What it holds | Status |
|---|---|---|
| [`escouade-mail-mcp`](https://github.com/escouade-io/escouade-mail-mcp) | How to connect the MCP server, client by client, with configuration files ready to copy. The server contract: every tool, its schemas, its access. | public |
| [`escouade-mail-python`](https://github.com/escouade-io/escouade-mail-python) | One method per server operation, same names and arguments as the MCP tools. No dependencies. Package: PyPI: escouade-mail. | public |
| [`escouade-mail-node`](https://github.com/escouade-io/escouade-mail-node) | The same operations, typed, for Node. No dependencies. Package: npm: escouade-mail. | public |
| [`escouade-mail-cli`](https://github.com/escouade-io/escouade-mail-cli) | One command per operation, from a terminal or from an agent that runs commands. Results and refusals in JSON. Package: npm: escouade-mail-cli. | public |
| [`escouade-mail-skills`](https://github.com/escouade-io/escouade-mail-skills) | Seven recipes in the Agent Skills format: get started, write, follow replies, approve drafts, send from your domain, prospect, call the API. | public |
| [`escouade-mail-plugins`](https://github.com/escouade-io/escouade-mail-plugins) | The MCP server, the key and the recipes, installed at once in Claude Code. | public |
| [`escouade-mail-examples`](https://github.com/escouade-io/escouade-mail-examples) | Five examples to run, in Python and for Node: sign up, write, read replies, connect your domain, approve. | public |
| server | The server: sending rules, send queue, bounces. | private |

## A registry of operations, and its projections.

The server keeps a registry of operations: a name, a description, an input schema, an output schema, a permission. The MCP tools, the HTTP API, `/llms.txt` and `/openapi.json` come out of it.

The open repositories are produced from that same registry. A tool can neither invent an operation nor forget one.

```text
registry of operations   server, closed
│
├─ MCP              /mcp · /connect
├─ HTTP             POST /v1/{operation}
├─ for agents       /llms.txt · /openapi.json
│
└─ open tools       github.com/escouade-io
   MCP · Python SDK · TypeScript SDK
   command line · skills
   Claude Code plugin · examples
```

These two references can be read without a key: `https://api.subagent.fr/llms.txt` and `https://api.subagent.fr/openapi.json`.

## The sending rules stay on the server. The rest is open.

- **Open**: what you paste on your side (MCP configuration, SDKs, command line, skills, plugin, examples).
- **Closed**: what decides whether an e-mail leaves (warm-up, daily quota, working hours, human approval, unsubscribe, circuit breaker).
- **Licence**: MIT, for every open repository.
- **Condition**: an Escouade Mail key. The tools only work with the service.

See also: [Connect my agent](https://escouade.io/en/mail/docs/brancher.md) · [Documentation](https://escouade.io/en/mail/docs/index.md) · [llms.txt](https://escouade.io/en/mail/docs/llms.txt)
