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.
trurlic serveThe server reads .trurlic/ from the current directory and watches it for changes.
The tools
Section titled “The tools”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.
The core loop
Section titled “The core loop”Every task an agent works follows the same shape:
advance(component, task_type, mode) → repeat until ready: trueget_context(component) → the brief; implement within itverify_against_decisions(component, changed_files) → fix any violation before committingSee Workflow Engine for the step sequences behind advance.
Live reload
Section titled “Live reload”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.
Connecting an agent
Section titled “Connecting an agent”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.