Monet MCP server
Local-first, state-centric memory for coding agents. MCP server + CLI.
1 stars60 downloads/wk
Reviews
Write oneNobody has reviewed Monet yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Monet tools (21)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
agent_contextSession-start orientation. Call first. Returns resolved `circle`; `resolvedFrom` marks an alias. `stageIndex` names moments whose rules require stage_lookup. Skeleton delivery has three states: no mirror fields means loaded standing files are current; `mirrorStale` + `instruction` requires user-confirmed reconciliation; `skeleton` contains members not covered by a standing file. A member's `homeCi
conformance_answerRecord whether the action followed the rules read at that moment: 'followed' or 'not-followed'. No question is put first \u2014 record your own reading. FIRST WRITE WINS: the same answer again is accepted, a differing one is refused, so a later correction does not land here \u2014 when a rule turns out not to have been followed, the destination is that rule's own record. This says the action follo
conformance_askRecord that you asked the user whether an action followed the rule it read. Call this when you put the question, before their reply. The momentId is the one `stage_lookup` returned when it handed you that rule; a later `stage_lookup` also names earlier moments with no question put \u2014 candidates, not debts, because the record does not say whether an action followed any of them. Ask where one di
memory_checkpointmemory_circle_manageManage project-locality circles. Rename preserves the old name as an alias. Merge moves all concepts; forceNew (default) keeps near matches distinct and flags them, while auto deduplicates. Archive hides a circle from store-wide recall/listing without deleting it; unarchive restores it. List includes archived circles. Use entities/edges, not circles, for topics.
memory_declareDeclare a user-authorized rule, stage, principle, or preference, or withdraw a declared rule. Never call on agent initiative. This is the only tool that may create blocking rules, replace a rule binding, or end a declaration. A stage is a named moment; rules bind content to stages. Principles and preferences enter the always-on skeleton without stage or severity; mechanical concerns return as non-
memory_detachMove observations out of a concept to undo a wrong merge. By default they form a new concept; destConceptId attaches them to an existing same-circle concept. The source is recomputed and marked for synthesis. Moving all observations into a destination deletes the source, consolidating a duplicate. Without a destination, at least one observation must remain; use memory_reassign_circle to move a who
memory_fetchRead a concept by id. Normal concepts return `body` and `observationCount`; evidence appears only with observations:true as newest-first pages. If `needsSynthesis:true`, pull every page, reconcile one body, then call memory_synthesize. `bodyTruncated` means recover from observations. A disputed concept adds `status` and `openContradictions`; mediate with memory_resolve({ contradictionId: openContr
memory_flag_contradictionOpen a contradiction when stored memory conflicts with newer evidence. The concept becomes disputed until memory_resolve mediates it. Prefer memory_store kind="correction" when also storing the correcting evidence.
memory_listList one circle's memories as structural cards, never bodies; use memory_fetch to read one. Returns up to `limit` plus `nextCursor`; pass that as `cursor` until absent. Keyset pagination stays valid while earlier pages are reassigned. Use `withProvenance` to group memories by evidence paths, then memory_reassign_circle to migrate them.
memory_overviewRead-only curation workbench for one circle: compact counts, livingModel cards, bounded queues for possibleDuplicates, extractionCandidates, openContradictions and gate exceptions, plus the ratified skeleton. A skeleton member's `homeCircle` names the circle it is homed in and appears only when that is not the circle you asked from; its absence means the member is homed here, and memory_ratify onl
memory_ratifyRecord a human verdict on a principle or preference candidate after conversational review against the skeleton battery (Generates/Covers/Transfers/Exits). Approve/re-ratify enters the candidate in the skeleton and can link generated rules; reject keeps it out; retire ends current membership. The latest verdict governs membership, while every verdict remains in history. `packet` preserves exactly w
memory_reassign_circleMove a concept, its observations, and graph membership to another circle. Pass exactly one of id or ids; batches are per-item atomic and report errors without aborting. `circle` is the current home. `auto` merges a destination match; `forceNew` keeps it distinct and flags a near match as possible_duplicate. Use this to home legacy default memory in its project circle.
memory_resolveMediate a contradiction or dismiss a flagged pair. CONTRADICTION: pass contradictionId, decision, and a reconciled body for accept-new/keep-current. accept-new keeps the correction; keep-current retires it; dismiss records no conflict. Name contradictedObservationId (a live, older, same-concept observation): on accept-new it is superseded exactly; on keep-current it is recorded as the kept prior w
memory_restoreUndo memory_retire: a retired memory is searchable, fetchable, listed and counted again, and its graph is re-derived. Pass exactly one of id or ids; batches are per-item and report errors without aborting. `circle` is the concept's home.
memory_retireHide a memory: it leaves memory_search, memory_fetch, memory_list and the overview counts, its evidence untouched, and memory_restore brings it back \u2014 its graph re-derived from that evidence rather than replayed, so ordering and reinforcement history do not survive the round trip. Pass exactly one of id or ids; batches are per-item and report errors without aborting. `circle` is the concept's
memory_searchFind memories by similarity. Returns ranked pointer cards, not content; call memory_fetch with a card's id and non-default circle to read it. Omit circle for store-wide search. Empty results mean no match.
memory_storeStore durable knowledge. Similar evidence normally attaches to an existing concept; novel, incoherent, species-mismatched, or stage-mismatched evidence creates a concept. Evidence that matches several concepts equally is REFUSED rather than guessed: the error names the candidates, and you re-send with `attachTo` or `resolution="forceNew"`. The acknowledgement returns `circle`, `action`, and `conce
memory_synthesizeStore one coherent body synthesized from all of a concept's observations. Clears `needsSynthesis` and records a revision.
memory_workstreamsTwo reads, two moments. Resume \u2014 on continuation intent only, never a fresh directive: omit `id` to list active/paused workstreams and confirm which to resume; then pass its `id` for detail \u2014 OPEN items only, questions first, each carrying the id `close` takes. Settle \u2014 `id: "inbox"` before reporting completion: every find awaiting disposition, this session's and every kept one. `cl
stage_lookupAt a stage named by agent_context, fetch its rules before acting. A hit returns bounded rules with reasons and omission recovery fields. `homeCircle` names the circle a rule is homed in, and appears only when that is not the circle you asked from; its absence means the rule is homed here. `parentDisputed:true` means `disputedParentIds` should be memory_fetched; projectedFromPrincipleId is only the
Public scan report
scanner v0.1.9 · 2026-09-20 · same rubric, same numbers if you re-run it
- Code scan4 source files scanned20/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 2 days ago15/15
- Maintainer identityregistry namespace matches repository owner7/10
Findings (1)
- mediumeval / new Function used
exec.evaldist/cli.js: …&&(l=this.opts.code.process(l,t));let m=new Function(`${Qn.default.self}`,`${Qn.default.scope…
Install directly
Runs npx -y @team-monet/monet on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add monet -- npx -y @team-monet/monet
Monet: common questions
- Is Monet MCP server safe?
- Mostly: it is graded B (83/100). Read the Monet safety report
- How do I install Monet?
- It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
- Does Monet need an API key?
- No secret keys are declared. It reads 1 setting from the environment.
- Is Monet maintained?
- The last commit was 2 days ago (2026-09-19). The latest release is v1.11.0.
- What can I use instead of Monet?
- Servers from other publishers that do the same job: Prism Coder MCP server, Memorix MCP server and Citra MCP server. Compare all Monet alternatives.
Alternatives to Monet
Same job from other publishers: the closest match first, then the best rated.
- Prism CoderSession memory for coding agents: local-first recall, drift detection, on-device inference.not reviewedEstablishedC
MemorixLocal-first project memory with legacy MCP and 2026 discovery compatibility.not reviewedEstablishedB- CitraLocal-first PDF evidence for agents: structure, tables, OCR, and citations. SDK · CLI · MCP.not reviewedEstablishedA
- Deja Vudeja-vu: local memory over the session histories of thirty-three coding agents.not reviewedEstablishedA
State Memory MCPDeterministic, persistent graph server for tracking workflow state, decisions, and blockers.not reviewedEstablishedA