# Session Forge (npm · session-forge)

Persistent memory and session intelligence for AI coding assistants. Zero config.

- Trust score: 64/100 (medium)
- Change this week: +18
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `session-forge`: 64/100 (this document), [markdown](https://verifymcp.io/servers/420247jake-session-forge/session-forge.md), [page](https://verifymcp.io/servers/420247jake-session-forge/session-forge)

## Channel facts

- Registry: `npm`
- Package: `session-forge`
- Version: `2.0.3`
- Transport: `stdio`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 146 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 49/100
  - AI-judged instruction clarity (fair).
  - Tool/resource definitions use about 1298 tokens (~86/item across 15 items; 15 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add 420247jake-session-forge -- npx -y session-forge
```

### Codex

```bash
codex mcp add 420247jake-session-forge -- npx -y session-forge
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "420247jake-session-forge": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "session-forge"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add 420247jake-session-forge --command npx --arg -y --arg session-forge
```

### Hermes

```yaml
mcp_servers:
  420247jake-session-forge:
    command: "npx"
    args: ["-y", "session-forge"]
```

### Other

```json
{
  "mcpServers": {
    "420247jake-session-forge": {
      "command": "npx",
      "args": [
        "-y",
        "session-forge"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 64, +4)

- [functional improvement] Stability: unverified → 0.27

### 2026-08-02 (score 60, +34)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- [functional regression] Security disclosure: fail → unverified
- [functional regression] Capabilities: pass → unverified
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Schema quality: unverified → fair
- [functional improvement] License: unverified → pass
- [functional] Licence: MIT

### 2026-08-01 (score 26, +5)

- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] MCP protocol: unverified → pass

### 2026-07-31 (score 21, −3)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 24, −22)

- [functional regression] Tool coverage: 100 → unverified
- [functional] First check of Schema quality: unverified

### 2026-07-27 (score 46)

First indexed and scored.

## MCP tools (15)

### `session_checkpoint` (~198 tokens)

Save current session state. Call this every 3-5 tool calls to protect against UI crashes. Required: task, intent, next_steps

Input parameters:

- `context` (object): Any important state/variables
- `dead_ends_hit` (array): Timestamps of dead ends recorded this session
- `decisions_made` (array): Timestamps of decisions recorded this session
- `errors_encountered` (array): Exact error messages hit during this session
- `files_touched` (array): File paths modified
- `intent` (string, required): What you are trying to accomplish
- `key_findings` (array): Important discoveries made during this session
- `next_steps` (array, required): Planned next steps
- `recent_actions` (array): Last 3-5 actions
- `status` (string): Current status
- `task` (string, required): Brief task name
- `tool_call_count` (number): Approx tool calls so far

### `session_restore` (~27 tokens)

Check for interrupted work from a previous session. Call this FIRST at the start of any session.

### `session_complete` (~36 tokens)

Mark the current session as complete. Call this when a task is finished.

Input parameters:

- `summary` (string): Brief summary of what was accomplished

### `profile_get` (~14 tokens)

Get the current user profile

### `profile_update` (~95 tokens)

Update user profile with preferences, notes, or project info. Call when learning something about the user.

Input parameters:

- `add_note` (string): Add a note about the user (observations, preferences)
- `add_project` (string): Add a project name to user's project list
- `name` (string): User's name if learned
- `preferences` (object): Preferences like {communication_style, emoji_usage, technical_level, verbosity}

### `journal_entry` (~134 tokens)

Record a session journal entry capturing the journey, not just the task. Call at END of meaningful sessions to preserve context.

Input parameters:

- `breakthroughs` (array): What clicked or worked unexpectedly well
- `collaboration_notes` (string): Notes about working together - user preferences observed, rapport
- `emotional_context` (string): How did the session feel? User concerns, celebrations, frustrations
- `frustrations` (array): What was difficult or annoying
- `key_moments` (array): Significant moments - breakthroughs, realizations, fun exchanges
- `summary` (string, required): What happened this session (conversational, not just technical)

### `journal_recall` (~44 tokens)

Retrieve recent session context and journeys. Call at START of sessions to remember the relationship.

Input parameters:

- `sessions_count` (number): How many recent sessions to retrieve (default 3)

### `decision_record` (~117 tokens)

Record a significant decision made during development. Helps future sessions understand why choices were made.

Input parameters:

- `alternatives` (array): What other options existed
- `choice` (string, required): What was decided
- `outcome` (string): How it turned out (can be updated later)
- `project` (string): Which project this relates to
- `reasoning` (string, required): Why this choice was made
- `related_dead_ends` (array): Timestamps of dead ends that led to this decision
- `tags` (array): Tags for searching later

### `decision_search` (~98 tokens)

Search past decisions to understand why things are the way they are

Input parameters:

- `fuzzy` (boolean): Enable fuzzy matching for typos (default: true)
- `limit` (number): Max results to return (default 20)
- `mode` (string): Search mode: 'and' requires all words, 'or' matches any (default: or)
- `query` (string, required): Search term
- `tags` (array): Filter by tags

### `dead_end_record` (~114 tokens)

Record a debugging dead end so we don't repeat it. Captures what was tried and why it failed.

Input parameters:

- `attempted` (string, required): What was tried
- `files_involved` (array): Files involved
- `led_to_decision` (string): Timestamp of the decision this dead end led to
- `lesson` (string): What to remember for next time
- `project` (string): Which project
- `tags` (array): Tags for searching
- `why_failed` (string, required): Why it didn't work

### `dead_end_search` (~95 tokens)

Search past dead ends to avoid repeating mistakes

Input parameters:

- `fuzzy` (boolean): Enable fuzzy matching for typos (default: true)
- `limit` (number): Max results to return (default 20)
- `mode` (string): Search mode: 'and' requires all words, 'or' matches any (default: or)
- `query` (string, required): Search term
- `tags` (array): Filter by tags

### `full_context_recall` (~72 tokens)

Get EVERYTHING - user profile, recent sessions, decisions, dead ends. Use when starting fresh to get full context.

Input parameters:

- `memory_md_path` (string): Absolute path to MEMORY.md file to include in context and check for sync suggestions
- `project` (string): Filter decisions and dead ends by project name

### `data_manage` (~98 tokens)

Manage session-forge data. Actions: prune (remove entries older than N days), export (dump all data as JSON), clear (wipe a specific store), stats (show entry counts and file sizes).

Input parameters:

- `action` (string, required): Action to perform
- `days` (number): For prune: remove entries older than this many days (default: 90)
- `store` (string): Which data store to act on (default: all)

### `data_list` (~70 tokens)

List stored entries in a data store. Returns numbered summaries for browsing. Use with data_delete to remove specific entries.

Input parameters:

- `limit` (number): Max entries to return (default 10)
- `query` (string): Optional search filter to narrow results
- `store` (string, required): Which store to list

### `data_delete` (~86 tokens)

Delete a specific entry from a data store by its index from data_list. Returns the deleted entry for confirmation.

Input parameters:

- `entry_index` (number, required): 1-based index of the entry to delete (from data_list output)
- `query` (string): If data_list was filtered by query, provide the same query so indexes match
- `store` (string, required): Which store to delete from

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/420247jake-session-forge/session-forge#diagnostics

## Score history

- 2026-08-03: 64
- 2026-08-02: 60
- 2026-08-01: 26
- 2026-07-31: 21
- 2026-07-30: 24
- 2026-07-28: 46
- 2026-07-27: 46

## Links

- npm package: https://www.npmjs.com/package/session-forge
- Socket report: https://socket.dev/npm/package/session-forge
- Repository: https://github.com/420247jake/session-forge
- Changelog RSS feed: https://verifymcp.io/servers/420247jake-session-forge/session-forge/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/420247jake-session-forge/session-forge/changelog.json
- HTML version of this page: https://verifymcp.io/servers/420247jake-session-forge/session-forge
