Verified Handles について
Verified Handlesは、人、組織、物事と、それらの公式ソーシャルアカウントや識別子を記録するサービスです。AIエージェントはレコードの検索や履歴の閲覧ができ、認証方法とアカウント権限に応じて操作も行えます。
主な機能
- 01公開レコードと履歴の検索
- 02レコードの検索とハンドルからの特定
- 03アカウントのロールに応じたツール提供
- 04OAuthまたはAPIキーによる認証
- 05変更操作はデフォルトでドライラン
活用シーン
- 01人物や組織の公式ソーシャルアカウントの確認
- 02ソーシャルハンドルに紐づくレコードの検索
- 03レコードの履歴と過去の変更の確認
- 04変更を適用せず提案内容を確認
MCP 対応
MCPサーバーは `https://verifiedhandles.org/mcp` でホストされ、ステートレスなStreamable HTTPを使用します。キーなしでは公開読み取りツールを利用でき、APIキーまたはOAuthではアカウント権限に応じて追加ツールを利用できます。変更操作はデフォルトでドライランです。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://verifiedhandles.org/mcpclaude mcp add --transport http org-verifiedhandles-verified-handles https://verifiedhandles.org/mcp{"mcpServers":{"org-verifiedhandles-verified-handles":{"type":"http","url":"https://verifiedhandles.org/mcp"}}}Cursor で開く{"servers":{"org-verifiedhandles-verified-handles":{"type":"http","url":"https://verifiedhandles.org/mcp"}}}VS Code で開く{"mcpServers":{"org-verifiedhandles-verified-handles":{"type":"http","url":"https://verifiedhandles.org/mcp"}}}{"mcpServers":{"org-verifiedhandles-verified-handles":{"serverUrl":"https://verifiedhandles.org/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://verifiedhandles.org/mcp認証が必要ツール
5| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| entry | string | はい | エントリー。VHID(11 桁)、短縮名(verifiedhandles.org/<short> の形式)、または Wikidata QID(Q42)を指定します。 |
| include_platforms | boolean | いいえ | ハンドルを登録できるすべてのプラットフォーム(id、名前、URL プレフィックス)も一覧表示します。API キーが必要です。 |
詳細
Verified Handles MCP サーバー
Verified Handles には、人、組織、物事と、それらの公式ソーシャルメディアアカウントやその他の識別子が掲載されています。この MCP サーバーを使うと、AI エージェントはキーなしで項目の検索、エントリーの検索、履歴の閲覧ができ、キーまたはアカウントがあれば、サイト上でできる操作も行えます。
このリポジトリには、接続に必要な情報があります。サーバー自体は https://verifiedhandles.org/mcp で稼働しており、そのコードはここにはありません。すべてのツールを網羅した完全なガイドは https://verifiedhandles.org/developers/mcp にあります。
- バージョン 1.59.1:変更内容は CHANGELOG.md をご覧ください。
- ツール:サーバーの一覧に記載されているとおり、キーなしの場合と登録アカウントのキーありの場合の一覧があり、それぞれ入力と出力のスキーマを含みます。
- Claude Desktop 拡張機能:ワンクリックでインストールできます。mcpb/。
- MCP Registry の掲載情報:server.json。
- 問題や質問がありますか? Issue を作成してください。
以下のガイドは https://verifiedhandles.org/developers/mcp にあるものと一言一句同じです。そのため、ガイド内の「このサイト」と「ここ」は verifiedhandles.org を指します。
ここでの MCP について
MCP(Model Context Protocol)は、AI エージェント(Claude、Cursor、Copilot など)が呼び出し可能なツールを通じてサービスを利用する仕組みです。Verified Handles サーバーは MCP の Streamable HTTP トランスポートを使用し、https://verifiedhandles.org/mcp で稼働しています。ステートレスで、各メッセージは単一の POST で送信され、JSON で応答が返り、維持するセッションはありません。
すべてのツールは、サイトやその他の API と同じルートとチェックを通じて実行されます。エージェントが行えるのは、自分自身ではできない操作ではなく、キーがあればあなたとして操作します。意図せず変更が加えられることはありません。変更を伴うツールは、明示的に指示されるまでは、実行した場合に何が起きるかを表示するだけです(ドライランを参照)。
このサーバーは MCP Registry に org.verifiedhandles/verified-handles として登録されており、セットアップガイド、変更履歴、Claude Desktop 拡張機能はGitHubにあります。
接続する前に、クライアントはサーバーの名前、バージョン、アドレスを含むカードを https://verifiedhandles.org/mcp/server-card で読み取れます。エージェント検索ツールは、サーバーと読み取り API を https://verifiedhandles.org/.well-known/ard.json で見つけられます。
キーなし、読み取り専用キー、またはフルキー
| 接続方法 | 一覧に表示されるツール | 操作主体 |
|---|---|---|
| キーなし | ほかに何も必要としない公開読み取りツール:get_entry、search_entries、find_by_handle、get_entry_history、get_entries。Authorization ヘッダーを省略してください。 | サインアウト状態の訪問者:公開記録のみ。 |
| 読み取り専用キー | あなたのロールで一覧に表示されるすべての読み取りツール。変更を伴うツールはありません。 | あなた(読み取りのみ)。 |
| キー | あなたのロールで一覧に表示されるすべてのツール(各ロールで一覧に表示されるツールを参照)。 | キーのロール上限と現在のあなたのロールのうち、低い方の権限で操作するあなた。 |
送信されたキーが間違っている、取り消されている、または期限切れの場合は 401 で拒否され、キーなしとして扱われることはありません。回答は誰によってもキャッシュされません。
キーの取得
どのアカウントでもキーを作成できます。登録済みアカウントと信頼された編集者はデフォルトで作成でき、管理者はすべての権限を持ちます。(管理者はアカウントから権限を剥奪できます。)サインインし、メニューで Console を選択し、次に Account、そして Manage API keys を選びます。
- キーは作成時に一度だけ表示されます。形式は
vhk_<prefix>_<secret>です。安全な場所に保管してください。漏洩した場合は同じページで失効させれば、即座に機能しなくなります。 - ロールの上限はあなた自身のロール以下です。キーがそれ以上の権限として動作することはなく、あなたから剥奪されたロールはあなたのキーからも剥奪されます。
- 読み取り専用。読み取りのみを行う場合、エージェントには何も変更するツールが提示されません。
- 有効期限は 1 日から 90 日です。同時に最大 5 個のキーを保持できます。
アカウントで接続する(OAuth)
OAuth でサインインするクライアント(Claude、Claude Code、ChatGPT、VS Code、Cursor)は、API キーなしであなたとして動作できます。それらを https://verifiedhandles.org/mcp/account に接続します。クライアントは Verified Handles のページを開き、そこでサインインして、許可する内容を選択します。ロールの上限、読み取り専用、および期間(7 日、30 日、90 日)です。
https://verifiedhandles.org/mcp はそのままです。キーがなければ公開読み取り、API キーがあればあなたのアカウントとして動作します。接続済みのアプリは Console → Account → API keys にあり、そこで切断できます。同時に最大 10 個まで接続できます。スクリプトなど、この方法でサインインできないクライアントには、これまでどおり API キーを使用してください。
Claude Code
ターミナルで
claude mcp add --transport http verified-handles https://verifiedhandles.org/mcp/account
次に Claude Code で /mcp を実行し、verified-handles と Authenticate を選択します。ブラウザーで Verified Handles のページが開きます。
claude.ai と Claude のアプリ
アドレス https://verifiedhandles.org/mcp/account を指定してカスタムコネクターを追加し(Settings、Connectors、Add custom connector)、詳細設定は空のままにして、Connect を選択します。
VS Code
.vscode/mcp.json
{
"servers": {
"verified-handles": {
"type": "http",
"url": "https://verifiedhandles.org/mcp/account"
}
}
}
VS Code は初回接続時にサインインを求めます。
ChatGPT
開発者モードで、アドレス https://verifiedhandles.org/mcp/account と認証方式に OAuth を指定してコネクターを作成します。または、https://verifiedhandles.org/mcp をキーなしで開始します。読み取りが可能で、ChatGPT が後であなたに確認したときに、あなたの Verified Handles アカウントをリンクできます。
Cursor など、自身を登録するその他のアプリ
一部のクライアント(Cursor を含む)は自身の詳細を公開せず、初回接続時に自身を Verified Handles に登録します。これは機能しますが、そのようなアプリを誰が作成したかは誰にも確認できないため、ページには Unverified app と表示され、API キーのページにも Unverified と表示されます。詳細が公開されている場所の代わりに、アプリがあなたを戻す先、つまりウェブアドレス、あなた自身のコンピューター、またはデバイス上のアプリの場合はそれが開くアドレスの種類(com.example.app: など)が表示されます。どのアプリでも好きな名前を名乗れるため、まさに今あなた自身が接続を開始した場合にのみ許可してください。
Cursor: mcp.json
{
"mcpServers": {
"verified-handles": {
"url": "https://verifiedhandles.org/mcp/account"
}
}
}
headers がない場合、Cursor は接続時にサインインを求めます。代わりに API キーを使用するには、クライアントのセットアップを参照してください。
ページが求めるもの
ページには、アプリが自称する名前、その詳細が公開されているウェブアドレス、そしてあなたを戻す先が表示されます。まさに今あなた自身が接続を開始したアプリのみを許可してください。アプリはあなたのアカウントができることを実行できますが、あなたが選択したロールを超えることはなく、あなた自身のロールが変更された場合はそれを超えることもありません。有効期限が過ぎると再度確認を求められますが、それより早く切断することもできます。
クライアント作成者向け
- トークンなしで
https://verifiedhandles.org/mcp/accountにリクエストすると、401とともにWWW-Authenticate: Bearer resource_metadata="https://verifiedhandles.org/.well-known/oauth-protected-resource/mcp/account", scope="mcp"が返ります。メタデータはhttps://verifiedhandles.org/.well-known/oauth-protected-resource/mcp/account(RFC 9728)とhttps://verifiedhandles.org/.well-known/oauth-authorization-server(RFC 8414)にあります。 - クライアントは Client ID Metadata Document で登録します。その
client_idは、そのドキュメントのhttpsアドレスです。それがない場合は、https://verifiedhandles.org/oauth/registerで登録できます(Dynamic Client Registration、RFC 7591)。その場合、利用者には未検証として表示されます。いずれの場合もクライアントシークレットはありません。登録済みクライアントのリダイレクト URI は、https:、ループバックのhttp:(その場合、任意のポートが一致します)、またはドットを含む私用スキーム(RFC 8252 §7.1、たとえばcom.example.app:/callback)です。それ以外は破棄されます。1 つのアドレスからの登録は 1 時間に最大 10 件です。一度も使用されなかった登録は 24 時間後に削除されます。 - PKCE を使用した認可コードフローで、
S256のみです。resourceを送信してください。これは接続先のアドレス(https://verifiedhandles.org/mcp/account、またはhttps://verifiedhandles.org/mcp)です。トークンはそこでのみ機能し、ほかのどこでも機能しません。スコープはmcpの 1 つだけで、issがコードとともに返ります。 - コードは 1 回だけ、60 秒間有効です。アクセストークンは 1 時間有効です。リフレッシュトークンは使用するたびに置き換えられ、古いものを再度使用すると接続が終了します。トークンは
Authorization: Bearerとして送信し、クエリ文字列には決して入れないでください。取り消しはhttps://verifiedhandles.org/oauth/revokeで行います。
クライアントの設定
以下の各レシピはキーを使用して接続します。キーを使用しない場合は、Authorization ヘッダー(またはそれを送信する設定)を省いてください。vhk_<prefix>_<secret> と書かれている箇所にはご自身のキーを入れ、共有したりコミットしたりするものには含めないでください。クライアントが環境変数から読み取れる場合は、レシピもそうしています。
Claude Code
ターミナルで
# No key: the public reads
claude mcp add --transport http verified-handles https://verifiedhandles.org/mcp
# With a key (add --scope user to have it in every project)
claude mcp add --transport http verified-handles https://verifiedhandles.org/mcp \
--header "Authorization: Bearer vhk_<prefix>_<secret>"
または、プロジェクトの .mcp.json に記述し、Claude Code の起動時に環境からキーを読み取ります。
.mcp.json
{
"mcpServers": {
"verified-handles": {
"type": "http",
"url": "https://verifiedhandles.org/mcp",
"headers": {
"Authorization": "Bearer ${VH_API_KEY}"
}
}
}
}
Cursor
~/.cursor/mcp.json(すべてのプロジェクト)またはプロジェクトの .cursor/mcp.json に記述します。
mcp.json
{
"mcpServers": {
"verified-handles": {
"url": "https://verifiedhandles.org/mcp",
"headers": {
"Authorization": "Bearer ${env:VH_API_KEY}"
}
}
}
}
VS Code
ワークスペースの .vscode/mcp.json に記述します。VS Code は最初にキーを尋ねて保持するため、ファイル内に残ることはありません。
.vscode/mcp.json
{
"inputs": [
{
"type": "promptString",
"id": "vh-api-key",
"description": "Verified Handles API key",
"password": true
}
],
"servers": {
"verified-handles": {
"type": "http",
"url": "https://verifiedhandles.org/mcp",
"headers": {
"Authorization": "Bearer ${input:vh-api-key}"
}
}
}
}
Claude Desktop
以下で説明する claude.ai と同様に、カスタムコネクタとして追加します(設定、コネクタ、カスタムコネクタを追加)。または、mcp-remote ブリッジを介して(Node.js 18 以降が必要です)、claude_desktop_config.json に記述します。キーは env に記述します。一部のクライアントは引数内のスペースを安全に渡さないためです。
claude_desktop_config.json
{
"mcpServers": {
"verified-handles": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://verifiedhandles.org/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer vhk_<prefix>_<secret>"
}
}
}
}
claude.ai とその他のカスタムコネクタ
claude.ai(および Claude のデスクトップアプリとモバイルアプリ)では、アドレス https://verifiedhandles.org/mcp でカスタムコネクタを追加します。サインインなしを選択してください。それだけで、キーなしで読み取れます。キーを使用するには、リクエストヘッダー Authorization に値 Bearer vhk_<prefix>_<secret> を追加します。コネクタはあなたのコンピューターではなく Anthropic のサーバーから呼び出すため、それらのアドレスのレート制限を共有します。自分のものとしてカウントされるようにするにはキーを使用します。キーを送信する代わりにサインインするには、アドレス https://verifiedhandles.org/mcp/account を使用します。詳しくは アカウントで接続する(OAuth) をご覧ください。
接続をテストする
curl
curl -s https://verifiedhandles.org/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H "Authorization: Bearer $VH_API_KEY" \
--data '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
# Leave out the Authorization line to see what no key is listed.
ドライラン、確認、提案
何かを変更するツールは、デフォルトでは何もしません。 そのまま呼び出すと、dry_run: true で実行されます。現在のエントリーを読み取り、変更する内容、送信する正確なリクエスト、およびあなたのアカウントで変更できるかどうかを回答します。変更するには、dry_run: false を指定して再度呼び出します。
何かを削除する変更やサイト全体に影響する変更には、さらに confirm が必要です。ドライランで示された正確な対象(たとえばエントリーの VHID)を設定することで、誤って変更が行われるのを防ぎます。
エントリーを公開せずに変更するには、提案します。propose_* ツールは、サイト上で提案を送る場合と同じように、レビュー担当者に変更を提案として送り、担当者が承認するまで何も変更しません。同じ提案を再度送信すると、すでに保留中の提案が回答として返されます。公開中の内容を編集する各ツールには、同じ変更を提案するツールが記載されています。
ブラウザー内(WebMCP)
WebMCP は、あなたが閲覧しているページの横で、あなた自身のブラウザー上で動作する AI エージェントがサイトを利用するための仕組みです。接続先のアドレスもキーも必要ありません。サイトのページがエージェントにツールを提供し、各ツールはページ内で実行されます。
すべてのページで、5 つのツールが公開情報を読み取ります。サインアウト中の訪問者にできないことは実行できません。
search_entries、get_entry、get_entry_history:キーなしで使う同名のツールと同じです。get_current_entry:エントリーページで、ページに表示されているエントリーを取得します。open_entry_page:このサイト内でのみ、エントリーのページを開きます。
エントリーページでサインインしている場合は、さらに 2 つのツールを利用できます。どちらも何も保存しません。
start_entry_edit:エージェントによる変更を、エントリーの下書きとしてエディターに入力します。自分で[保存]または[編集を提案]を押したときにのみ送信され、すでにある下書きが置き換わることはありません。propose_entry_change:変更内容を表示して確認を求めます。あなた自身が**[提案を送信]**をクリックした場合にのみ、サイト上で提案を送る場合と同じように、レビュー担当者への提案として送信されます。[キャンセル]を押すと何も送信されません。レビュー担当者には、AI エージェントの支援を受けて作成されたことが表示されます。
設計上、コンソールからエージェントが使えるツールはありません。
有効にする方法。 WebMCP は新しい機能で、まだ対応していないブラウザーもあります。このサイトは Chrome と Edge のオリジントライアルに参加しているため、トライアル対象のバージョンでは、設定不要でツールを利用できます。それ以外の場合は、Chrome 149 以降で chrome://flags/#enable-webmcp-testing を開き、[Enabled]に設定して Chrome を再起動します(または --enable-features=WebMCP を指定して Chrome を起動します)。また、Chrome の Model Context Tool Inspector 拡張機能など、ツールを呼び出すエージェントも必要です。
レート制限
キーなしのメッセージは、1 つの IP アドレスにつき毎分 60 件に制限されます。同じ IP アドレスから呼び出すすべてのユーザーで共有されます。他のユーザーのサーバーでホストされたエージェントを使う全員も同様です(claude.ai コネクターからの呼び出しは Anthropic のサーバーから行われます)。キーを使う場合、またはアカウントに接続している場合は、メッセージの送信元を問わず、キーごとに毎分 120 件までです。各ツール呼び出しも、サイトへのあらゆるリクエストと同様、ツールが行うリクエストに応じてカウントされます。読み取りは JSON 読み取りの制限(毎分 120 件)に、変更はアドレス、アカウント、キーごとの変更制限にカウントされます。制限を超えると、Retry-After ヘッダーを伴う 429 Too Many Requests が返されます。指定された秒数だけ待ってから再開してください。
Claude Desktop 拡張機能
mcpb/ フォルダーは Claude Desktop の拡張機能です。Claude Desktop は独自の Node.js でこれを実行し、mcp-remote を起動して、サーバーに接続します。設定項目は API キーの 1 つだけで、任意です。空欄のままにすると、拡張機能はキーなしで読み込みます。Claude Desktop は入力中のキーを非表示にし、安全に保存します。
ビルド済みファイル verified-handles.mcpb はリリースページにあります。Claude Desktop で開くとインストールできます。このフォルダーから自分でビルドするには(Node.js 18 以降が必要です):
cd mcpb
npm install --omit=dev
npx @anthropic-ai/mcpb pack
このリポジトリについて
サーバーが変更されるたびに、ここにあるすべてのファイルは Verified Handles のソースから生成されるため、これらのファイルへのプルリクエストは上書きされます。代わりにイシューを作成してください。
このリポジトリは MIT ライセンスです。LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。