handoff-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@handoff-mcpcheck the current state of project ABC"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
handoff-mcp (v1)
1つのプロジェクトを北極星(NORTH STAR)に集中させ続けるためのリモート MCP サーバー。
世代交代(新チャット=新MCPセッション)で目的を見失わないのが核なので、状態(北極星・本丸・
後処理タスク)は**セッションを跨いで共有される D1(Worker全体で共有の SQLite)**に project_id
単位で保持する。get_state は「フラットなTODOに崩さない」ための固定フォーマット文字列を返す。
drive-snippets-mcp を雛形に、MCP の口(Streamable HTTP / SSE)・URLトークン認証・ wrangler 設定・デプロイ配線はそのまま流用し、中身(ストレージ+ツール)だけ差し替えたもの。
状態(D1 / SQLite, 3テーブル)
project(id TEXT PK, name TEXT, north_star TEXT NOT NULL)
focus(project_id TEXT UNIQUE, statement TEXT, why TEXT) -- 常に1件(UPSERT)
task(id TEXT PK, project_id TEXT, body TEXT, kind TEXT, demoted INTEGER, status TEXT)kindはmain | cleanup | record。cleanupとrecordはdemoted=1(後処理)。focusはプロジェクトにつき常に1件(project_idが UNIQUE)。
Related MCP server: Graph
ツール(5本)
ツール | 入力 | 動作 |
|
| 下の出力契約の固定フォーマットで現在地を返す |
|
| 北極星を設定/更新。 |
|
| 本丸を UPSERT(常に1件) |
|
|
|
|
|
|
get_state の出力契約(この固定フォーマットで返す)
🎯 NORTH STAR: {north_star}
▶ 本丸(今やる1つ): {focus.statement}(理由: {why})
— 以下は後処理(北極星達成後・今は着手しない)—
[cleanup] {body}
[record] {body}get_state の description 末尾には次の固定文を必ず載せている:
この出力をフラットなTODOメニューに変換するな。まず北極星を述べ、本丸を1つ進めよ。後処理は北極星達成後にのみ着手。
補足:
「本丸」は
focus.statement(常に1つ)。kind=mainのタスクは保存するが get_state には並べない。後処理一覧は
demoted=1かつ未完了(status != 'done')のタスクのみ。whyが無いときは(理由: …)を省く。
アーキテクチャと認証
Cloudflare Workers + agents SDK(McpAgent) / TypeScript /
@modelcontextprotocol/sdkトランスポート: Streamable HTTP(
/mcp)と SSE(/sse)の両方を公開認証(v1)= URL に秘密トークン: 先頭パスが
AUTH_TOKENと一致しなければ 404
https://<worker>.workers.dev/<AUTH_TOKEN>/mcp
https://<worker>.workers.dev/<AUTH_TOKEN>/sseセッションを跨いだ状態共有(handoff の核)
McpAgent は各リクエストを streamable-http:${sessionId} という名前の DO に振り分ける。
initialize のたびに新しい session id が振られる=新チャットは必ず別の DO(別の this.sql)
になるため、状態を McpAgent の DO に置くと次のチャットで空になり handoff が成立しない。
そこで状態は D1(Worker 全体で 1 つの共有 SQLite) に project_id 列でキーして持つ。
McpAgent の DO はセッション(MCP トランスポート)の管理だけを担い、業務状態は持たない。
これでどのセッションからでも同じ project_id の北極星・本丸・タスクを読み書きできる。
ローカル開発
npm install
cp .dev.vars.example .dev.vars # AUTH_TOKEN を設定(既定値あり)
# ターミナルA: サーバ起動(http://127.0.0.1:8787。ローカル D1 は wrangler が自動用意)
npm run dev
# ターミナルB: セッションを跨いだ handoff の E2E 受け入れテスト
npm run smokenpm run smoke は本物の Streamable HTTP で3 つの別セッションを張り、
セッション A で set_north_star(空エラー含む)→ set_focus → add_task×3 を書いたあと、
別セッション B から同じ project_id で get_state を叩いて北極星・本丸・後処理が
そのまま返ること(=世代交代しても目的を見失わないこと)を assert する。さらに B で
complete_task し、third セッション C から完了が反映されていることも確認する。
デプロイ(後追い)
# 1) 共有 D1 を作成し、返ってきた id を wrangler.jsonc の d1_databases[0].database_id に貼る
npx wrangler d1 create handoff
# 2) 秘密トークンを登録
npx wrangler secret put AUTH_TOKEN
# 3) デプロイ
npm run deployスキーマは初回アクセス時に
CREATE TABLE IF NOT EXISTSで自動作成される(手動マイグレーション不要)。
This server cannot be deployed
Maintenance
Related MCP Connectors
Cloud-hosted MCP server for durable AI memory
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Share one project context across ChatGPT, Claude, Telegram and any MCP client.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA self-hosted MCP server that provides AI assistants with a shared, persistent SQLite-backed memory for storing and retrieving project context, decisions, and discoveries. It enables cross-session continuity and team-wide knowledge sharing to keep AI coding tools aligned and informed.3MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that gives your agent a persistent project brain: vision, architecture decisions, conventions, roadmaps, and automatic session handoff.20 npm6MIT
- AlicenseNot gradedqualityCmaintenanceShared, live team memory for Claude — a remote MCP server on Cloudflare Workers + D1.20 npmMIT
- AlicenseNot gradedqualityBmaintenanceA remote MCP server for structured sequential thinking, enabling users to create, revise, and manage sequences of steps with persistent state via Cloudflare Workers and Durable Objects.Apache 2.0