mcpField
M
McpStamp Check

McpStamp Check

リモート
mcpstamp.com開発ツール04 日前に更新
リポジトリ公式サイト

McpStamp Check について

McpStamp Check は、Claude、ChatGPT、Gemini、MCP Registry に対するリモート MCP サーバーの対応状況を評価します。スコア、評価、各サービスの状態、修正案を示し、GitHub Action による CI 検査にも対応します。

主な機能

  1. 01サーバーの対応状況を 0〜100 点で評価
  2. 02評価ランクとサービス別の状態を表示
  3. 03不合格項目と修正案を提示
  4. 04個々のチェック項目と出典を説明
  5. 05GitHub Action による CI ゲート

活用シーン

  1. 01リリース前の MCP エンドポイント確認
  2. 02プロトコルやメタデータの不足箇所の特定
  3. 03対象アプリディレクトリごとの対応状況確認
  4. 04条件未達時に CI を失敗させる設定

MCP 対応

Streamable HTTP を使用するリモート MCP サーバーでもあります。サーバー URL の評価とチェック項目の説明をツールとして公開し、サービス別の対応状況や問題、修正案を返します。

設定

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

エンドポイントhttps://mcp.zovo.one/stamp/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 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

McpStamp Check

任意のリモート MCP サーバーについて、Claude Directory、ChatGPT Apps、Gemini Connected Apps、MCP Registryへの対応状況をスコア化します。0〜100 のスコア、A〜F の評価、ストアごとの対応状況、および各不合格チェックに対する修正案を1行で表示します。

お試しください:https://www.mcpstamp.com/check/

Readiness Index:https://www.mcpstamp.com/readiness/では、公式 MCP Registry に登録されているリモートサーバーを、このエンジンのスコア順に並べ、各サーバーのストアごとの対応状況を表示します。

バッジ

チェック後、バッジを README に埋め込めます(<id> はチェック結果に記載されています)。

