{"name":"io.github.AiDimag/aidimag","slug":"aidimag-aidimag","title":null,"description":"Persistent, verified memory for AI coding agents: recall, capture, guardrails, review queue.","url":"https://mcp.market/server/aidimag-aidimag","rating":null,"grade":"B","score":82,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":32,"stars":1,"forks":0,"downloads_week":156,"last_push_at":"2026-10-08T08:20:10.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/AiDimag/aidimag","website":"https://aidimag.com","version":"1.0.22","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"aidimag","version":"1.0.22","runtimeHint":"npx","transport":{"type":"stdio"},"packageArguments":[{"description":"Start the aidimag MCP server over stdio","value":"mcp","type":"positional"}],"environmentVariables":[{"description":"Absolute path to the git repository whose memory store to serve. Optional: defaults to walking up from the current working directory.","format":"string","name":"AIDIMAG_REPO"},{"description":"LLM provider for extraction features (chat_harvest, knowledge ingestion): openai | ollama | off. Optional: auto-detected.","format":"string","name":"AIDIMAG_LLM"},{"description":"OpenAI API key, used only if the OpenAI provider is selected/detected for extraction features.","format":"string","isSecret":true,"name":"OPENAI_API_KEY"}]}],"tools":[{"name":"aidimag_help","description":"Show what aidimag offers: available tools, prompts (slash commands), resources, and the companion `dim` CLI commands. Call this when the user asks what aidimag can do, how to use it, or types 'aidimag help' — then relay the overview to them.","write_action":false,"price_micros":0,"input_schema":null},{"name":"chat_harvest","description":"Harvest the CURRENT chat session on the fly: pass the messages the USER typed this session (verbatim) and durable facts are extracted and queued for human review — the live, tool-agnostic equivalent of `dim harvest`. Works from ANY IDE/agent (Copilot, Cursor, Codex, Claude, Devin, …), including cloud tools with no local transcripts. Call at session end, or after a long exchange rich in project kno","write_action":false,"price_micros":0,"input_schema":null},{"name":"commits_mine","description":"Mine git commit history for memory-worthy candidates (same as `dim mine`). Queues proposals for `dim review` — never writes active memory directly. Use after meaningful commits, or with full=true to rescan all history.","write_action":false,"price_micros":0,"input_schema":null},{"name":"context_note","description":"Capture a durable fact the USER just stated in chat. Call this IMMEDIATELY when the user shares codebase knowledge — don't wait for session end. ALWAYS trigger on: 'we use X because Y' (DECISION), 'never do X' (GUARDRAIL), 'we always X' (CONVENTION), 'we tried X, it failed' (FAILED_APPROACH), 'the architecture is...' (ARCHITECTURE). Skip task-specific requests like 'fix this bug'. User-stated fact","write_action":false,"price_micros":0,"input_schema":null},{"name":"knowledge_ingest_submit","description":"Submit the FALSIFIABLE claims you extracted from a pending knowledge doc (see the knowledge_ingest prompt). Queues them as proposals (source knowledge:<doc>), writes the durable summary, backs up the original, and clears the inbox copy. Claims become PINNED memory only after `dim review` (unless the repo opted out).","write_action":true,"price_micros":0,"input_schema":null},{"name":"knowledge_pending","description":"List documents waiting in the knowledge inbox to be summarized into pinned-on-approve memory proposals. Use with the knowledge_ingest prompt to process them in-session.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_critique","description":"Review what you just did (or plan to do) against the project's VERIFIED memory and guardrails — a 'second critic' grounded in real, falsifiable beliefs rather than another model's opinion. Call BEFORE committing or proposing memories. Resolve guardrail violations and contradictions first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_get_for_files","description":"Get all memories relevant to specific files before editing them — conventions, gotchas, and invariants that apply to those paths.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_propose","description":"Propose a memory for the human review queue. Use at SESSION END for learnings that should persist but warrant review before becoming active memory. Prefer this over memory_write for inferred/uncertain knowledge.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_refute","description":"Mark a memory as REFUTED when you discover it no longer holds. Optionally provide the id of a new memory that supersedes it. Refuted memories are kept as negative knowledge.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_search","description":"Search the repo's verified memory for decisions, conventions, gotchas, failed approaches, and invariants. Use BEFORE exploring the codebase — past sessions may already know the answer.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_status","description":"Get a summary of the repo's memory store: counts by verification status and kind.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_verify","description":"Re-run cheap evidence checks (STATIC_CHECK, COMMIT_REF) and update memory statuses. Use before relying on VERIFIED memories if the repo may have changed, or to verify specific memories by id.","write_action":false,"price_micros":0,"input_schema":null},{"name":"memory_write","description":"Persist a new memory about this codebase. Write the claim as a FALSIFIABLE statement (something that could be checked against the code). Attach evidence whenever possible. For kind=GUARDRAIL, set guardrail_level (never|always|ask-first).","write_action":true,"price_micros":0,"input_schema":null},{"name":"proposals_pending","description":"List memory proposals awaiting human review.","write_action":false,"price_micros":0,"input_schema":null},{"name":"scratchpad_clear","description":"Clear scratchpad working notes (one session key, or everything). Use when a task completes and its intermediate state is no longer needed.","write_action":false,"price_micros":0,"input_schema":null},{"name":"scratchpad_read","description":"Read short-term working notes from the current session's scratchpad (newest first). Use at session start or when resuming a task to recover in-flight state. Expired notes are purged automatically.","write_action":false,"price_micros":0,"input_schema":null},{"name":"scratchpad_write","description":"Jot a SHORT-TERM working note for the current session: intermediate findings, plans, hypotheses, task state. Auto-expires (default 24h) and is never synced. NOT durable memory — use memory_write/memory_propose for knowledge that should persist across sessions.","write_action":true,"price_micros":0,"input_schema":null},{"name":"ticket_get","description":"Fetch the ticket behind the current work (title, description, type, status) from the connected ticketing app. Use at session end: the ticket carries the WHY that commits lack. Omit the id to auto-detect it from the current branch name.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":82,"grade":"B","scanned_at":"2026-11-04T06:34:16.149Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-11-04T06:34:16.097Z","components":{"code":{"score":25,"max":25,"notes":["96 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 27 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"aidimag","version":"1.0.22","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":8,"publishedAt":"2026-08-11T23:53:46.406Z","repositoryUrl":"git+https://github.com/AiDimag/aidimag.git","weeklyDownloads":156}],"repo":{"found":true,"owner":"AiDimag","repo":"aidimag","archived":false,"pushedAt":"2026-10-08T08:20:10Z","stars":1,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/315844585?v=4","ownerCreatedAt":"2026-08-11T14:47:05Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/315844585?v=4&s=128","source":"registry","width":128,"height":128},"presence":{"stars":1,"forks":0,"downloadsWeek":156,"license":"MIT","lastPushAt":"2026-10-08T08:20:10.000Z","score":32}}}},"grade_history":[],"reviews":[]}