Skip to content

Reference

MCP tools

Sigil is an MCP server. Any spec-compliant client — Cursor, Continue, Cline, Windsurf, Claude Desktop, Kiro, or your own agent — gets thirteen tools against the same brain the CLI and hooks use.

Terminal window
sigil register # stdio launcher (default)
sigil register --http # the daemon's HTTP transport
sigil register --print # print the config, write nothing
ToolGroup
primeSession startCall first. Loads hot context.
searchRetrievalFacts by natural-language query
search_entityRetrievalEntities by name or type
traverse_graphTraversalWalk entity relations
get_fact_contextDetailEverything about one fact
get_entity_contextDetailEverything about one entity
get_podDetailA pod and its members
list_podsDiscoveryAvailable pods
list_documentsDiscoveryStored documents
get_documentDiscoveryOne document, in full
statusOperationsKnowledge base statistics
ingestWriteStore a whole document
rememberWriteSave atomic facts

Call this first, before answering anything. It loads the hot-context snapshot — the standing instructions, vital facts, and active project context that Claude Code gets for free through its CLAUDE.md import.

ParameterTypeDefault
limitnumber12

Without it, an MCP client starts cold and can only find what it thinks to search for. Standing instructions like “keep explanations short” are relevant to every answer and similar to no query — they will never be retrieved by search. prime is the channel that delivers them. See Hot context.


Hybrid search over facts — pgvector cosine and tsvector BM25, fused with RRF, re-ranked by activation and co-retrieval.

ParameterTypeDefault
querystring—Natural language
limitnumber5Max facts
namespacesstring[]—Filter by namespace
minConfidencelow·medium·highmedium
includeChunksbooleanfalseRaw document chunks — verbose, only when needed
useGraphbooleanfalseTraverse the entity graph for related facts
pointInTimeISO string—Only facts valid at that moment
formatfull·compactfullcompact is token-efficient, one line per category
podScopeauto·global·string[]autoauto = active project and session pods

podScope: "global" searches the whole brain. Use it when the answer might live in another project.

Find entities in the knowledge graph.

ParameterTypeDefault
querystring—
entityTypestring—
limitnumber10
namespacestring—

Better than search for “what do I know about X”, where X is a name — the answer isn’t textually similar to the question.


Navigate entity relationships.

ParameterTypeDefault
startEntityIdnumber—From search_entity
actionneighbors·path·relatedneighbors
targetEntityIdnumber—Required for path
relationTypestring—Filter by relation
maxDepthnumber21–3
limitnumber20
ActionReturns
neighborsDirect connections
pathShortest path to targetEntityId
relatedEverything reachable within maxDepth

Full context for one fact: complete content, entities mentioned, relations created, source documents.

ParameterType
factIdnumberFrom search results
uidstringe.g. fact-a1b2c3d4

One of the two.

Relations, connected facts, and graph position for an entity.

ParameterType
entityIdnumber
namestring
namespacestring

A memory pod with its member facts and documents — and, for person pods, their platform metadata.

ParameterType
uidstring

ParameterTypeDefault
typesession·person·project·connector_workspace·customall
namespacestringdefault
statusactive·archivedactive
limitnumber (≤100)20

Documents stored whole, scoped to the current project by default.

ParameterTypeDefault
cwdstring—Scopes to that project’s pod. Pass the project you’re working in.
podScopeauto·global·string[]auto
sourceTypestring—e.g. docs, notes, code
limitnumber50

Read a stored document in full.

ParameterTypeDefault
uidstring—
maxCharsnumber40000

Documents, chunks, facts, entities, relations.

ParameterType
namespacestring

Save one or more standalone facts.

ParameterType
factsstring[]One or more self-contained facts. Each element is a separate fact.
namespacestring
cwdstringPass the project you’re working in — attaches the facts to its pod so they resurface there
podstringAttach to this pod instead of the one derived from cwd. Use when the fact is about a different project.

Every write runs through AUDM, so re-saving something you already know is a no-op rather than a duplicate.

Store a whole document, and extract facts from it.

ParameterTypeDefault
contentstring—Raw text. Provide this or filePath or url.
filePathstring—
urlstring—
titlestringauto
namespacestringdefault
sourceTypestringautodocs, code, notes, …
cwdstring—Attaches to that project’s pod
skipFactsbooleanfalseChunks only — faster
skipEntitiesbooleanfalseSkip entity linking
waitbooleanfalseWait for searchable chunks and facts instead of returning a job acknowledgement

MCP has no hook layer. The agent decides when to call, which means the system prompt does the work.

A minimal instruction that works across clients:

You have access to a persistent memory system called Sigil. Call prime at the start of every session. Before answering questions about projects, preferences, or past decisions, call search. When the user shares a preference, decision, or constraint, call remember. When they say “save this doc”, call ingest.

sigil init writes a client-native version of this automatically for Cursor, Codex CLI, and Kiro. For everything else, add it to the client’s rules file — see Integrations.

stdioHTTP
Registered bysigil registersigil register --http
ProcessOne spawned per clientOne long-lived daemon transport
Address~/.sigil/bin/sigil-mcphttp://127.0.0.1:7777/mcp + bearer token
Survives Node switchesYes — it’s a shimYes — the URL never changes

HTTP is the more portable option for clients that support it. Both reach the same registry, so the tools are identical.

Terminal window
sigil doctor --deep # actually spawns the MCP server and round-trips it
sigil register --print # what your client should be configured with