Skip to the content.

MCP server

synomem-mcp is an actor-bound stdio server built with the official TypeScript SDK. It opens no network listener.

SYNOMEM_ACTOR_ID=codex
SYNOMEM_ACTOR_KIND=agent
SYNOMEM_ACTOR_NAME=Codex

Malformed or missing identity configuration fails startup. The server inserts the bound identity into mutations; callers cannot override it in tool arguments.

Registration

codex mcp add synomem \
  --env SYNOMEM_ACTOR_ID=codex \
  --env SYNOMEM_ACTOR_KIND=agent \
  --env SYNOMEM_ACTOR_NAME=Codex \
  -- synomem-mcp

Add --env SYNOMEM_HOME=/absolute/shared/path when not using ~/.agents.

When that home selects a remote backend, the same stdio MCP command uses the remote API and creates no local SQLite database or projections. Run synomem auth login --actor-id <id> --client-id <id> first, or provide SYNOMEM_ACCESS_TOKEN to the MCP process as a secret environment variable. The configured --actor-* values select the matching OS credential entry and describe the expected binding, but the hosted service remains authoritative and derives actor/workspace permissions from the token; request bodies cannot override them.

Tools

Shared bounded reads:

synomem_list             synomem_get
synomem_changes          synomem_inbox

Purpose-specific writes:

synomem_kudos_give       synomem_kudos_acknowledge   synomem_kudos_revoke
synomem_memo_send        synomem_memo_read            synomem_memo_archive
synomem_note_create      synomem_note_revise          synomem_note_archive
synomem_todo_create      synomem_todo_update          synomem_todo_complete
synomem_todo_accept      synomem_todo_reject          synomem_todo_reopen
synomem_todo_cancel

Focused kudos reads and administration remain available:

synomem_kudos_list       synomem_kudos_get            synomem_kudos_changes
synomem_kudos_stats      synomem_agent_list           synomem_agent_create
synomem_doctor           synomem_rebuild

Agent creation and rebuild are disabled by default. Every tool declares precise schemas, stable errors, structured and concise text content, the bound actor, and MCP behavior annotations.

synomem_list returns 10 compact summaries by default and at most 50. synomem_changes returns 20 changes by default and at most 100. Both stop around a 24 KiB item-data budget. Bodies, reasons, evidence, descriptions, source, and metadata require one explicit synomem_get.

Resources

synomem://agents
synomem://agents/<agent-id>/profile
synomem://agents/<agent-id>/wins
synomem://agents/<agent-id>/inbox
synomem://items/<item-id>
synomem://events/<event-id>

Resources apply the same participant and visibility policy as tools. Agents may read only their own inbox resource. Canonical event resources authorize against their aggregate before returning data.

Policy

Edit <home>/synomem/config.json while writers are stopped. Safe defaults deny self-kudos, MCP identity creation, and MCP rebuild. Notes are unconditionally owner-private in V1. Cross-agent todo assignment is enabled; ownership and participant rules still apply.

Human actors have local administrative authority. Agent actors manage only their own note, recipient memo state, and todos they created or received. System actors have no implicit authority. The filesystem owner remains the ultimate local authority.