MCP.Market

Baton MCP server

by kasabeh.tech·tech.kasabeh/baton·v0.3.0·27 stars

Pass the baton between coding agents: convert sessions across Claude Code, OpenCode, Codex & more.

B74/100grade B
What users say
No reviews yet
Be the first
Safety scan
B74/100

full report

Adoption
Growing

27 stars41 downloads/wk

Reviews

Write one

Nobody has reviewed Baton yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Baton tools

No tool declarations could be read from the package source. They show once the server is installed.

Public scan report

scanner v0.1.9 · 2026-09-26 · same rubric, same numbers if you re-run it

2 medium
  • Code scan6 source files scanned15/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 24 days ago15/15
  • Maintainer identitynamespace and repository owner differ; GitHub account older than a year6/10

Findings (2)

  • mediumnpm install lifecycle script presentinstall.script
  • mediumnpm install lifecycle script presentinstall.script
    package.json: …check": "prettier --check **/*.js", "postinstall": "node ./install.js" }, "supportedPl…
Overall 74/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Baton compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
74/100
higher than 40% of 48,255 servers
GitHub stars
27
more than 91% of 28,688 servers
Downloads a week
41
more than 33% of 12,191 servers with a package

Install Baton in Claude Code, Cursor or VS Code

Runs npx -y @kasabeh/baton-mcp on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add baton -- npx -y @kasabeh/baton-mcp
Add to Cursor

What the publisher says

From the Baton repository's README, as published. We do not edit it. Read it on GitHub

Pass the baton between coding agents.

Convert any coding-agent session to any other. One command. Keep going where you left off.

A passed transcript kept 14/17 concrete facts. A hand-written handoff summary kept 3/17. Benchmark ↓

The 4 p.m. problem

It's 4 p.m. Claude Code says "usage limit reached — resets at 10 p.m." You're three hours into a session: architecture decided, edge cases mapped, half the diff written.

❌ Without baton — open another agent and start from zero. Re-explain the plan. Re-read the files. Re-litigate every decision you already made.

✅ With baton — pass the session and keep going:

baton convert --from claude-code --to opencode --latest --import
# using latest claude-code session: 2026-07-09 15:58  Refactor the auth middleware to…
# passed baton: claude-code → opencode (1388 messages) → handoff.json
# Imported session: ses_8c4c973a521549e2

opencode -s ses_8c4c973a521549e2   # same conversation, different runner

Works in every direction: switch agents mid-task, try a second opinion on a hard bug, move a session from your editor agent to a terminal agent, or archive everything in one format.

Quick start

# zero-install run (downloads prebuilt binary)
npx @kasabeh/baton-mcp --help

# convert your most recent session + auto-import into the target agent
baton convert --from claude-code --to opencode --latest --import

# or omit the path to pick interactively — newest first,
# each session previewed by its first user message
baton convert --from claude-code --to opencode --import

# or pass an explicit session file
baton convert --from claude-code --to opencode <session.jsonl> --import

# see every session on your machine, across all agents
baton list

Where do session files live?

You never have to hunt these down (--latest and the interactive picker find them for you), but for reference — each agent stores its transcripts on disk:

baton list prints the path of every session it can find, across all agents.

Supported formats

¹ Cursor reads from exported JSON (sqlite3 state.vscdb "SELECT value FROM ItemTable WHERE key='aiService:chats'")

² Not planned: Cursor and Cline keep session state inside editor databases (SQLite / VS Code globalState) with no file-level import path.

Benchmark

Does carrying the full transcript beat writing a handoff summary for the next agent? We measured both on a real 3.4 MB Claude Code session (same model both arms, only the context differs):

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Baton: common questions

Is Baton MCP server safe?
Mostly: it is graded B (74/100). Read the Baton safety report
How do I install Baton?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Baton need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is Baton maintained?
The last commit was 64 days ago (2026-09-01). The latest release is v0.3.0.
What can I use instead of Baton?
Servers from other publishers that do the same job: Claudexor MCP server and Deja Vu MCP server.
How does Baton compare with other MCP servers?
safety score 74/100 (higher than 40% of 48,255 servers); github stars 27 (more than 91% of 28,688 servers); downloads a week 41 (more than 33% of 12,191 servers with a package). Full comparison.

Alternatives to Baton

Same job from other publishers: the closest match first, then the best rated.

  • Claudexor
    Route coding work across Claude Code, Codex, Cursor, and OpenCode with shared context.
    A
  • Deja Vu
    deja-vu: local memory over the session histories of forty-three coding agents.
    A