io.github.gitmem-dev/gitmem
NPM · GITMEM-MCP · SCANNED AUG 3
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 →
Supply Chain Security70
- 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
- Only part of the dependency tree could be resolved (96 of 100), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
- 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 36 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability65
- AI-judged instruction clarity (good).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 Management27
- Stability observed for 8 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
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · gitmem-mcp
claude mcp add gitmem-dev-gitmem -- npx -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": {
"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.
- 3 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 2 Aug 26 +5
- Known CVEs: unverified → fail ▼ security
- Provenance: fail → unverified ▼ security
- Install scripts: pass → unverified ▼ security
- Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
- License: pass → unverified ▼ functional
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Maintenance: pass → unverified ▼ functional
- Dependency health: unverified → partial ▲ functional
- Stability: unverified → 0.23 ▲ functional
- First check of Schema quality: unverified functional
- Licence: MIT functional
- 1 Aug 26 −5
- Known CVEs: fail → unverified ▼ security
- Dependency health: partial → unverified ▼ functional
- 31 Jul 26 +34
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 −18
- Malware scan: pass → unverified ▼ security
- 27 Jul 26 45
First indexed and scored.
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 3 Aug 2026 · Analysed npm/[email protected]
Provenance none
Ecosystem: npm · Outcome: none
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 |
Dependencies 96 packages
96 packages in the resolved dependency tree · 96 deprecated · 29 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
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.
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.