io.github.gitmem-dev/gitmem
NPM · GITMEM-MCP · SCANNED SEP 20
Persistent institutional memory for AI coding agents. Memory that compounds.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security80
- No malware found by supply-chain analysis.Pass
- CVE check failed: a known high-severity CVE affects uuid 9.0.1, a direct dependency. A fixed version is available. View diagnostics → Fail
- No install/post-install scripts declared.Pass
- 32 of 97 dependencies flagged as unhealthy (1 deprecated). View diagnostics → Partial
Provenance & Transparency48
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 41 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability75
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2614 tokens (~124/item across 21 items; 21 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management90
- Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 21 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 21 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the io.github.gitmem-dev/gitmem MCP server?
io.github.gitmem-dev/gitmem runs locally as an npm package, launched with npx -y gitmem-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · gitmem-mcp
claude mcp add gitmem-dev-gitmem -- npx -y gitmem-mcp
{
"mcpServers": {
"gitmem-dev-gitmem": {
"command": "npx",
"args": [
"-y",
"gitmem-mcp"
]
}
}
} {
"servers": {
"gitmem-dev-gitmem": {
"command": "npx",
"args": [
"-y",
"gitmem-mcp"
]
}
}
} codex mcp add gitmem-dev-gitmem -- npx -y gitmem-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"gitmem-dev-gitmem": {
"type": "local",
"command": [
"npx",
"-y",
"gitmem-mcp"
],
"enabled": true
}
}
} openclaw mcp add gitmem-dev-gitmem --command npx --arg -y --arg gitmem-mcp
mcp_servers:
gitmem-dev-gitmem:
command: "npx"
args: ["-y", "gitmem-mcp"] {
"McpServers": {
"gitmem-dev-gitmem": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"gitmem-mcp"
]
}
}
} assistant mcp add gitmem-dev-gitmem -t stdio -c npx -a -y gitmem-mcp
{
"mcpServers": {
"gitmem-dev-gitmem": {
"command": "npx",
"args": [
"-y",
"gitmem-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.
- 17 Sept 26 −3
- Stability: pass → 0.80 functional
- 16 Sept 26 0
- Stability: 0.97 → pass security
- 15 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 13 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.
- 12 Sept 26 +1
- Security disclosure: unverified → pass ▲ functional
- 11 Sept 26 0
- Security disclosure: pass → unverified ▼ functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed npm/gitmem-mcp@1.2.1
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Vulnerabilities 1 finding
| ID | CVE | Severity | Vector | Fix available |
|---|---|---|---|---|
| GHSA-w5hq-g745-h8pq | CVE-2026-41907 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N | yes |
Background: What a vulnerability scan can and cannot prove →
Dependencies 97 packages
| Packages resolved | 97 |
|---|---|
| Deprecated | 1 |
| Stale | 31 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
absorb_observations ~76
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.
| Name | Type | Req | Description |
|---|---|---|---|
| observations | array | yes | Array of observations from sub-agents/teammates |
| task_id | string | – | Linear issue or task identifier (optional) |
No output schema declared.
No examples provided.
archive_learning ~88
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.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | UUID of the learning to archive |
| reason | string | – | Optional reason for archiving (e.g., 'superseded by PROJ-123', 'no longer relevant') |
No output schema declared.
No examples provided.
cleanup_threads ~100
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.
| Name | Type | Req | Description |
|---|---|---|---|
| auto_archive | boolean | – | If true, auto-archive threads that have been dormant for 30+ days |
| project | string | – | Project namespace (e.g., 'my-project'). Scopes sessions and searches. |
No output schema declared.
No examples provided.
confirm_scars ~87
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.
| Name | Type | Req | Description |
|---|---|---|---|
| confirmations | array | yes | One confirmation per recalled scar. All recalled scars must be addressed. |
No output schema declared.
No examples provided.
create_decision ~141
Log architectural/operational decision to institutional memory
| Name | Type | Req | Description |
|---|---|---|---|
| alternatives_considered | array | – | Alternatives that were rejected |
| decision | string | yes | What was decided |
| docs_affected | array | – | Docs/files affected by this decision (relative paths from repo root) |
| linear_issue | string | – | Associated Linear issue |
| personas_involved | array | – | Personas involved in decision |
| project | string | – | Project namespace (e.g., 'my-project'). Scopes sessions and searches. |
| rationale | string | yes | Why this decision was made |
| session_id | string | – | Current session ID |
| title | string | yes | Decision title |
No output schema declared.
No examples provided.
create_learning ~277
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'.
| Name | Type | Req | Description |
|---|---|---|---|
| applies_when | array | – | When this pattern applies |
| counter_arguments | array | – | Counter-arguments for scars (min 2 required) |
| description | string | yes | Detailed description. Include the architectural/behavioral fact that makes this retrievable by domain. |
| domain | array | – | Domain tags |
| keywords | array | – | Search keywords |
| learning_type | string | yes | Type of learning |
| problem_context | string | – | Problem context (for wins) |
| project | string | – | Project namespace (e.g., 'my-project'). Scopes sessions and searches. |
| scar_type | string | – | Scar type (process, incident, or context). Defaults to 'process'. |
| severity | string | – | Severity level (required for scars) |
| solution_approach | string | – | Solution approach (for wins) |
| source_linear_issue | string | – | Source Linear issue |
| title | string | yes | Frame as a knowledge discovery — what we now know. Lead with the factual insight, not self-criticism. |
No output schema declared.
No examples provided.
create_thread ~94
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.
| Name | Type | Req | Description |
|---|---|---|---|
| linear_issue | string | – | Associated Linear issue (e.g., PROJ-123) |
| text | string | yes | Thread description — what needs to be tracked or resolved |
No output schema declared.
No examples provided.
dismiss_suggestion ~60
Dismiss a suggested thread. Incremented dismiss count — suggestions dismissed 3+ times are permanently suppressed.
| Name | Type | Req | Description |
|---|---|---|---|
| suggestion_id | string | yes | Suggestion ID (e.g., "ts-a1b2c3d4") from suggested_threads list |
No output schema declared.
No examples provided.
gitmem-help ~21
gitmem-help - Show available commands with ASCII art header
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
health ~68
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.
| Name | Type | Req | Description |
|---|---|---|---|
| failure_limit | number | – | Max number of recent failures to return (default: 10) |
No output schema declared.
No examples provided.
list_threads ~87
List open threads across recent sessions. Shows unresolved work items that carry over between sessions. Use resolve_thread to mark threads as done.
| Name | Type | Req | Description |
|---|---|---|---|
| include_resolved | boolean | – | Include recently resolved threads (default: false) |
| project | string | – | Project namespace (e.g., 'my-project'). Scopes sessions and searches. |
| status | string | – | Filter by status (default: open) |
No output schema declared.
No examples provided.
log ~112
List recent learnings chronologically (like git log). Shows scars, wins, and patterns ordered by creation date.
| Name | Type | Req | Description |
|---|---|---|---|
| learning_type | string | – | Filter by learning type |
| limit | number | – | Number of entries to return (default: 10) |
| project | string | – | Project namespace (e.g., 'my-project'). Scopes sessions and searches. |
| severity | string | – | Filter by severity level |
| since | number | – | Days to look back (e.g., 7 = last week) |
No output schema declared.
No examples provided.
prepare_context ~175
Generate portable memory payload for sub-agent injection. Formats institutional memory into compact or gate payloads that fit in Task tool prompts.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_role | string | – | Sub-agent role for relevance filtering (e.g., 'reviewer', 'deployer') — reserved for Phase 3 |
| format | string | yes | Output format: full (rich markdown), compact (~500 tokens, one-line per scar), gate (~100 tokens, blocking scars only) |
| max_tokens | number | – | Token budget for payload (default: 500 for compact, 100 for gate, unlimited for full) |
| plan | string | yes | What the team is about to do (e.g., 'review auth middleware', 'deploy edge function') |
| project | string | – | Project namespace (e.g., 'my-project'). Scopes sessions and searches. |
No output schema declared.
No examples provided.
promote_suggestion ~89
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.
| Name | Type | Req | Description |
|---|---|---|---|
| project | string | – | Project namespace (e.g., 'my-project'). Scopes sessions and searches. |
| suggestion_id | string | yes | Suggestion ID (e.g., "ts-a1b2c3d4") from suggested_threads list |
No output schema declared.
No examples provided.
recall ~182
Check institutional memory for relevant scars before taking action. Returns matching scars and their lessons. Integrates variant assignment when issue_id provided.
| Name | Type | Req | Description |
|---|---|---|---|
| issue_id | string | – | Linear issue identifier for variant assignment (e.g., 'PROJ-123'). When provided, scars with variants will be randomly assigned and formatted accordingly. |
| match_count | number | – | Number of scars to return (default: 3) |
| plan | string | yes | What you're about to do (e.g., 'implement auth layer', 'deploy to production') |
| project | string | – | Project namespace (e.g., 'my-project'). Scopes sessions and searches. |
| similarity_threshold | number | – | Minimum similarity score (0-1) to include results. Weak matches below threshold are suppressed. Default: 0.4 (free tier BM25), 0.35 (pro tier embeddings). |
No output schema declared.
No examples provided.
record_scar_usage ~195
Track scar application for effectiveness measurement
| Name | Type | Req | Description |
|---|---|---|---|
| acknowledged_at | string | – | ISO timestamp when scar was acknowledged |
| agent | string | – | Agent identity (e.g., cli, desktop, autonomous) |
| execution_successful | boolean | – | Whether the task succeeded after applying scar |
| issue_id | string | – | Linear issue UUID |
| issue_identifier | string | – | Linear issue identifier (e.g., PROJ-123) |
| reference_context | string | yes | How the scar was applied (1-2 sentences) |
| reference_type | string | yes | How the scar was referenced |
| scar_id | string | yes | UUID of the scar |
| session_id | string | – | GitMem session UUID (for non-issue session tracking) |
| surfaced_at | string | yes | ISO timestamp when scar was retrieved |
| variant_id | string | – | UUID of the assigned variant from scar_enforcement_variants (for A/B testing) |
No output schema declared.
No examples provided.
resolve_thread ~105
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.
| Name | Type | Req | Description |
|---|---|---|---|
| resolution_note | string | – | Brief note explaining how/why thread was resolved |
| text_match | string | – | Fuzzy text match against thread descriptions (fallback if no thread_id) |
| thread_id | string | – | Thread ID (e.g., "t-a1b2c3d4") for exact resolution |
No output schema declared.
No examples provided.
search ~125
Search institutional memory by query. Unlike recall (which is action-oriented), search is exploration-oriented — returns matching scars/wins/patterns without side effects.
| Name | Type | Req | Description |
|---|---|---|---|
| learning_type | string | – | Filter by learning type |
| match_count | number | – | Number of results to return (default: 5) |
| project | string | – | Project namespace (e.g., 'my-project'). Scopes sessions and searches. |
| query | string | yes | Natural language search query (e.g., 'deployment failures', 'Supabase RLS') |
| severity | string | – | Filter by severity level |
No output schema declared.
No examples provided.
session_close ~228
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 tool with ONLY session_id and close_type. The tool reads the payload file automatically and deletes it after processing. task_completion is auto-generated from closing_reflection timestamps and human_corrections — do NOT write it to the payload. DISPLAY: The result includes a pre-formatted 'display' field. Output the display field verbatim as your response — tool results are collapsed in the CLI.
| Name | Type | Req | Description |
|---|---|---|---|
| ceremony_duration_ms | number | – | End-to-end ceremony duration from agent perspective (in milliseconds) |
| close_type | string | yes | Type of close (standard requires full reflection) |
| linear_issue | string | – | Associated Linear issue |
| session_id | string | yes | Session ID from session_start |
No output schema declared.
No examples provided.
session_refresh ~116
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 the CLI.
| Name | Type | Req | Description |
|---|---|---|---|
| project | string | – | Project namespace (default: from active session). Free-form string (e.g., 'my-project'). |
No output schema declared.
No examples provided.
session_start ~188
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.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_identity | string | – | Override agent identity (auto-detects if not provided) |
| force | boolean | – | Force create new session even if one already exists |
| issue_description | string | – | Issue description for scar context |
| issue_labels | array | – | Issue labels for scar context |
| issue_title | string | – | Issue title for scar context |
| linear_issue | string | – | Current Linear issue identifier (e.g., PROJ-123) |
| project | string | – | Project namespace (e.g., 'my-project'). Scopes sessions and searches. |
No output schema declared.
No examples provided.
What is the io.github.gitmem-dev/gitmem MCP server?
io.github.gitmem-dev/gitmem is an MCP server listed in the public MCP registry as io.github.gitmem-dev/gitmem. Persistent institutional memory for AI coding agents. Memory that compounds. This page covers its npm package (gitmem-mcp).
Is the io.github.gitmem-dev/gitmem MCP server safe to use?
io.github.gitmem-dev/gitmem scores 78 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.gitmem-dev/gitmem MCP server expose?
io.github.gitmem-dev/gitmem exposes 21 tools: recall, confirm_scars, session_start, session_refresh, session_close, and 16 more. Their descriptions and schemas cost roughly 2,614 tokens of context every time the server is loaded.
Is the io.github.gitmem-dev/gitmem MCP server still maintained?
io.github.gitmem-dev/gitmem is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the io.github.gitmem-dev/gitmem MCP server under?
io.github.gitmem-dev/gitmem declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.