Hook your AI assistant up to your Sillon briefs and ask it your questions: what was decided at a client, what is still open, what to prepare before a call. The AI reads your briefs — it never writes to them. You set it up once, in a few minutes, with any tool that speaks MCP: all it needs is an address and your token.
Under the hood, this is the MCP standard (Model Context Protocol) — the standardized connection between an AI and your data. You do not need to know more than that to follow this guide.
Once it is connected, your AI stops answering from memory: it goes and reads the client's brief — the real one, up to date — and cites its source.
A few questions that work well:
The token is a key that proves to your tool that it is allowed to read your briefs — yours, not somebody else's. In the app: Settings → Connect an AI. Give the tool a name (e.g. “Claude”), then tap Generate.
The token is born on your iPhone, but it is on your computer that you paste it. No retyping it by hand: in the app, tap “Send to my computer” — AirDrop sends it to your Mac in one gesture, or use Messages / Notes to yourself. On your computer, keep it handy for step 2.
Whatever your tool, it needs two things: this address, and the token from step 1.
https://api.sillon.eu/mcpAny tool that speaks MCP connects with this — either through its connectors screen (no
terminal), or by pasting the token into an Authorization: Bearer header (a command or a config
file). The tools below are equivalent examples: the only difference between them is the effort they ask of you.
https://api.sillon.eu/mcpclaude in the
OAuth Client ID field (no secret to fill in).claude in the
OAuth Client ID field, Claude refuses to add the connector. If it fails to add, check that
field first.In the app, the connector then shows up in your active tokens under the name oauth:claude —
and is revoked like any other.
Same connector logic as Claude: you set it up in ChatGPT's connector settings.
https://api.sillon.eu/mcp.chatgpt (no secret).The exact screens depend on your version of ChatGPT, but the rule does not change: the address + your token.
In the app, the connector shows up under the name oauth:chatgpt — and is revoked like any other.
A single command, replacing <YOUR_TOKEN> with your token:
claude mcp add --transport http sillon https://api.sillon.eu/mcp \
--header "Authorization: Bearer <YOUR_TOKEN>"To check: claude mcp list. To remove: claude mcp remove sillon.
In the file ~/.cursor/mcp.json (create it if it does not exist), replacing
<YOUR_TOKEN>:
{
"mcpServers": {
"sillon": {
"url": "https://api.sillon.eu/mcp",
"headers": {
"Authorization": "Bearer <YOUR_TOKEN>"
}
}
}
}The Claude desktop app cannot talk to a remote server directly: the small mcp-remote tool
bridges the gap. On Mac, the file lives at
~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"sillon": {
"command": "npx",
"args": [
"-y", "mcp-remote",
"https://api.sillon.eu/mcp",
"--header", "Authorization: Bearer <YOUR_TOKEN>"
]
}
}
}https://api.sillon.eu/mcp and your token in the Authorization: Bearer header. Exactly
where to paste them is written in your tool's MCP documentation.In Settings → Connect an AI, the app lists your active tokens (name, creation date, last
use — never the value). Swipe on a token to revoke it: that tool loses access immediately.
A connector (Claude, ChatGPT) shows up under the name oauth:claude or
oauth:chatgpt and is revoked the same way.
Check the address — exactly https://api.sillon.eu/mcp — and the token, pasted in full, with no
space before or after. When in doubt, generate a new token in the app and paste it again: it is faster than
hunting for the typo.
It is almost always the client ID field left empty: type claude in Claude
(Advanced settings), chatgpt in ChatGPT, then try again. Any other client ID is rejected.
The token has probably been revoked. Look in Settings → Connect an AI: if it is no longer in the list, generate a new one and replace it in your tool (for a Claude or ChatGPT connector: delete the connector and redo step 2).
https://api.sillon.eu/mcpTransport: Streamable HTTP (JSON-RPC 2.0 over POST, no SSE). Supported MCP protocol
versions: 2025-11-25, 2025-06-18 and 2025-03-26. A
GET/DELETE on the endpoint returns 405 — that is expected, the server
never opens a stream.
One credential type only: the MCP token created in the app. Two ways to present it:
Authorization: Bearer <YOUR_TOKEN>, as in the configs above./.well-known/oauth-authorization-server, then /authorize +
/token. PKCE S256 required (plain rejected), static
clients — no DCR, hence the client_id you fill in by hand
(claude or chatgpt; anything else is rejected). The consent page asks you
to paste an existing MCP token (proof of account); the
/token exchange issues an ordinary MCP token, named oauth:<client>, listed and
revocable in the app like any other. The 401 from /mcp points to
resource_metadata (RFC 9728) for clean discovery.Five read tools — list_subjects, search_subjects, get_subject,
get_figure, verify_citations — plus the question queue (list_gaps,
flag_gap, bump): the only place an AI writes, next to the vault, never inside it.
The typical flow: list or search, then read a subject's full brief — and only open a figure if the question
hinges on the visual.
| Tool | What it does |
|---|---|
list_subjects | Lists your subjects (threads of work), newest first. Optional filters: status (active / dormant / closed), area, tag, query. Call it first to discover what exists. |
search_subjects | Keyword search across all the content: title, tags, area, objective, sections (headings included), figure captions and dated log. Accent- and case-insensitive (“resume” finds “résumé”, and the other way round), FR/EN stop words ignored with a fallback for short queries, tokens OR'd (no phrases); deterministic score (title and tags weigh more), sorted by relevance then recency; every status is searched, dormant and closed included; returns per-field excerpts. Args: query (required, ≤ 1,000 chars), limit (1–50). |
get_subject | Full brief by exact slug: objective, open points, next actions, decisions, dated log, trajectory (evolution through git), related subjects — and the list of the subject's figures (approved screenshots: section, anchor line, caption, timecode). Args: slug (required), trajectory_limit, include_related. |
get_figure | Fetches one figure (a screenshot approved by the user) by its exact file key, taken from the figures list returned by get_subject. Returns its metadata (section, anchor line, caption, timecode) then the image. The caption and the text of the brief are authoritative for identifiers and numbers — the image is there for layout and visual state. Args: slug, file (required). |
verify_citations | Checks every [brief §section · date] citation in a deliverable against the current briefs: the brief exists, the section exists, and a line of that section really carries that date. |
/authorize and /token rate-limited per IP.Authorization header is never logged.Authorization: Bearer … header, or generate a new token in the app.initialize.slug returned by list_subjects/search_subjects; an unknown slug returns a clean error, never a crash.