The bridge between your checkpoints and your AI tools

@keepgoingdev/mcp-server is a Model Context Protocol server that exposes your KeepGoing session data to AI assistants like Claude Code and GitHub Copilot.

It reads and writes to the local .keepgoing/ directory and communicates via stdio transport. No cloud, no network calls (except license activation).

Installation

No install needed. Use npx to run it directly:

npx -y @keepgoingdev/mcp-server

Or install globally:

npm install -g @keepgoingdev/mcp-server

Tools

The MCP server registers the following tools that AI assistants can call.

get_momentum

Get current developer momentum: last checkpoint, next step, blockers, and branch context. Use this to understand where the developer left off.

Parameters: None

Example response:

Response
## Developer Momentum

**Last checkpoint:** 3 days ago
**Summary:** Refactor middleware to support JWT rotation
**Next step:** Implement the verifyRefreshToken helper
**Current branch:** feature/auth-refresh
**Files touched (4):** auth.ts, middleware.ts, routes/token.ts, tests/auth.test.ts

get_session_history

Get recent session checkpoints. Returns a chronological list of what the developer worked on.

Parameters:

Name Type Default Description
limit number 5 Number of recent sessions to return (1-50)
branch string auto Filter to a specific branch, or "all" for all branches. Auto-detected from worktree context by default.

Example response:

Response
## Session History (last 3)

### 3 days ago
- **Summary:** Refactor middleware to support JWT rotation
- **Next step:** Implement verifyRefreshToken helper
- **Branch:** feature/auth-refresh
- **Files:** auth.ts, middleware.ts, routes/token.ts

### 1 week ago
- **Summary:** Setup database schema for users
- **Branch:** feature/auth-refresh

### 2 weeks ago
- **Summary:** Initialize project and CI pipeline
- **Branch:** main

get_reentry_briefing

Get a synthesized re-entry briefing that helps a developer understand where they left off. Combines session data, recent commits, and touched files into a structured briefing.

Parameters: None

Example response:

Response
## Re-entry Briefing

**Last worked:** 3 days ago
**Current focus:** Auth refresh token implementation
**Recent activity:** Modified auth and middleware files
**Suggested next:** Implement the verifyRefreshToken helper
**Quick start:** Open auth.ts and add the verifyRefreshToken function

save_checkpoint

Save a development checkpoint. Call this after completing a task or meaningful piece of work, not just at end of session. Each checkpoint helps the next session (or developer) pick up exactly where you left off.

Parameters:

Name Type Required Description
summary string Yes What was accomplished in this session
nextStep string No What to do next
blocker string No Any blocker preventing progress

Example response:

Response
Checkpoint saved.
- **ID:** a1b2c3d4-...
- **Branch:** feature/auth-refresh
- **Files tracked:** 4
- **Commits captured:** 2

get_decisions Pro

Get recent decision records. Returns detected high-signal commits with their category, confidence, and rationale.

Parameters:

Name Type Default Description
limit number 10 Number of recent decisions to return (1-50)
branch string auto Filter to a specific branch, or "all" for all branches. Auto-detected from worktree context by default.

Example response:

Response
## Decisions (last 2, branch feature/auth-refresh)

### Migrate from express-session to JWT
- **When:** 3 days ago
- **Category:** dependency-change
- **Confidence:** 85%
- **Branch:** feature/auth-refresh
- **Signals:** package.json modified; added new auth library

get_current_task Pro

Get the current live session task. Shows what the AI agent is currently doing, last file edited, and next step. Useful for multi-agent coordination and session awareness.

Parameters: None

Example response:

Response
## Live Session [Active]

- **Updated:** just now
- **Branch:** feature/auth-refresh
- **Doing:** Edit auth.ts
- **Last file:** src/auth.ts
- **Next step:** Add verifyRefreshToken function

activate_license

Activate a KeepGoing Pro license on this device. Unlocks add-ons like Decision Detection and Session Awareness.

Parameters:

Name Type Required Description
license_key string Yes Your KeepGoing Pro license key

deactivate_license

Deactivate the KeepGoing Pro license on this device. Frees the activation slot for use on another machine.

Parameters:

Name Type Required Description
license_key string No Specific license key to deactivate. If omitted and only one license is active, deactivates it automatically.

Prompts

Prompts are pre-built workflows that combine multiple tools into a single command. In Claude Code, they appear as slash commands (e.g. /keepgoing:reentry).

resume

