mcpField
H
handover.tools

handover.tools

リモート
handover.toolsAI・エージェント01 週間前に更新
リポジトリ公式サイト

handover.tools について

handover.toolsは、短いリンクを使ってAIエージェント、デバイス、事業者、または人の間で作業を引き継ぐサービスです。1回限りのテキスト引き継ぎと、複数回のやり取りに使えるエンドツーエンド暗号化チャネルを提供します。

主な機能

  1. 01一度限りのリンクでテキストを転送
  2. 02チャネルでメッセージを交換
  3. 03チャネル内容のエンドツーエンド暗号化
  4. 04引き継ぎの期限設定または終了
  5. 05アカウントやインストールなしで利用

活用シーン

  1. 01スマートフォンのエージェントからPCへ作業を移す
  2. 02別事業者のエージェントにメモを渡す
  3. 032つのエージェント間で複数回やり取り
  4. 04アカウントを作らずにテキストを共有

MCP 対応

MCPエンドポイント `https://handover.tools/mcp` は、MCPクライアントに引き継ぎツールを提供し、新旧のプロトコル世代に対応します。RESTエンドポイントと、チャネル用のローカルPythonクライアントも提供します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://handover.tools/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

8
パラメーター型必須説明
labelstringいいえ取得した人が内容を確認できるように表示する任意の短いヒントです。最大 120 文字。
contentstringはい引き継ぐテキスト。UTF-8 で最大 256 KB。
ttl_minutesintegerいいえ内容を取得できなくなるまでの分数。デフォルトは 60、最大は 1440(24 時間)。
burn_after_readbooleanいいえtrue の場合(デフォルト)、内容は 1 回だけ取得でき、取得時に削除されます。

詳細

handover.tools

test

あるエージェントが書き、別のエージェントが読みます。エージェント間でやり取りするのは、8文字のリンクだけです。

handover.toolsを使うと、デバイス間、ベンダー間、または別の人へ、ある作業を別のAIエージェントに引き継げます。スマートフォンでエージェントとブレインストーミングし、「handover.toolsで引き継いで」と伝えます。表示されたリンク(handover.tools/kvmtrhxp)をノートパソコンのClaude Codeに貼り付けると、エージェントは既存のドキュメントがある場所から作業を再開します。

アイデアをコンテキストに持ち込みましょう。コンテキストをアイデアに持ち込むのではありません。

アカウント登録もインストールも不要です。ウェブページを開けるエージェントなら、どれでも利用できます。

2つのモード

ワンショットチャンネル
用途1つのテキストを引き継ぐ2つのエージェント間で複数回やり取りする
暗号化**なし。**サーバーが内容を読めるため、秘密情報は含めないでくださいエンドツーエンド(SPAKE2 + ChaCha20-Poly1305)。サーバーに保存されるのは暗号文のみです
有効期間最初の読み取り後、または60分後に消去されます(最長24時間)どちらかが閉じるまで
エージェントに必要な機能URLを開ける、またはMCPを使えるPythonスクリプトを実行できる(uv run)
誰が決めるか人がリンクを持ち運びます人が送信のたびに承認し、取得のたびに開始します
ワンショット
curl -X POST https://handover.tools/api/handoff/put \
     -H 'Content-Type: application/json' \
     -d '{"content":"...","label":"notes"}'          # → {"code":"kvmtrhxp", "revoke_key":"...", ...}
curl "https://handover.tools/api/handoff/get?code=kvmtrhxp"

handover.tools/<code>を開いても、コードは消費されません。このURLは手順を返し、実際の読み取りは2回目のリクエストで行われます。そのため、SlackやiMessageのリンクプレビューによって、受信者が見る前に内容が消費されることはありません。

チャンネル
curl -so ~/.handoff/channel.py --create-dirs https://handover.tools/client/channel.py
uv run ~/.handoff/channel.py open --name study --brief "..."   # machine A: prints a code
uv run ~/.handoff/channel.py join kvmtrhxp --name study        # machine B
uv run ~/.handoff/channel.py send --name study --kind question --file q.md
uv run ~/.handoff/channel.py fetch --name study

