{"name":"io.github.gitmem-dev/gitmem","slug":"gitmem-dev-gitmem","title":null,"description":"Persistent institutional memory for AI coding agents. Memory that compounds.","url":"https://mcp.market/server/gitmem-dev-gitmem","rating":null,"grade":"B","score":82,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":40,"stars":9,"forks":1,"downloads_week":988,"last_push_at":"2026-09-23T14:56:19.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/gitmem-dev/gitmem","website":null,"version":"1.2.1","remotes":[],"packages":[{"registryType":"npm","identifier":"gitmem-mcp","version":"1.2.1","transport":{"type":"stdio"},"environmentVariables":[{"description":"Supabase project URL for pro tier features (semantic search, analytics). Not required for free tier.","format":"string","name":"SUPABASE_URL"},{"description":"Supabase service role key for pro tier features. Not required for free tier.","format":"string","isSecret":true,"name":"SUPABASE_SERVICE_ROLE_KEY"}]}],"tools":[{"name":"absorb_observations","description":"Capture observations from sub-agents and teammates. The lead agent parses findings from sub-agent responses, then calls this to persist and analyze them. Identifies scar candidates.","write_action":false,"price_micros":0,"input_schema":null},{"name":"analyze","description":"Session analytics and insights engine. Returns formatted markdown by default. Use format=json for raw data.","write_action":false,"price_micros":0,"input_schema":null},{"name":"archive_learning","description":"Archives a learning (scar/win/pattern) by setting is_active=false and recording archived_at timestamp. Archived learnings are excluded from recall and search results but preserved for audit trail.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cleanup_threads","description":"Triage open threads by lifecycle health. Groups threads as active/cooling/dormant with vitality scores. Use auto_archive=true to archive threads dormant 30+ days. Review and resolve stale threads to keep your thread list healthy.","write_action":false,"price_micros":0,"input_schema":null},{"name":"confirm_scars","description":"Confirm surfaced scars with APPLYING/N_A/REFUTED decisions and evidence. REQUIRED after recall() before consequential actions. Each recalled scar must be addressed. APPLYING: past-tense evidence of compliance. N_A: explain why scar doesn't apply. REFUTED: acknowledge risk of overriding.","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_decision","description":"Log architectural/operational decision to institutional memory","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_learning","description":"Create scar, win, or pattern entry in institutional memory. Frame as 'what we now know' — lead with the factual/architectural discovery, not what went wrong. Good: 'Fine-grained PATs are scoped to one resource owner'. Bad: 'Should have checked PAT type first'.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_thread","description":"Create an open thread to track unresolved work across sessions. Includes semantic dedup: if a similar open thread exists (cosine similarity > 0.85), returns the existing thread instead. Check the 'deduplicated' field in the response.","write_action":true,"price_micros":0,"input_schema":null},{"name":"dismiss_suggestion","description":"Dismiss a suggested thread. Incremented dismiss count — suggestions dismissed 3+ times are permanently suppressed.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_transcript","description":"Retrieve a session transcript from storage","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-al","description":"gitmem-al (archive_learning) - Archive a scar/win/pattern (sets is_active=false)","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-analyze","description":"gitmem-analyze (analyze) - Session analytics. Returns formatted markdown by default.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-ao","description":"gitmem-ao (absorb_observations) - Capture sub-agent/teammate observations","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-cache-flush","description":"gitmem-cache-flush - Force reload cache from Supabase (use when out of sync)","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-cache-health","description":"gitmem-cache-health - Compare local cache against remote Supabase (detect out-of-sync)","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-cache-status","description":"gitmem-cache-status - Show local search cache status (scar count, age, staleness)","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-cd","description":"gitmem-cd (create_decision) - Log architectural/operational decision","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-cl","description":"gitmem-cl (create_learning) - Create scar/win/pattern. Frame as 'what we now know' — factual discovery, not self-criticism.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-cleanup","description":"gitmem-cleanup (cleanup_threads) - Triage threads by lifecycle health","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-cs","description":"gitmem-cs (confirm_scars) - Confirm recalled scars with APPLYING/N_A/REFUTED decisions","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-ct","description":"gitmem-ct (create_thread) - Create an open thread with semantic dedup (cosine > 0.85 blocks duplicates)","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-ds","description":"gitmem-ds (dismiss_suggestion) - Dismiss a suggested thread","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-graph","description":"gitmem-graph (graph_traverse) - Traverse knowledge graph over institutional memory triples","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-gt","description":"gitmem-gt (get_transcript) - Retrieve session transcript from storage","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-health","description":"gitmem-health (health) - Show write health for fire-and-forget operations this session","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-help","description":"gitmem-help - Show available commands with ASCII art header","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-log","description":"gitmem-log (log) - List recent learnings chronologically","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-lt","description":"gitmem-lt (list_threads) - List open threads across sessions","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-pc","description":"gitmem-pc (prepare_context) - Generate portable memory payload for sub-agent injection","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-ps","description":"gitmem-ps (promote_suggestion) - Promote a suggested thread to an open thread","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-r","description":"gitmem-r (recall) - Check institutional memory for relevant scars before taking action","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-rs","description":"gitmem-rs (record_scar_usage) - Track scar application for effectiveness measurement","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-rsb","description":"gitmem-rsb (record_scar_usage_batch) - Track multiple scars in batch (reduces latency)","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-rt","description":"gitmem-rt (resolve_thread) - Mark a thread as resolved","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-sc","description":"gitmem-sc (session_close) - Close session with compliance validation. IMPORTANT: Write all heavy payload data (closing_reflection, task_completion, human_corrections, scars_to_record, open_threads, decisions, learnings_created) to {gitmem_dir}/closing-payload.json BEFORE calling this tool — gitmem_dir is from session_start. Only pass session_id and close_type inline. DISPLAY: The result includes a","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-search","description":"gitmem-search (search) - Search institutional memory by query (exploration, no side effects)","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-sr","description":"gitmem-sr (session_refresh) - Refresh institutional context for the active session without creating a new session. DISPLAY: The result includes a pre-formatted 'display' field. Output the display field verbatim as your response — tool results are collapsed in the CLI.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-ss","description":"gitmem-ss (session_start) - Initialize session with institutional context. DISPLAY: The result includes a pre-formatted 'display' field. Output the display field verbatim as your response — tool results are collapsed in the CLI.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-st","description":"gitmem-st (save_transcript) - Save session transcript to storage","write_action":false,"price_micros":0,"input_schema":null},{"name":"gitmem-stx","description":"gitmem-stx (search_transcripts) - Semantic search over transcript chunks","write_action":false,"price_micros":0,"input_schema":null},{"name":"gm-absorb","description":"gm-absorb (absorb_observations) - Capture sub-agent observations","write_action":false,"price_micros":0,"input_schema":null},{"name":"gm-analyze","description":"gm-analyze (analyze) - Session analytics. Returns formatted markdown by default.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gm-archive","description":"gm-archive (archive_learning) - Archive a scar/win/pattern","write_action":false,"price_micros":0,"input_schema":null},{"name":"gm-cache-f","description":"gm-cache-f (cache_flush) - Force reload cache from Supabase","write_action":false,"price_micros":0,"input_schema":null},{"name":"gm-cache-h","description":"gm-cache-h (cache_health) - Compare local cache against remote Supabase (detect out-of-sync)","write_action":false,"price_micros":0,"input_schema":null},{"name":"gm-cache-s","description":"gm-cache-s (cache_status) - Show local search cache status (scar count, age, staleness)","write_action":false,"price_micros":0,"input_schema":null},{"name":"gm-cleanup","description":"gm-cleanup (cleanup_threads) - Triage threads by health","write_action":false,"price_micros":0,"input_schema":null},{"name":"gm-close","description":"gm-close (session_close) - Close a GitMem session. IMPORTANT: Write all heavy payload data (closing_reflection, task_completion, human_corrections, scars_to_record, open_threads, decisions, learnings_created) to {gitmem_dir}/closing-payload.json BEFORE calling this tool — gitmem_dir is from session_start. Only pass session_id and close_type inline. DISPLAY: The result includes a pre-formatted 'dis","write_action":false,"price_micros":0,"input_schema":null},{"name":"gm-confirm","description":"gm-confirm (confirm_scars) - Confirm recalled scars with APPLYING/N_A/REFUTED","write_action":false,"price_micros":0,"input_schema":null},{"name":"gm-dismiss","description":"gm-dismiss (dismiss_suggestion) - Dismiss a suggested thread","write_action":false,"price_micros":0,"input_schema":null},{"name":"gm-graph","description":"gm-graph (graph_traverse) - Traverse knowledge graph","write_action":false,"price_micros":0,"input_schema":null},{"name":"gm-health","description":"gm-health (health) - Show write health for fire-and-forget operations","write_action":false,"price_micros":0,"input_schema":null},{"name":"gm-log","description":"gm-log (log) - List recent learnings chronologically","write_action":false,"price_micros":0,"input_schema":null},{"name":"gm-open","description":"gm-open (session_start) - Open a GitMem session and load institutional context. DISPLAY: The result includes a pre-formatted 'display' field. Output the display field verbatim as your response — tool results are collapsed in the CLI.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gm-pc","description":"gm-pc (prepare_context) - Generate portable memory payload for sub-agents","write_action":false,"price_micros":0,"input_schema":null},{"name":"gm-promote","description":"gm-promote (promote_suggestion) - Promote a suggested thread","write_action":false,"price_micros":0,"input_schema":null},{"name":"gm-refresh","description":"gm-refresh (session_refresh) - Refresh context for the active session without creating a new one. DISPLAY: The result includes a pre-formatted 'display' field. Output the display field verbatim as your response — tool results are collapsed in the CLI.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gm-resolve","description":"gm-resolve (resolve_thread) - Resolve a thread","write_action":false,"price_micros":0,"input_schema":null},{"name":"gm-scar","description":"gm-scar (create_learning) - Create a scar/win/pattern. Frame as 'what we now know' — factual discovery, not self-criticism.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gm-search","description":"gm-search (search) - Search institutional memory by query","write_action":false,"price_micros":0,"input_schema":null},{"name":"gm-stx","description":"gm-stx (search_transcripts) - Semantic search over transcript chunks","write_action":false,"price_micros":0,"input_schema":null},{"name":"gm-thread-new","description":"gm-thread-new (create_thread) - Create an open thread with semantic dedup","write_action":false,"price_micros":0,"input_schema":null},{"name":"gm-threads","description":"gm-threads (list_threads) - List open threads","write_action":false,"price_micros":0,"input_schema":null},{"name":"graph_traverse","description":"Traverse the knowledge graph over institutional memory triples. Answers: 'show me everything connected to this issue', 'what did this agent produce', 'trace this decision back', 'which issues produced the most learnings'. Four lenses: connected_to, produced_by, provenance, stats.","write_action":false,"price_micros":0,"input_schema":null},{"name":"health","description":"Show write health for the current session. Reports success/failure rates for all tracked fire-and-forget operations (metrics, cache, triple writes, embeddings, scar usage). Use this to diagnose silent failures.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_threads","description":"List open threads across recent sessions. Shows unresolved work items that carry over between sessions. Use resolve_thread to mark threads as done.","write_action":false,"price_micros":0,"input_schema":null},{"name":"log","description":"List recent learnings chronologically (like git log). Shows scars, wins, and patterns ordered by creation date.","write_action":false,"price_micros":0,"input_schema":null},{"name":"prepare_context","description":"Generate portable memory payload for sub-agent injection. Formats institutional memory into compact or gate payloads that fit in Task tool prompts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"promote_suggestion","description":"Promote a suggested thread to an open thread. Takes a suggestion_id from session_start's suggested_threads list and creates a real thread from it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"recall","description":"Check institutional memory for relevant scars before taking action. Returns matching scars and their lessons. Integrates variant assignment when issue_id provided.","write_action":false,"price_micros":0,"input_schema":null},{"name":"record_scar_usage","description":"Track scar application for effectiveness measurement","write_action":false,"price_micros":0,"input_schema":null},{"name":"record_scar_usage_batch","description":"Track multiple scar applications in a single batch operation (reduces session close latency)","write_action":false,"price_micros":0,"input_schema":null},{"name":"resolve_thread","description":"Mark an open thread as resolved. Use thread_id for exact match or text_match for fuzzy matching. Updates session state and .gitmem/threads.json.","write_action":false,"price_micros":0,"input_schema":null},{"name":"save_transcript","description":"Save full session transcript to storage for training data and post-mortems","write_action":false,"price_micros":0,"input_schema":null},{"name":"search","description":"Search institutional memory by query. Unlike recall (which is action-oriented), search is exploration-oriented — returns matching scars/wins/patterns without side effects.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_transcripts","description":"Semantic search over session transcript chunks. Generates embedding for query and calls match_transcript_chunks RPC to find relevant conversation fragments across all indexed sessions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"session_close","description":"Persist session with compliance validation. IMPORTANT: Before calling this tool, write all heavy payload data (closing_reflection, human_corrections, scars_to_record, open_threads, decisions, learnings_created) to {gitmem_dir}/closing-payload.json using your file write tool — the gitmem_dir path is returned by session_start (also shown in session start display as 'Payload path'). Then call this to","write_action":false,"price_micros":0,"input_schema":null},{"name":"session_refresh","description":"Re-surface institutional context (threads, decisions) for the current active session without creating a new session. Use mid-session when you need to remember where you left off, after context compaction, or after a long gap. DISPLAY: The result includes a pre-formatted 'display' field visible in the tool result. Output the display field verbatim as your response — tool results are collapsed in th","write_action":false,"price_micros":0,"input_schema":null},{"name":"session_start","description":"Initialize session, detect agent, load institutional context (last session, recent decisions, open threads). Scars surface on-demand via recall(). DISPLAY: The result includes a pre-formatted 'display' field visible in the tool result. Output the display field verbatim as your response — tool results are collapsed in the CLI.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":82,"grade":"B","scanned_at":"2026-09-28T14:26:52.278Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-09-28T14:26:52.266Z","components":{"code":{"score":25,"max":25,"notes":["191 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 5 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"gitmem-mcp","version":"1.2.1","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-02-21T03:35:27.456Z","repositoryUrl":"git+https://github.com/gitmem-dev/gitmem.git","weeklyDownloads":988}],"repo":{"found":true,"owner":"gitmem-dev","repo":"gitmem","archived":false,"pushedAt":"2026-09-23T14:56:19Z","stars":9,"forks":1,"openIssues":7,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/262033585?v=4","ownerCreatedAt":"2026-02-17T01:45:59Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/262033585?v=4&s=128","source":"github"},"presence":{"stars":9,"forks":1,"downloadsWeek":988,"license":"MIT","lastPushAt":"2026-09-23T14:56:19.000Z","score":40}}}},"grade_history":[],"reviews":[]}