Instructs the AI to call get_momentum and get_reentry_briefing, then synthesize a concise summary of where you left off and suggest what to work on next.

decisions

Instructs the AI to call get_decisions and get_momentum, then summarize recent architectural decisions, highlighting any on the current branch.

progress

Instructs the AI to call get_session_history (with a higher limit) and get_momentum, then synthesize a progress summary grouped by branch or feature. Formatted for standup or sprint review use.

CLI usage

The MCP server includes CLI flags for one-shot operations without starting the full server. These are used by session hooks (e.g., Claude Code SessionStart and Stop hooks).

--print-momentum

Print the last checkpoint summary and exit. Used by the SessionStart hook to show momentum context when opening a project.

keepgoing momentum --hook

Example output:

Output
[KeepGoing] Last checkpoint: 3 days ago
  Summary: Refactor middleware to support JWT rotation
  Next step: Implement the verifyRefreshToken helper
  Branch: feature/auth-refresh
  Worked on 4 files on feature/auth-refresh
  Tip: Use the get_reentry_briefing tool for a full briefing

--save-checkpoint

Auto-save a checkpoint from git activity and exit. Used by the Stop hook as a safety net, capturing work if no explicit checkpoint was saved during the session. Skips if a checkpoint was written within the last 2 minutes or if there are no new files or commits to capture.

keepgoing save --hook

--update-task-from-hook Pro

Update the current task from a PostToolUse hook. Reads hook payload from stdin to track which files the agent is editing in real time.

keepgoing task-update --hook

--print-current Pro

Print the current live task status and exit. Shows what the agent is working on right now.

npx -y @keepgoingdev/mcp-server --print-current

--update-task Pro

Update the current task with a JSON payload passed as the next argument. Used for programmatic task updates.

npx -y @keepgoingdev/mcp-server --update-task '{"taskSummary":"Working on auth"}'

All CLI flags accept an optional workspace path as an argument (defaults to current directory).

Integration guides

Claude Code

Global (recommended, works across all projects):

claude mcp add keepgoing --scope user -- npx -y @keepgoingdev/mcp-server

Per-project (scoped to one project):

claude mcp add keepgoing --scope project -- npx -y @keepgoingdev/mcp-server

Then run keepgoing setup claude to configure hooks and rules. Full setup guide

VS Code / GitHub Copilot

Quick install via deep link:

Or add manually via .vscode/mcp.json:

.vscode/mcp.json
{
  "servers": {
    "keepgoing": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@keepgoingdev/mcp-server"
      ]
    }
  }
}

Full setup guide

Cursor

Quick install via deep link:

Or add manually to ~/.cursor/mcp.json:

~/.cursor/mcp.json
{
  "mcpServers": {
    "keepgoing": {
      "command": "npx",
      "args": [
        "-y",
        "@keepgoingdev/mcp-server"
      ],
      "type": "stdio"
    }
  }
}

Cursor integration page

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json and restart Windsurf:

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "keepgoing": {
      "command": "npx",
      "args": [
        "-y",
        "@keepgoingdev/mcp-server"
      ],
      "type": "stdio"
    }
  }
}

Windsurf integration page

Generic MCP host

For any MCP-compatible host, configure a stdio server with the command:

npx -y @keepgoingdev/mcp-server [workspace-path]

If no workspace path is provided, the server uses the current working directory.

Data directory

All session data lives in .keepgoing/ at the root of your project. The MCP server reads and writes to this directory. If you also use the VS Code extension, both share the same data.

.keepgoing/
.keepgoing/
  meta.json          # Project identity (ID, timestamps)
  sessions.json      # All session checkpoints
  state.json         # Current state (last session, branch, focus)
  decisions.json     # Detected high-signal decisions (Pro)
  current-tasks.json # Live session task status (Pro)

meta.json contains the project ID and creation/update timestamps.

sessions.json stores all checkpoints, each with a summary, next step, optional blocker, git branch, touched files, and commit hashes.

state.json tracks the current state for quick access: last session ID, last known branch, last activity time, and an optional derived focus.

decisions.json stores detected architectural decisions with classification category, confidence score, and rationale. Written when commits match high-signal patterns. Requires a Decision Detection license.

current-tasks.json tracks what AI agents are currently working on in real time. Updated by the PostToolUse hook and cleared when a session ends. Supports multiple concurrent sessions. Requires a Session Awareness license.

Get started

Pick your AI tool and register the MCP server in under a minute.