Skip to content

MCP Server

trurlic serve starts an MCP server over stdio. It exposes 14 tools that let a coding agent query the decision graph, run design workflows, and record decisions — all under the graph’s integrity model. No API key is needed: the server provides prompts and context; the agent’s own model does the reasoning.

Terminal window
trurlic serve

The server reads .trurlic/ from the current directory and watches it for changes.

Read tools — concurrent, read lock only, microsecond latency:

advance · get_context · get_architecture · check_pattern · get_step_prompt · get_decisions_for_file · get_decision_history · verify_against_decisions

Write tools — exclusive write lock plus file lock, full-graph validation before commit:

record_decision · record_pattern · update_decision · remove_decision · add_component · add_connection

Every tool carries annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) so clients can reason about each call. See the MCP Tools Reference for full signatures.

Every task an agent works follows the same shape:

advance(component, task_type, mode) → repeat until ready: true
get_context(component) → the brief; implement within it
verify_against_decisions(component, changed_files)
→ fix any violation before committing

See Workflow Engine for the step sequences behind advance.

The server watches .trurlic/ for external changes — CLI commands, git checkout, manual edits. When files change, state reloads under the write lock automatically. No restart needed.

trurlic install --ide <ide> writes the correct MCP config for your tool. Or add this manually:

{
"mcpServers": {
"trurlic": {
"command": "trurlic",
"args": ["serve"]
}
}
}

Then tell your agent how to use it — add to CLAUDE.md, .cursorrules, or equivalent:

## Trurlic
This project uses Trurlic for architectural decisions.
Before implementing any task:
1. Call `advance` with the component name and a mode (agent | interactive).
2. Follow the returned action exactly.
3. Call `advance` again after completing each action.
4. Repeat until `ready: true`, then implement — constrained by every
decision in the context brief.
5. Call `verify_against_decisions` before committing; fix any violation.

See Connect Your IDE for per-IDE config paths, or Custom Agent to build your own integration.