8文字は、サーバーが認識してチャンネルの検索に使う3文字のネームプレートと、マシンAで生成されてアップロードされない5文字のパスワードで構成されます。パスワードは、magic-wormholeで使われているのと同じ仕組みであるSPAKE2に渡されます。サーバーはパスワードを知ることがないため、どちらかになりすますことはできません。/client/channel.pyはclient/channel.pyから提供され、そのsha256は/api/discoverで公開されています。そのため、ダウンロードしたクライアントがこのリポジトリのものと一致するか確認できます。

私たちが主張しないことも含めた脅威モデルについては、handover.tools/securityをご覧ください。

エージェント向け

  • MCPエンドポイント:https://handover.tools/mcp。2026-07-28(モダン)と、2025-11-25以前(レガシー)の両方のプロトコル世代に対応しています。
  • プレーンテキストの手順書:/llms.txt、/guide.md、/security.md
  • RESTスキーマ全体:/api/discover

構築方法

  • **Cloudflare Python Workers + D1。**Workerは1つで、ほかのインフラはありません。ルート、MCPのtools/list、/api/discoverはすべて、単一のツールレジストリ(src/registry.py)から生成されるため、互いに食い違うことはありません。
  • **制限は多層化されています。**呼び出し元ごとに、1日あたり書き込み10回、呼び出し200回の上限があり、さらに全体の日次上限も設定されています。このサイトはWorkers Freeプランで稼働しているため、支出の上限は0ドルです。
  • **フォントはセルフホストされ、**Workerに埋め込まれているため、訪問者のIPアドレスが第三者に送信されることはありません。呼び出し元のIPアドレスは30日後に消去されます。
src/
  entry.py        routing, MCP (dual-era), content negotiation
  registry.py     @tool decorator — one source for REST, MCP and discover
  tools/handoff.py, tools/channel.py   the two tools
  guard.py        quotas and the operator blocklist
  meter.py        per-call metering
  page.py, docs.py, style.py   the website and docs pages
client/channel.py   the local E2EE client, run on the user's machine
tests/              end-to-end, channel and quota test suites
scripts/            dev, deploy, repository checks, operator tools

ドキュメント

ドキュメント内容
docs/system-design.mdアーキテクチャ:コンポーネント、リクエストパイプライン、データモデル、フロー、信頼境界、制限と容量、障害モード、既知の不足点
docs/spec/handoff.mdワンショットの仕様:操作、コード形式と正規化、原子性、コードリンク、制限
docs/spec/channel.mdチャネルプロトコル:ペアリング、SPAKE2 パラメーター、鍵スケジュール、ワイヤ形式、受信側のルール、サーバー API、ライフサイクル。2つ目のクライアントを実装できる詳細さです
docs/decisions.mdこの設計にした理由:試したこと、採用しなかったこと、問題が起きたこと
CHANGELOG.md変更内容を新しいものから記載しています。handover.tools/changelog でも確認できます

仕様が契約です。動作の変更は仕様から始まり、それにコードとテストが続きます。

ローカルで実行する

Node ≥ 22 および Python 3.12 が必要です。

npm install
scripts/dev.sh      # generates src/*_src.py and public/, then runs wrangler dev on :8787
tests/e2e.sh        # end-to-end tests against the local server
tests/channel.sh    # two isolated clients: pairing, tampering, replay
tests/quota.sh      # quota gates (local only: edits counters directly)
scripts/check.sh    # repository rules: English only, every Dxx reference resolves

CI では、プッシュのたびにチェックと3つのテストスイートを実行します。

独自にデプロイする

  1. npx wrangler d1 create <name> を実行し、名前と ID を wrangler.toml に設定します。
  2. routes のパターンを使用するドメインに変更します。
  3. CLOUDFLARE_API_TOKEN=… scripts/deploy.sh

テーブルは最初のリクエスト時に作成されます。scripts/block.sh には、不正利用の報告に対応する運用者向けツールがあります。IP アドレスまたは範囲からの書き込みをブロックしたり、リンクからハンドオフを検索または削除したりできます。

コントリビューションとセキュリティ

イシューやプルリクエストを歓迎します。AGENTS.md には、人にもコーディングエージェントにも適用される作業ルールが記載されています。動作の変更は docs/spec/ の仕様から始まり、その後にコードとテストを変更します。脆弱性は非公開で報告してください。SECURITY.md をご覧ください。

ライセンス

MIT。フォント:Atkinson Hyperlegible、SIL OFL 1.1(assets/fonts/LICENSE.txt を参照)。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。