Seth · MCP
ČeskyAnother chair at the table, not a second head. Anyone who speaks MCP may talk to Seth for you about what you are building. Seth knows you from the site. He does not watch files. seth_talk sees only what the agent writes (8000 characters max). Journal, commitments, and Moments are separate tools — from the journal only what you opened to Seth, from Moments only what you already pinned.
MCP is on. A server-side switch (SETH_MCP_ENABLED) can close it — then POST /api/mcp answers 503 mcp_disabled. You can still prepare a key in Settings ahead of time. Public overview: /mcp.
SETH_MCP_TOKEN. Never commit it.{
"mcpServers": {
"seth": {
"url": "https://sethapp.com/api/mcp",
"headers": {
"Authorization": "Bearer ${env:SETH_MCP_TOKEN}"
}
}
}
}Prefix sk_seth_mcp_. An Agent API key (sk_seth_live_) will not work here — and the reverse is also true. Other clients: same URL, same Bearer — the config shape differs.
seth_talk spends a normal credit (1 message = 1 credit) plus the per-key daily cap. No credit = 402. Cap hit = 429. seth_status does not charge.
seth_thread pulls the last lines from that Seth window — including what you typed on the site. No credit. Cap 30 messages. Do not pass a session id. Turn it off on the key in Settings.
seth_journal_read returns what Seth sees from your journal: only entries marked “Seth can read”, as your summary (or a 200-char preview) — never the full entry. Dreams and locked entries never. Turning thread read off on the key turns journal read off too. No credit. Default last 8, optional days (max 90). Do not pass a user id.
seth_commit can list / create / update / complete on the same table as the site. Writes (create / update / complete) work only when you have the commitment loop and “Seth writes first” on — otherwise 403 commitment_loop_off. List always works. When the agent marks done, Seth follows up. Same Art. 9 gate as talk. No credit. Do not pass a user id.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "seth_journal_read",
"arguments": { "limit": 8, "days": 30 }
}
}
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "seth_commit",
"arguments": {
"action": "create",
"text": "Call dad this weekend",
"due_hours": 72
}
}
}seth_moments returns recent Moments from the same chat_moments table as /moments on the site: quote and optional note — never a user id or session id. Turning thread read off on the key turns moment read off too (403 thread_read_disabled). No credit. Default last 8, optional days (max 90). Do not pass a user id.
seth_moment pins an insight on the same table you see in the app. quote 1–2000 characters, optional note (max 500). Same Art. 9 gate as talk. Thread read off does not block a pin — it hides reads, not writes. Same cap as the website: 10 pins per minute per owner, shared with the site (429 rate_limited). No credit — the website pin does not charge either. Do not pass a session id or user id; if the key has a bound MCP window, the row links to it, otherwise session_id is empty (same as a notice pin).
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "seth_moments",
"arguments": { "limit": 8, "days": 30 }
}
}
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "seth_moment",
"arguments": {
"quote": "The pattern is not the deadline — it is waiting until someone else names it.",
"note": "Pinned from the MCP window after we named the stall."
}
}
}| HTTP | Code | When |
|---|---|---|
| 401 | missing_token / invalid_token / key_revoked / wrong_key_class | Missing, malformed, revoked, or Agent API key used here |
| 402 | no_credits | Owner credit pool is empty |
| 403 | consent_required / forbidden_origin / thread_read_disabled / commitment_loop_off | Special-category consent missing, Origin rejected, key read off (thread + journal + moments), or owner has the commitment loop off |
| 404 / 409 | not_found / not_live / already_resolved | seth_commit id missing, already closed, or not open |
| 429 | budget_exceeded / rate limit / rate_limited | Daily token cap, 20/min per key, or 10 pins/min per owner (seth_moment, shared with the website) |
| 503 | mcp_disabled / service_unavailable | Window is off, or temporary infra issue |