# Giving agents a project's documents over MCP

> Cydonia serves a project's articles, boards and sessions as MCP tools on a loopback port. Why there is no token, why write tools are hidden rather than refused, and how an agent outside the app connects.

An agent that finishes a task and leaves its findings in scrollback has left them nowhere. Cydonia's answer is to give every agent it runs the project's own documents as tools: it reads the board, picks up a card, writes up what it found as an article and moves the card. The surface is MCP, served by the app itself.

## One server for the app

Cydonia runs one MCP server, speaking Streamable HTTP at `http://127.0.0.1:7457/mcp`, on loopback only. If the port is taken, by a second Cydonia for instance, it takes the next free one up to 7472, and **Settings › MCP** shows the address in use.

The tools are namespaced by what they work on: `project_*`, `article_*`, `board_*`, `session_*`, `browser_*`, and `workspace_focus` for what the window is showing. The pane and the agent take the same route. Moving a card from the board's UI and calling `board_move_card` run the same named operation on the board, so the two cannot drift.

## No token

There is no token. A process running as you can already write the files these tools write, so a token would only stop programs that could go around it. The one thing loopback does not stop is a web page in your browser making requests to `127.0.0.1`, so any request carrying an `Origin` header is refused.

## Hidden, not refused

Writing is a switch in Settings, and deleting is a narrower one read after it. When writing is off, the write tools are left out of `tools/list` rather than refused when called. A tool an agent can see is one it will spend a turn trying. Leaving it out costs nothing, and the agent plans with the tools it actually has.

## Sessions know their project

A session Cydonia starts is told its project, so its tools need no directory argument. A client added by hand reaches every project the app has open, and names one per call with `project`.

Entries carry stable numbers, `#12`, and every tool that takes an article, a board or a session takes the reference too. `#12:5-7` reads lines 5 to 7 of an article, `#43:5-7` turns 5 to 7 of a session. Agents write these into what they produce, so a card can point at the session that worked it.

## Lists, all or nothing

The tools that change several things at once take a list: several cards to move, several columns to add. Every name is resolved before anything is written, so a list with a typo in it changes nothing. An agent never has to clean up half of a batch.

## From outside the app

Any MCP client can connect, not only the agents Cydonia starts. From Claude Code in a terminal:

```sh
claude mcp add --transport http cydonia http://127.0.0.1:7457/mcp
```

Then ask it to read a board, or to write its plan as an article in a project Cydonia has open.

The full list of tools is in the [MCP docs](https://cydonia.sh/docs/agents/mcp/).
