Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
MCP server that checkpoints Claude Code session context to survive crashes and token limits
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
CHECKPOINT_PROJECT_ROOT, CLAUDE_CODE_SESSION_ID필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"claude-checkpoint": {
"command": "npx",
"args": [
"-y",
"session-checkpoint-mcp"
],
"env": {
"CHECKPOINT_PROJECT_ROOT": "your-value",
"CLAUDE_CODE_SESSION_ID": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add claude-checkpoint --env CHECKPOINT_PROJECT_ROOT=your-value --env CLAUDE_CODE_SESSION_ID=your-value -- npx -y session-checkpoint-mcp실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"claude-checkpoint": {
"command": "npx",
"args": [
"-y",
"session-checkpoint-mcp"
],
"env": {
"CHECKPOINT_PROJECT_ROOT": "your-value",
"CLAUDE_CODE_SESSION_ID": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"claude-checkpoint": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"session-checkpoint-mcp"
],
"env": {
"CHECKPOINT_PROJECT_ROOT": "your-value",
"CLAUDE_CODE_SESSION_ID": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
CHECKPOINT_PROJECT_ROOT envCLAUDE_CODE_SESSION_ID env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검
레지스트리 이름이 GitHub 계정 daniel-munoz 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.3.3)은 오늘 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Kanal Varna — drains, leaks & plumbing (Varna, BG)
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Drain unblocking, leak detection & plumbing in Varna, Bulgaria: services, prices, areas, contact
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
Save your Claude Code session state locally, so a crash, `/clear`, or context limit doesn't make Claude rebuild context from scratch.
session-checkpoint-mcp is a local Model Context Protocol server with three tools:
save_session_checkpoint writes your session's working state to a small JSON file in the project.load_session_checkpoint turns that file back into a compact resume brief.list_session_checkpoints lists the checkpoints in the project, so you can pick which session to resume.Each Claude Code session gets its own checkpoint, so several sessions can share a directory without overwriting each other.
It runs entirely on your machine. Nothing is sent anywhere.
Fork of tenlean/claude-checkpoint-mcp by Tenzin. The repository keeps that original name. The server is published as session-checkpoint-mcp, and the Claude Code plugin is session-checkpoint.
A long Claude Code session builds up a lot of context:
Several things can wipe that out mid-task:
/clear to get a fresh window.The next session starts cold. To get back to where you were, Claude has to rebuild that context:
grep, git diff, ls, test runs, all just to rediscover state.Each of those turns resends the growing conversation as input, so the cost compounds.
`session-checkpoint-mcp` swaps that rebuild for one small, structured read:
| Without a checkpoint | With load_session_checkpoint | |
|---|---|---|
| Restoring the goal & constraints | You retype them, or Claude infers them | One section of the brief |
| Knowing what's done vs. pending | Re-derived from code and git | Task list with statuses |
| Knowing which files matter | Broad re-reading | Exact list of touched files, with notes |
| Knowing what changed since | Re-read everything to be safe | Only files whose content actually changed are flagged |
| Remembering failed attempts | Often repeated | Recorded under *Decisions & gotchas* |
The resume brief for a typical session is about 1.2 KB of markdown, a few hundred tokens. The example below is real output at that size.
The biggest saving comes from drift detection. At save time, the server records a content hash for every file with uncommitted changes. On load, it compares those hashes against the working tree and tells Claude exactly which files changed after the checkpoint. Everything else in the brief can be trusted as-is, so Claude re-reads only what it has to.
Session 1 Session 2 (after crash / /clear)
───────── ──────────────────────────────── Claude ──save_session_checkpoint──┐ ┌──load_session_checkpoint── Claude goal, tasks, summary, │ │ compact markdown brief next steps, decisions, ▼ │ + "changed since checkpoint" files, commands ┌─────────────────────┐ │ / │ server adds: │ .claude-checkpoint │◀── git: branch, HEAD, git branch/HEAD, │ .claude-checkpoint │ dirty files + hashes dirty files + hashes, │ .prev (backup) │ redacts secrets └─────────────────────┘
Claude Code passes each MCP server its session id (CLAUDE_CODE_SESSION_ID). The server uses it to give every session its own file, /.claude-checkpoints/ .json, so sessions that share a directory (/tmp, or wherever you run claude agents) never overwrite or merge into each other.
resumedFrom). The original is never modified. /.claude-checkpoint file, exactly as before. A .claude-checkpoint left by an earlier version shows up in the list as legacy.The session id an MCP server sees is the one it was started with:
| You… | The server sees | Result |
|---|---|---|
start a fresh claude (e.g. after a crash) | a new id | the list, so you pick what to resume |
run /clear | the same id as before the clear | the pre-clear checkpoint loads directly; later saves keep updating it |
run claude --resume | that id | that session's checkpoint loads directly |
run claude --continue, or --resume without an id | possibly a different id | the list |
Requirements: Node.js 20+ and git. Git is optional, but without it you lose drift detection.
git clone https://github.com/daniel-munoz/claude-checkpoint-mcp.git
cd claude-checkpoint-mcp npm install npm run build
The server entry point is now at dist/index.js.
From npm. The server is also published as session-checkpoint-mcp. In any of the configurations below, you can replace node /absolute/path/to/claude-checkpoint-mcp/dist/index.js with npx -y session-checkpoint-mcp:
claude mcp add --scope user checkpoint -- npx -y session-checkpoint-mcp
(The npm package claude-checkpoint-mcp is the upstream project's 0.1.0 release, not this fork.)
| Variable | Set by | Required | Default | What it does |
|---|---|---|---|---|
CHECKPOINT_PROJECT_ROOT | You (optional) | No | Unset: the client's root, then the server's working directory | Absolute path of the default project to checkpoint. Use it for clients with no current project, such as Claude Desktop. A projectRoot argument on a tool call takes precedence. |
CLAUDE_CODE_SESSION_ID | Claude Code, automatically | No | Unset: one shared .claude-checkpoint file | Picks this session's checkpoint file, .claude-checkpoints/ .json. You don't set it. See one checkpoint per session. |
As a plugin (easiest). This repo is also a Claude Code plugin marketplace. You don't need to clone or build anything:
claude plugin marketplace add daniel-munoz/claude-checkpoint-mcp
claude plugin install session-checkpoint@daniel-munoz
Restart Claude Code, then /mcp should show plugin:session-checkpoint:session-checkpoint as connected.
Upgrading from 0.2.x or earlier? The plugin was renamed from
claude-checkpoint-mcptosession-checkpointin 0.3.0, because Claude Code reserves theclaude-prefix for its own plugins. Uninstall the old plugin and install the new one:
`sh
claude plugin uninstall claude-checkpoint-mcp@daniel-munoz
claude plugin marketplace update daniel-munoz
claude plugin install session-checkpoint@daniel-munoz
`
The full tool names changed from
mcp__plugin_claude-checkpoint-mcp_claude-checkpoint__*tomcp__plugin_session-checkpoint_session-checkpoint__*. Update any permission allowlists insettings.json, hooks, or instructions that use the old names. Short names such assave_session_checkpointand your existing checkpoint files are unaffected.
Manual setup. If you cloned the repo, register the server once for your user account, so it's available in every project:
# Run from the claude-checkpoint-mcp directory
claude mcp add --scope user checkpoint -- node "$PWD/dist/index.js"
Use an absolute path. A user-scoped server is launched from whichever project you open Claude Code in. A relative path like
./dist/index.jswould resolve against *that* project, not this repo."$PWD/dist/index.js"expands to the absolute path when you run the command, which is what gets saved.
Check that it's registered:
claude mcp list
Inside a session, /mcp should show checkpoint as connected.
Project-scoped alternative. To share the server with a team through version control, add it to the project's .mcp.json:
{
"mcpServers": { "checkpoint": { "command": "node", "args": ["/absolute/path/to/claude-checkpoint-mcp/dist/index.js"] } } }
Either way, add the checkpoint files to the project's .gitignore, or to your global gitignore:
.claude-checkpoint*
claude_desktop_config.json)Open the config file:
| OS | Path |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
Add the server under mcpServers, using the absolute path to your local build:
{
"mcpServers": { "checkpoint": { "command": "node", "args": ["/absolute/path/to/claude-checkpoint-mcp/dist/index.js"], "env": { "CHECKPOINT_PROJECT_ROOT": "/absolute/path/to/your/project" } } } }
Restart Claude Desktop after saving the file.
Claude Desktop has no notion of a "current project". Use
CHECKPOINT_PROJECT_ROOTto set the default project, or have Claude passprojectRooton each call (*"save a checkpoint for /home/me/code/my-app"*). See project root resolution.
Any MCP client that supports the stdio transport can run the server:
node /absolute/path/to/claude-checkpoint-mcp/dist/index.js
npx -y session
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요