[![McpStamp](https://www.mcpstamp.com/badge/<id>.svg)](https://www.mcpstamp.com/check/?id=<id>)

バッジには、評価に応じた色で McpStamp | 87 B と表示されます。未チェックの場合はグレーで unchecked と表示されます。

MCP サーバー

McpStamp Check 自体もリモート MCP サーバーです(Streamable HTTP、プロトコル 2025-11-25、サインイン不要)。

https://mcp.zovo.one/stamp/mcp
ツール説明
check_mcp_server(url, fresh?)スコア、評価、ストアごとの対応状況、不合格チェックとその修正案、レポート URL、バッジの Markdown を表示します
explain_check(check_id)チェックの意味、対象となるストア、ストアまたは仕様の出典を説明します

クライアントに追加します。

# Claude Code
claude mcp add --transport http mcpstamp https://mcp.zovo.one/stamp/mcp
// Cursor: ~/.cursor/mcp.json
{ "mcpServers": { "mcpstamp": { "url": "https://mcp.zovo.one/stamp/mcp" } } }

// VS Code: .vscode/mcp.json
{ "servers": { "mcpstamp": { "type": "http", "url": "https://mcp.zovo.one/stamp/mcp" } } }

次のように尋ねてください:「McpStamp で https://example.com/mcp をチェックして」。ライブチェックは API の制限(クライアントあたり1時間に20回)を共有します。MCP Registry には io.github.theluckystrike/mcpstamp-check として登録されています。

GitHub Action

対応状況を条件に CI を制御できます。このアクションは公開 API を呼び出してジョブサマリー(スコア、ストア、修正案)を書き込み、スコアが min-score を下回る場合、または fail-on-store に指定されたストアが利用可能でない場合にステップを失敗させます。

name: McpStamp Check
on:
  workflow_dispatch:
  push:
    branches: [main]
jobs:
  mcpstamp:
    runs-on: ubuntu-latest
    timeout-minutes: 5
    steps:
      - uses: theluckystrike/mcpstamp-check@v1
        id: stamp
        with:
          url: https://example.com/mcp
          min-score: 80
          fail-on-store: claude,chatgpt
      - run: echo "Score ${{ steps.stamp.outputs.score }} (${{ steps.stamp.outputs.grade }}): ${{ steps.stamp.outputs.report-url }}"
入力デフォルト説明
url(required)MCP エンドポイントの https URL
min-score0スコアがこの値を下回ると失敗します
fail-on-storeempty対応必須のストアを指定する、claude、chatgpt、gemini、registry のカンマ区切りリストです(サインインが必要なツールなど、ブロック対象のチェックを実行できなかったストアは利用可能とみなされません)
freshtruefalse の場合、最大10分前の結果を使用します。レート制限に達した場合、アクションはキャッシュされた結果にフォールバックします
api-basehttps://mcp.zovo.one/stampAPI のベース URL

出力:score、grade、report-url、badge-url、ready-stores。

このアクションは複合アクションで、依存関係やビルド手順なしに、ランナーの Node.js(18 以降)で action/run.mjs を実行します。デプロイ済みの URL をチェックするには、デプロイステップの後に実行してください。

API

ベース URL:https://mcp.zovo.one/stamp(https://www.mcpstamp.com/api/ でもプロキシされています)。

リクエストレスポンス
GET /api/check?url=<https MCP URL>[&fresh=1]結果の JSON(10分間キャッシュ)
GET /api/result/<id>最後に保存された結果。結果がない場合は 404
GET /api/checks以下のチェック一覧
GET /badge?url=<url> または GET /badge/<id>.svgSVG バッジ
POST /mcpMCP Streamable HTTP エンドポイント(上記を参照)

エラー:400 {error:"bad_url"|"blocked_host"}、429 {error:"rate_limited", retry_after}、502 {error:"unreachable"|"blocked_by_firewall", detail}(blocked_by_firewall:サーバーの WAF またはボット対策が 403 の HTML ページか Cloudflare チャレンジを返したため、スコアは算出されていません)。 制限:IP あたり1時間に20回のライブチェック。チェック対象サーバーへの HTTP リクエストはチェックあたり最大10回、チェック全体の制限時間は25秒。リクエストあたりのタイムアウトは8秒、本文の上限は1 MB。https のみ対応し、ポートは 443/8443。IP リテラルおよびプライベート名は使用できません。取得するすべての URL(最初の URL、最大3回のリダイレクト先、各ディスカバリー URL)は再検証され、DNS の応答(DNS-over-HTTPS)はパブリックである必要があります。結果は30日間保持されます。7日を超えた結果に対するバッジのリクエストは、バックグラウンドで1回再チェックを実行します。URL 内の認証情報(/t/ の後のセグメント、24文字以上のランダムに見えるパスセグメント、秘密のクエリ値)は REDACTED と表示され、保存されます。

プロキシ

信頼されたプロキシ(mcpstamp.com の Pages Functions)は、x-mcpstamp-proxy-key: <PROXY_KEY secret> と x-mcpstamp-client-ip: <visitor IP> を送信できます。これにより、レート制限がプロキシ単位ではなく訪問者単位で適用されます。

スコアリング

各チェックは、pass(1)、warn(0.5)、fail(0)、または skip(集計対象外)のいずれかです。スコアは、適用されるチェックに対する加重合格率です。評価は、A >= 90、B >= 80、C >= 65、D >= 50、それ未満はFです。各ストアには status が割り当てられます。ready(ブロック対象のチェックに失敗がなく、スキップもない)、unverified(失敗はないものの、サインインが必要なツールなど、ブロック対象のチェックを実行できなかった)、または not_ready(ブロック対象のチェックに失敗した)です。ready が true になるのは、ready の場合のみです。ツールがサインインの背後にあり、検査できない場合、スコアは85点が上限です。スキップされたチェックには skip_reason が付与されます。値は not_applicable、needs_sign_in、not_probed(リクエストまたは時間の上限)、not_reached(ハンドシェイクが完了しなかった)、または blocked です。各ストアには unverified_reasons が記載されます。あるストアではチェックをより緩やかに扱う場合(たとえば、Claude と Registry では従来の SSE を警告とする場合)、チェックに store_status が付くことがあります。registry ストアは「MCP Registry にとって有効なリモートサーバー」(パブリックな https で、Streamable HTTP または SSE として応答するもの)を意味し、サーバーがそこに公開されていることを意味するものではありません。

以下の表は、src/check.mjs の CHECKS エクスポートから生成されます(node scripts/scoring-table.mjs --write。表が古くなるとテストが失敗します)。「ブロック対象」には、チェックに失敗した場合に準備完了でなくなるストアが記載されています。GET /api/checks は同じデータに加えて、各チェックの集計対象となるストアも返します。サインイン不要のサーバーでは、認証チェックはスキップされます。

チェックグループテスト内容重みブロック対象(失敗すると準備未完了)
httpstransportHTTPS 経由で提供されている10claude, chatgpt, gemini, registry
initializetransportStreamable HTTP 経由の initialize15claude, chatgpt, gemini, registry
protocol_versiontransportサポートされているプロトコルバージョンがネゴシエートされる6gemini
content_typetransportJSON または SSE の応答 Content-Type3-
jsonrpc_errorstransport不明なメソッドに対する JSON-RPC エラー4-
get_streamtransportGET が SSE または 405 を返す3-
latencytransportinitialize のレイテンシ5-
server_infometadataserverInfo の名前とバージョン6-
instructionsmetadataサーバーの指示4-
capabilities_toolsmetadatatools 機能が宣言されている3-
auth_methodauthストアがサポートするサインイン方法(OAuth またはなし)6chatgpt, gemini
auth_challengeauth401 が WWW-Authenticate resource_metadata を含む6-
auth_prmauth保護されたリソースのメタデータ(RFC 9728)8claude, chatgpt
auth_resourceauthリソースのメタデータにある「resource」がサーバーの URL と一致する4claude
auth_as_metadataauth認可サーバーのメタデータ(RFC 8414 / OIDC)8claude, chatgpt, gemini
auth_gemini_discoveryauthGemini が最初に試すメタデータ URL が、必須フィールドを含む200を返す4gemini
auth_chatgpt_metadataauthissuer が authorization_servers のエントリーと一致する。token_endpoint_auth_methods_supported(ChatGPT)4chatgpt
auth_pkceauthPKCE S256 が通知されている6claude, chatgpt, gemini
auth_registrationauthクライアント登録(DCR または Client ID Metadata Documents)6-
auth_refreshauthrefresh_token grant が通知されている3-
tools_listtoolstools/list がツールを返す10claude, chatgpt, gemini
tool_schematoolsinputSchema がオブジェクトスキーマである6claude, chatgpt, gemini
tool_namestoolsツール名が有効で、移植性がある5-
tool_annotationstoolsすべてのツールに readOnlyHint または destructiveHint がある10claude, chatgpt
tool_open_worldtoolsreadOnlyHint、destructiveHint、openWorldHint が明示されている(ChatGPT)5chatgpt
tool_titlestoolsすべてのツールに人が読めるタイトルがある5claude, chatgpt
tool_descriptionstoolsツールの説明6-
合計の重み(すべてのチェック)161

すべてのルールの根拠となるストアまたは仕様の記述は、SOURCES.md で確認できます。

エンジンを使用する

src/check.mjs は依存関係のない純粋な ES モジュールです。Node 20 以降および Cloudflare Workers で実行できます。

import { checkServer, CHECKS } from './src/check.mjs';
const result = await checkServer('https://example.com/mcp', { fetch, timeoutMs: 8000 });
console.log(result.score, result.grade, result.stores.claude);

取得する URL はすべてホストガード(構文と DNS)を通過します。デフォルトでは DNS-over-HTTPS(1.1.1.1)を使用し、DNS を読み取れない場合はチェックを拒否します。Node ではシステムリゾルバーを渡すと、LAN および /etc/hosts の名前が fetch と同じ結果で判定されます。

import { nodeResolve } from './src/resolve-node.mjs';
await checkServer(url, { fetch, resolve: nodeResolve });

CLI:node scripts/check-cli.mjs https://example.com/mcp [--json]

開発

npm test             # node --test, mock fetch, no network (engine, Worker, MCP endpoint, action)
npx wrangler deploy  # Worker "mcpstamp-check"

お問い合わせ:[email protected]

ライセンス

MIT

コメント

MCP は初めてですか?

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

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