Skip to content

jev-carryforward

MCP server with record and recall tools: facts are logged during a session and Jev keeps only those relevant to the next task.

MCP serverbetaMIT

Overview

carryforward is an MCP server that preserves what earlier agent sessions knew. Its record tool saves a fact the moment it happens, typed as a constraint, decision, measurement or thread with optional references and refresh notes; its recall tool, run at the start of a task, brings facts back and uses Jev via the Vercel AI Gateway to keep only those that matter for that task. Nothing is summarised and nothing is deleted. It targets what summaries lose when sessions end or are compacted: the reasons behind decisions, measured numbers, rules that then get broken, and guesses later repeated as facts.

The README reports a revealing eval using claude plugin eval: on a task where a rule recorded earlier said never to force-push, the agent with the tools and skill installed called recall zero times in four runs and proposed a force push. The author's conclusion is that an available MCP tool is not enough, which is why a SessionStart hook injects relevant facts. Mocks make eval runs deterministic and free. It installs with npx for Claude Code, Cursor, Claude Desktop or any MCP client, needs Node 22+, has CI and is MIT licensed.

What the decision model decides

TypeQuestionAnswers
Yes / noIs this recorded fact relevant to the current task?(inferred)yes · no

How it works

  1. Record facts with type and reference during work
  2. At task start, recall with the task description
  3. Jev filters the ledger to relevant facts
  4. SessionStart hook injects them so the agent sees them

Strengths

  • No summarisation loss; facts kept verbatim
  • Relevance filtering keeps context small
  • Deterministic, free eval runs with mocks

Caveats

  • Agents may ignore recall without the hook
  • Requires a Vercel AI Gateway key

Getting started

`claude mcp add carryforward -e AI_GATEWAY_API_KEY=$AI_GATEWAY_API_KEY -- npx -y carryforward`.

At a glance

Type
MCP server
Status
beta
Language
TypeScript
Runtime
MCP server (Node 22+)
Has code
yes
Has tests
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • What your last session knew, scored against what this one is doing. MCP server: a per-project ledger written as things happen, recalled per task with TypeSafe's Jev evaluation model via Vercel AI Gateway.

    logicrw/awesome-jev-projects

Frequently asked questions

What does Jev decide?

Which recorded facts are relevant to the task being started.

What did the eval find?

Agents never called recall on their own in four runs, motivating the SessionStart hook.

Which clients are supported?

Claude Code, Cursor, Claude Desktop and any MCP client.

Related projects

  • Project memory for Claude Code that asks Jev whether each chat statement is worth keeping and checks tool calls against saved rules.

    ProjectbetaTypeScript
  • Local memory for coding agents that stores verbatim quotes and has Jev grade memory lines as keep, stale, wrong or unsupported.

    ProjectbetaPython
  • Claude Code plugin and npm library that replaces the compaction summary with Jev keep, truncate or drop scores for every tool call.

    PluginbetaTypeScript
  • Cursor CLI plugin that asks Jev keep-or-drop nouls for each tool call and result, then re-injects kept facts after compaction.

    CLIbetaTypeScript
  • Local compaction proxy for Claude Code and Codex that compacts more often with local rules and keeps full history searchable.

    ProxybetaGo
  • Claude Code plugin where Jev asks one yes/no per standing rule and delivers only the rules relevant to each prompt, once per session.

    ProjectbetaJavaScript