Skip to main content
Glama

stafett ๐Ÿƒโ€โ™€๏ธ

Swedish for "relay race" โ€” because that's what it does: passes the baton between AI assistants.

A remote MCP server that gives all your AI assistants (Claude, ChatGPT, โ€ฆ) one shared memory. Work on something in one assistant, run out of tokens, open another one and say "continue where we left off" โ€” and it actually can.

The problem

AI assistants don't share anything with each other. If you use multiple accounts or providers, every switch means re-explaining everything. An MCP server can't read your chat history โ€” but it can give the assistant tools to save and restore working state. stafett makes that ergonomic:

  • Handoffs โ€” before switching, ask the assistant to "save a handoff": a structured snapshot (summary, decisions, next steps, open questions, snippets).

  • Journal โ€” sessions often die abruptly (token limits), too late for a handoff. The tool descriptions therefore instruct assistants to proactively log breadcrumb events during work, so there is always something to resume from.

  • Notes โ€” free-form shared memory for ideas, links and reminders.

Tools

Tool

Purpose

save_handoff

Save a structured snapshot of the current session for a project

resume

Fetch latest handoff + journal to continue in a new session

log_event

Append a breadcrumb to a project's journal (called proactively)

list_projects

List projects, most recently active first

save_note

Save a free-form note

search_notes

Keyword search across notes

Stack

TypeScript ยท official MCP SDK (stateless Streamable HTTP) ยท Express ยท Upstash Redis ยท deployed on Vercel.

Auth is a secret URL: the server only answers on /mcp/<long-random-token>. Claude and ChatGPT custom connectors support OAuth or no auth โ€” a secret URL is the pragmatic middle ground for a personal server. Treat the URL as a password, and don't store anything sensitive.

Run locally

npm install
cp .env.example .env   # set MCP_SECRET (openssl rand -hex 32); Upstash optional locally
npm run dev            # http://localhost:3000/mcp/<MCP_SECRET>

Without Upstash credentials the server uses in-memory storage โ€” fine for local testing, useless in production.

Deploy

  1. Create a free Redis database at Upstash (or via Vercel Marketplace).

  2. npx vercel โ€” set env vars MCP_SECRET, UPSTASH_REDIS_REST_URL, UPSTASH_REDIS_REST_TOKEN.

  3. Your connector URL is https://<your-app>.vercel.app/mcp/<MCP_SECRET>.

Add to your assistants

  • Claude (claude.ai / Desktop): Settings โ†’ Connectors โ†’ Add custom connector โ†’ paste the URL. No auth.

  • ChatGPT: Settings โ†’ Connectors (requires developer mode) โ†’ Create โ†’ paste the URL. No auth.

  • Claude Code: claude mcp add --transport http stafett <url>

Add the same URL everywhere โ€” that's the whole point.