fmrl について
fmrlは、エージェントと人が共有ページを公開、編集、整理するための送信箱です。MCPサーバーはデフォルトで非公開ページを端末上で暗号化し、保持しないページは期限切れにします。
主な機能
- 01ページを公開して共有リンクを発行
- 02非公開ページを端末上で暗号化
- 03ページの編集とリビジョン管理
- 04ページの監視と更新通知
- 05公開範囲と有効期限の管理
- 06制限付きフォルダーでページファイルを保存・取得
活用シーン
- 01エージェントが作成した草稿をレビュー用に共有
- 02キャンバスの共同編集
- 03ファイル経由で大きなページを取得・編集
- 04共有ページの更新状況を追跡
MCP 対応
fmrl-mcpは、ページの公開、取得、編集、監視、整理、管理に加え、キーやサーバー状態の確認を行う14個のツールを提供します。Claude Desktop、Cursor、Codex、WindsurfなどのMCPクライアントから接続できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y fmrl-mcpFMRL_API_KEYシークレットOptional. An fmrl.site API key; the server mints its own on first publish when unset.FMRL_API_URLOptional. Another fmrl host, for a preview or a local run. Default https://fmrl.site.FMRL_AGENT_NAMEOptional. Names the revisions this key makes; without it the MCP client's own name fills an unset one.FMRL_RINGシークレットOptional. The key ring for private pages, 32 random bytes as unpadded base64url; set it where the config directory does not persist.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
14掲載時のツール一覧 · 今日に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| title | string | いいえ | ページタイトル。省略すると最初の見出しが使われます。非公開ページの場合、サーバーはタイトルを保存しません。Markdown からコンテンツをレンダリングする際、暗号化されたドキュメント自体のタイトルにこの値を使用し(省略時は最初の見出しを使用)、生の HTML はそのまま封印されます。 |
| format | enum | いいえ | html または md。省略するとサーバーが自動検出します。html | md |
| content | string | はい | 公開する HTML または Markdown。公開ページは最大 2 MiB です。非公開ページは先に暗号化されるため、約 1.4 MB まで収まります。 |
| private | boolean | いいえ | visibility の旧形式です。true は非公開、false は公開を意味します。visibility を優先してください。 |
| visibility | enum | いいえ | private(デフォルト):ここで暗号化してからアップロードします。リンクには #p= の後にキーが含まれ、fmrl.site 上でページのタイトルやプレビューは表示されず、そのキーがある場合のみ開けます。public:リンクを知っている人は誰でも閲覧でき、タイトルとプレビューが表示されます。どちらもページ上で保持できます。ユーザーが公開ページを依頼し、共有する内容を提示した後にのみ public を渡してください。private | public |
詳細
fmrl
エージェントの送信ボックスです。エージェントに fmrl への公開を依頼すると、アカウント不要でページの共有可能なリンクが返されます。エージェントと人が一緒にキャンバスを編集、整理できます。ページは保存しない限り自動的に期限切れになり、非公開ページはデバイスから送信される前に暗号化されます。
fmrl は Claude Code プラグインおよび MCP サーバー(fmrl-mcp)で、ページを fmrl.site に公開してリンクを返します。ページはデフォルトで非公開です。お使いのマシン上で暗号化され、完全なリンクを共有した相手なら誰でも読めますが、fmrl.site は読み取れません。ページの有効期間は 7 日間です。依頼があった場合にのみ公開される公開ページは、ページ自体から保存できます。
インストール
Claude Code:
/plugin marketplace add toogreatwtf/fmrl-plugin
/plugin install fmrl@fmrl-plugin
最新の状態を保つには、自動更新を有効にしてください。有効にできるのはご自身だけで、マーケットプレイスからは設定できません。プラグインは一度だけ有効化を提案しますが、/plugin → Marketplaces → fmrl-plugin → Enable auto-update から手動で切り替えることもできます。Claude デスクトップアプリでは、この設定は機能しません。手動で更新するか、プラグインが古くなったと通知したときに更新してください。手動で更新する場合は、claude plugin marketplace update fmrl-plugin、続いて claude plugin update fmrl@fmrl-plugin を実行し、Claude Code を再起動します。
Cursor:Customize を開き、次に Plugins を開いて、Add、Import Marketplace の順に選択し、リポジトリとして https://github.com/toogreatwtf/fmrl-plugin を貼り付けます(完全なアドレスを指定してください。Cursor は短縮形の owner/repo を受け付けません)。その後、fmrl を追加します。share、whoami、attach、status の各スキルと、同じ 14 個のツールが含まれています。プラグインは指定されたバージョンの fmrl-mcp を実行するため、Cursor でプラグインを更新するまで、ツールとスキルはどちらもインストール時のバージョンのままです。
任意の MCP クライアント(Claude Desktop、Cursor、Codex、Windsurf など):
{ "mcpServers": { "fmrl": { "command": "npx", "args": ["-y", "fmrl-mcp"] } } }
キーの設定は不要です。サーバーは初回の公開時にキーを発行し、ユーザーの設定ディレクトリに保存します。FMRL_API_KEY を設定するとそのキーが優先されます。FMRL_API_URL を設定すると、サーバーの接続先をプレビュー環境またはローカルの make dev に変更できます(デフォルトは https://fmrl.site)。FMRL_AGENT_NAME は、このキーで行ったリビジョンに付ける名前を指定し、すでに設定されている名前を置き換えます(指定がない場合、未設定の名前には MCP クライアント自身の名前が使われます)。
curl を使う方法(どちらも使いたくない方向け):
curl -sX POST https://fmrl.site/api/v1/keys
curl -sX POST https://fmrl.site/api/v1/publish \
-H "Authorization: Bearer fmrl_…" -H "Content-Type: application/json" \
-d '{"format":"md","content":"# hello"}'
利用できるもの
Claude Code では、/fmrl:share を使うと、指定したファイルまたはエージェントが作成したものなど、手元にある内容を公開できます。リンク、有効期限、管理と編集を許可する復旧リンクが返されます。復旧リンクでは削除できません。誰かにレビューしてもらうためにキャンバスを公開する際は、8 つのセクションと、その構成を記録する fmrl-profile ブロックを含む handoff-review スターターが提示されます。内容は fmrl.site/h4ndrv で確認できます。/fmrl:whoami では、キー、今月の利用枠、キーリングの保存場所、プラグインが最新かどうかを確認できます。/fmrl:status はローカルの状態から即座に応答し、fmrl-mcp とプラグインのバージョン、サーバーの起動元、このマシンのキーとキーリング、最後の API 呼び出しを表示します。/fmrl:status verbose では、fmrl.site から応答があるか、利用枠、受信トレイ、npm 上の最新の fmrl-mcp といったネットワークの確認結果も表示されます。
任意の MCP クライアントで、14 個のツールを利用できます:
| ツール | 機能 |
|---|---|
fmrl_publish | content、省略可能な format(html または md。省略時は自動検出)、省略可能な title、省略可能な visibility(デフォルトは private。アップロード前にここでページを暗号化し、リンクの #p= 以降にキーを含めます。public は暗号化せずに公開しますが、コンテンツまたはタイトルに一般的な種類の判別可能なトークン(秘密鍵ブロック、または AWS、GitHub、Slack、Anthropic、OpenAI、Google、Stripe、GitLab、npm、Hugging Face、fmrl のキー)が含まれている場合は拒否されます。これは追加の防護策であり、完全なシークレットスキャンではありません。以前の private フラグも引き続き使用できます) → ページの URL、有効期限、管理リンクに加え、エージェントが未接続の場合は、キーリングを #r= 以降に含む省略可能な接続リンク |
fmrl_publish_file | .html、.htm、.md、.markdown、.mdx、.txt ファイルへの path(公開時は最大 2 MiB、非公開時は約 1.4 MB)、省略可能な title、省略可能な visibility(デフォルトは private。アップロード前にここでページを暗号化し、リンクの #p= 以降にキーを含めます。public は暗号化せずに公開しますが、コンテンツまたはタイトルに一般的な種類の判別可能なトークン(秘密鍵ブロック、または AWS、GitHub、Slack、Anthropic、OpenAI、Google、Stripe、GitLab、npm、Hugging Face、fmrl のキー)が含まれている場合は拒否されます。これは追加の防護策であり、完全なシークレットスキャンではありません。以前の private フラグも引き続き使用できます) → fmrl_publish と同じ |
fmrl_get | ID または fmrl.site のリンク(#p= 以降にページキーが含まれる場合があります)、省略可能な rev(省略時は最新)、省略可能な to_file(true の場合、コンテンツを fmrl フォルダー内の <id>.md または <id>.html にモード 0600 で書き込み、コンテンツの代わりにそのファイルのパスを返します。大きなページやファイルから編集するページに使用します。同じページの以前のコピーがあれば、形式にかかわらず置き換えます) → ステータス、形式、サイズ、有効期限、保存されているかどうかに加え、そのリビジョンのコンテンツと作成者を返します。非公開ページは、リンクに含まれるキーまたはここに保存済みのキーで開きます。監視中のページのリビジョンを読むと、既読になります。ページに fmrl-profile ブロックが含まれる場合、解析済みのプロフィールと各セクションを含む見出しも返します |
fmrl_edit | ページ ID または URL、省略可能な独立した manage_token(トークンまたは /c/ リンク)、content または content_file(新しいコンテンツを読み込むページ専用ファイル。fmrl フォルダー内にある、to_file が書き込んだ <id>.md または <id>.html を名前またはフルパスで指定します。これにより、大きなページがモデルを経由しません。拡張子で形式が決まります。別のファイル、別のページのファイル、リンク、ハードリンクは拒否されます)、省略可能な format、title、base_rev(読み取ったリビジョン。より新しいリビジョンが保存されている場合、編集は失敗します) → 新しいリビジョン番号とリンクに加え、ページが現在監視中かどうかを返します(編集するとページが監視対象になるため、返信は fmrl_inbox に表示されます)。このキーが所有するページと、管理リンクを受け取ったページのいずれも編集できます。非公開ページは同じキーで保護されます |
fmrl_watch | ID またはリンク → ページを監視し、ほかの編集者が作成したリビジョンが fmrl_inbox に表示されるようにします。非公開ページを開くと、そのキーはここに保存されます。読んでも編集しないページで使用します。公開または編集したページは、すでに監視されています |
fmrl_inbox | なし → 監視中のページのうち、最後に読んでからほかのユーザーが更新したページを新しい順に返します。それぞれ fmrl_get で読み、既読にします |
fmrl_list | なし → このキーが所有するすべてのページを新しい順に(最大 50 件)返します。このマシンにキーリングがある場合は、非公開ページのタイトルとキー付きリンクも返します |
fmrl_set_visibility | ページ ID または URL(非公開ページの場合は #p= キー付き、またはこのマシンにキーがあるページ)、visibility(public または private)、省略可能な confirm と rev → 公開にする場合、リンクを持つ誰もが読めるテキストのプレビューとリビジョンを返します。本人が確認した後、confirm: true とその rev を指定して再度呼び出すまで、何も変更されません。プレビュー後にページが保存されていた場合、公開されません。キーまたはトークンを含むコンテンツは拒否されます。非公開にする場合は、ここでページを新しいキーで暗号化し、新しいリンクを返します。サーバーから以前の公開版、タイトル、プレビューが削除されます。ページの ID は維持されます。変更できるのは所有者キーだけで、保存済みページは変更できません |
fmrl_delete | ID または閲覧用 URL → このキーで公開したページを削除します |
fmrl_attach | 省略可能な machine(省略時はこのコンピューターのホスト名) → 10 分間有効な一度限りのリンクを生成します。リンクを開いて Attach を押した人にこのエージェントを接続し、使用可能な場合は #r= 以降にキーリングを含めます。照合用に、ページに表示される短いコードも返します。エージェントがすでに接続済みの場合はその旨を伝え、リンクは生成しません。また、エージェントにマシン名がまだない場合や machine で別の名前を指定した場合は、エージェントにマシン名を設定します |
fmrl_whoami | 省略可能な trust_vault(本人が /account で明示的に確認した、正確な形式のグループ化されたボールトフィンガープリント) → キーのプレフィックス、今月の使用枠、このキーに名前が付いているかどうかとその名前、このエージェントが ID に接続されているかどうか、未接続の場合はサーバーから提供された、またはこのプロセス内に保持された接続リンクを返します。レガシーサーバーでは、ブラウザーリンクの状態と、提供された場合はブラウザーリンクも返します(どちらのリンクも、使用可能な場合は #r= 以降にキーリングを含めます)。そのシークレットが最後にローテーションされた日時、キーリングの保存場所、Claude Code プラグインがこのプロセスを起動し、そのマニフェストが読み込まれている場合は、そのプラグインが最新かどうかも返します。アカウントのボールト同期とフィンガープリントに関する通知も表示します。失効したキーは置き換えずに失効したことを通知し、新しいキーの取得方法を案内します |
fmrl_status | 省略可能な verbose → このサーバーのバージョンと稼働時間、起動方法、インストール済みプラグインと最新かどうか(新しいバージョンがすでに隣にインストールされ、再起動待ちかどうかも含む)、このマシンのキーとキーリング、最後の API 呼び出しを、メモリとローカルファイルからまとめて返します。キーの生成や書き込みは行いません。verbose を指定すると、fmrl.site が応答するかどうかと応答速度、今月の使用枠、受信箱、npm 上の最新の fmrl-mcp も追加で返します。各呼び出しは数秒以内に完了します |
fmrl_redeem | code(fmrl.site の keys ページにあるキーコード。26 文字の英数字を 4 文字ごとにグループ化したもの。ハイフン、スペース、大文字小文字は問いません) → コードに含まれるキーと一度だけ交換し、そのキーをこのマシンに保存します。ブラウザーでローテーションしたキーは、この方法でエージェントに渡せます。「Redeem my fmrl key code …」と伝えてください |
fmrl_rotate | なし → キーのシークレットを置き換え、新しいキーを保存します。古いシークレットは直ちに使用できなくなります。プレフィックス、ページ、名前、使用枠、接続済みブラウザー、接続済みアプリ、キーリングは維持されます |
キーと制限
fmrl_get の to_file は、~/fmrl(Windows では %USERPROFILE%\fmrl。初回使用時にモード 0700 で作成されます)、または FMRL_FILES_DIR が指定する絶対パスのフォルダーにのみ書き込みます。すでに存在するフォルダーは、自分が所有し、自分以外には書き込み権限がない必要があります。content_file が読み取るのは、そのフォルダー内にある編集対象ページ自身のファイルだけです。そのため、ページやページに埋め込まれた指示によって、マシン上の別の場所にあるメモがアップロードされたり、あるページで開いた非公開コピーが別のページのもとで公開されたり、フォルダー外のファイルにページの内容が書き込まれたりすることはありません。
サーバーは初回使用時にキーを生成し、~/.config/fmrl/credentials.json($XDG_CONFIG_HOME/fmrl/credentials.json、Windows では %APPDATA%\fmrl\credentials.json)に保存します。API ベース URL ごとにキーは 1 つで、ファイルモードは 0600 です。FMRL_API_KEY を設定するとファイルのキーより優先され、その場合、fmrl_redeem と fmrl_rotate は、上書きされるキーを保存しないよう処理を拒否します。保存済みのキーが使えなくなると、次回の呼び出し時に新しいキーに置き換えられます。ただし、fmrl_whoami はまず失効したキーを報告します。ローテーション後のキーは同じプレフィックスを引き継ぐため、そのキーリングも引き続き適用されます。非公開ページのキーはページとともに移動し、同じファイルに保存されているキーリングで封印されます。ブラウザーに渡されるのはリンク内だけなので、fmrl.site は封印されたレコードを保存しますが、開くことはできません。すべてのページのキーを保持するには、このファイルをバックアップしてください。FMRL_API_KEY を設定し、ファイルシステムが永続化されないコンテナーでは、FMRL_RING も設定してください。値はパディングなしの base64url 形式による 32 個のランダムバイトです。たとえば、node -e "console.log(require('node:crypto').randomBytes(32).toString('base64url'))" のように生成できます。設定しない場合、再起動のたびに新しいキーリングが作成されます。FMRL_AGENT_NAME は、このキーで fmrl.site に作成するリビジョンの名前を指定します(ほかの編集者が作成者を確認できるようにするためです)。設定しない場合、キーに名前がなければ、MCP クライアント自身の名前が使われます。credentials.json と同じディレクトリにある pages.json(同じ保護設定)は、このマシンで開いた、または編集したページごとに、そのコンテンツキー(非公開ページのみ)と使用できた管理トークンを記憶します。そのため、ページのリンクや管理リンクを貼り付けるのは一度だけで済みます。キーあたり月 25 回の公開、ネットワークあたり 1 日 5 個のキー、ページあたり 2 MiB が上限です。非公開ページの上限は封印されたデータ全体に適用されるため、HTML はおよそ 1.4 MB まで収まります。コンテンツは fmrl.site の利用規定に従う必要があります。API の完全なリファレンスは fmrl.site/api を参照してください。
アカウントの保管庫へのキーリング同期
共有にアカウントは必要ありません。キーが非公開ページの同期を有効にしたアカウントに属している場合、ローカルの MCP サーバーは認証情報ファイルのキーリングを封印し、告知されたアカウント保管庫に同期します。公開または非公開の fmrl_publish または fmrl_publish_file が成功するたびに、公開後に新しい GET /api/v1/me を実行します。fmrl_whoami も毎回、新しい応答を使って同期します。保管庫に関する情報がホスト側の /mcp エンドポイントを経由することはありません。
サーバーは保管庫の公開鍵を検証し、初回使用時に固定する前にフィンガープリントを再計算します(TOFU)。固定情報は閲覧者のオリジンごとに credentials.json に保存されます。バージョンは引き続き 1 で、既存のキーとキーリングに加えて vault_pins が追加されます。過去のスロットにも ring_origins が記録されるようになりました。各キーリングについて、ローカルで確立したオリジンを記録します。フィンガープリントが変わると、利用者が /account でフィンガープリントを明示的に確認し、fmrl_whoami の省略可能な trust_vault を通じて、その正確なグループ化された値を指定するまで、アップロードは停止します。エージェントが変更後のフィンガープリントを自動的に信頼してはなりません。
設定されたオリジンについてローカルで由来が確認できるキーリングのみが対象になります。対象には、そのオリジンのもとにある保存済みキー(URL エイリアスを含む)と、ring_origins エントリにそのオリジンが記録された過去のスロットが含まれます。オリジン情報のない旧形式の履歴はディスク上に残りますが、同一オリジンの保存済みキーとプレフィックスおよびキーリングが正確に一致しない限り対象外です。一致するプレフィックスをサーバーが提示しても、別のオリジンのキーリングをエクスポートする権限にはなりません。この制約により、オリジンが設定されていない旧形式のキーリングでは復旧できる範囲が狭まります。明示的な移行手段が利用可能になるまでは、元のバックアップが必要です。
対象となるアクティブなリングが適格で、認証情報ファイルに保存されている場合は、専用のリクエストで最初に送信されます。アクティブなプレフィックス配下にある置き換え済みのバリアントはローカルに残り、アップロードされません。これにより、予算を使い切ったり、アクティブなボックスを上書きしたりすることを防ぎます。その他の適格なプレフィックスは、数値順の履歴順を維持し、保存済みキーのバリアントを最後にします。ボールトに保持されるボックスはプレフィックスごとに1つだけのため、過去のすべてのバリアントを復元することはできません。
各 PUT /api/v1/me/rings には、最大50個のボックスを含めることができ、同じプレフィックスを重複して含めることはできません。リクエストは公開クォータではなく、編集予算(API_EDITS_PER_HOUR、デフォルトは1時間あたり60回)を共有します。原子的な HTTP 400 ring_ownership 拒否が発生した場合に限り、クライアントは複数行のバッチに含まれる各項目を一度ずつ個別に試し、その他のプレフィックスの処理を続けます。拒否された単独項目は再試行されません。アクティブなリクエストのコストは編集1回分です。N行のバッチを分離する場合、最大で1+N回のリクエストが発生します。各パスの PUT 試行回数は最大10回で、429またはその他の運用上の失敗が発生すると直ちに停止します。各呼び出しで共有編集トークンを10個消費する場合があります。呼び出しを繰り返すと、引き続き1時間あたりの予算を消費します。次の認証済みツール呼び出しでは、最初から処理が始まります。スロットリング、ボックス化済みリングのキャッシュ、バックグラウンドタイマーはありません。HTTP 403/409による拒否は通知されず、409では常にステータスが不明のままです。認証情報の復旧では、別の場所に移動したファイルを保持し、固定の警告のみを出力します。要求された範囲のうち拒否されたもの、未完了のもの、または一部のみアップロードされたものは状態不明となり、同期済み/未同期のいずれの主張も行いません。ボールトデータの形式不正、永続化の失敗、ネットワーク/5xxの失敗が発生しても、元のツールの成功結果は維持され、固定の非機密診断メッセージが記録されます。whoami /me の主処理で失敗した場合は、通常のエラー/失効時の挙動が維持されます。
FMRL_RING がファイルスナップショットに追加されることはありません。環境変数のみのオーバーライド、または別の値によるオーバーライドでは、アクティブなプレフィックスに対する古いファイル内のバリアントが除外され、それらのアップロードに基づく同期ステータスの主張も省略されます。ボールトを利用できない場合でも、承認済みの未同期ステータスを報告することがあります。適格な保存済みアクティブプレフィックスのリングと同一のオーバーライドは、アップロード成功後に承認済みの同期済み表示の対象となる場合があります。コレクションが空の場合、PUT は送信されず、同期済みステータスも確立できません。認証情報ファイルと、FMRL_RING の値があればその両方のバックアップを保管してください。由来不明の履歴、置き換え済みのバリアント、申告されていないキーについては、元のバックアップ、キー付きリンク、またはすでにリングを保持しているブラウザーが引き続き必要になる場合があります。
本番コードが行うのはリングボックスのシールのみです。ボールトを開く機能も、ボールトの秘密鍵を入力する手段もありません。サーバーが受信するのはシール済みのボックスであり、平文のリング、ボールトの秘密鍵、復旧コード、PRF 出力は受信しません。ローカルのツール出力ではアカウント ID とボールト情報を省略しつつ、承認済みのグループ化されたフィンガープリント通知と、既存のブラウザー用 #r= リンクおよびプライベートページ用 #p= リンクは維持されます。
リングのアップロードには、すべてのボックスのシールに使用された、検証済みで固定されたフィンガープリントが含まれます。サーバーキーが変更されると 409 vault_changed が返され、クライアントが自動的に再試行することはありません。400 bad_request が返された場合、パスを停止し、分離処理は行いません。account_vault: null の場合、whoami の ID/クォータ/リンク情報は維持されますが、ボールト同期は固定の診断メッセージとともに不明のままとなります。
ライセンス
MIT、Too Great LLC。
ID サーバー互換性リリースの保留
承認された手順では、ID サーバーの切り替え前に互換性ブリッジをリリースします。このブリッジは両方のサーバー契約に対応しているため、レガシーサーバーの稼働中にクライアントを更新できます。パッケージのリリースはまだ承認されていません。マージ、バージョンの更新、パッケージの公開、本番環境の切り替えは、それぞれ該当する承認ゲートを通過する必要があります。main に新しいパッケージバージョンがマージされると、自動的に公開されます。このドキュメントは、その実行を許可するものではありません。
他の人のページを編集する場合は、そのページの ID または URL を id として指定し、復旧トークンまたは /c/<token> リンクを manage_token として別に指定してください。復旧リンクだけではページを特定できません。送信者にページの URL も尋ねてください。プラグインがページを見つけるために復旧リンクを開いたり使用したりすることはありません。復旧リンクで付与されるのは管理と編集の権限であり、削除の権限はありません。非公開のページキーは、ページ URL の #p= フラグメントとこのマシン上に保持されます。
移行期間中のサーバー互換性
互換性ブリッジは、レガシーのブラウザーリンク用フィールド(linked_at、
link_url、以前のエディターの name)と、ID 用フィールド(attached_at、
attach_url、label/display_name、公開時の recovery)の両方を受け入れます。ブラウザーをリンクしても、ID をアタッチしたとは報告されません。復旧状態が欠落している場合、その状態は不明です。使用済みまたは取り消されたリンクは、使用可能なものとして表示したり、後の編集用に保存したりしません。レガシーの管理リンクでは、既存のローカルトークン処理を維持します。ブリッジがページを見つけるために復旧リンクを開いたり、アタッチリンクを自動的に置き換えたりすることはありません。
セットアップ、ステータス確認、または保管庫の確認時に取得した任意のアタッチリンクは、API オリジンと認証情報ごとに、プロセスのメモリ内に最大 1 時間保持されます。publish と whoami では、以前に提供されたリンクをローカルのリングフラグメントとともに表示できます。アタッチ済みとの報告があると、この情報は消去されます。再起動するとこのキャッシュは失われます。また、別のプロセスや置き換えられたリンクによって、キャッシュ済みリンクが使えなくなることもあります。その状況を修復するための権限が永続化されたり、新たに発行されたりすることはありません。
HTTP レスポンスは、クローズドな MCP スキーマに投影されます。宣言済みフィールドは引き続き検証されます。無効なレスポンスを伴う publish の成功や、結果が不確かなタイムアウトが発生した場合、自動的に再公開してはいけません。まず fmrl_list と保存済みのページ情報を使って状態を照合してください。publish には引き続き冪等性がありません。このクライアントは Idempotency-Key を送信しません。
切り替え前に、ブリッジリリースの個別承認を得て、承認されたバージョンを公開し、クライアントを更新して再起動または再接続してもらってください。インストール済みパッケージだけでなく、実行中の fmrl_status のバージョンを確認してください。公開しても、すでに実行中の MCP プロセスや、そのキャッシュ済みスキーマは置き換わりません。その後に限り、切り替え準備のゲートを評価し、切り替えの個別承認を求めてください。この手順を踏んでも、すべてのクライアントが更新済みであるとは証明できません。古いプロセスは、書き込みの成功後も新しいサーバーのレスポンスを拒否する場合があります。その場合は自動的に再公開せず、状態を照合してください。テストの合格や実装レビューは、マージ、パッケージのリリース、デプロイ、切り替えを許可するものではありません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。