mcp-observatory について
MCP Observatoryは、独自のMCPサーバーを保守するチーム向けのオープンソースセキュリティテストツールです。開発時やCIで機能、セキュリティリスク、スキーマ変更を確認でき、攻撃シミュレーション、ヘルススコア、SARIF出力、記録の再生と検証にも対応します。
主な機能
- 01ツール、プロンプト、リソースの応答確認
- 02セキュリティリスクとスキーマ変更の検出
- 03攻撃シミュレーションと安全なツールの実行
- 04サーバーセッションの記録、再生、検証
- 05ヘルススコア、レシート、SARIFの生成
- 06CI連携によるチェックの自動化
活用シーン
- 01リリース前に独自MCPサーバーを確認
- 02CIで互換性とセキュリティの問題を検出
- 03実行結果を比較してスキーマ回帰を特定
- 04記録したサーバーセッションをオフラインで再生
MCP 対応
MCPサーバーのスキャンとテストに加え、`serve`でMCPサーバーとして起動し、エージェントが他のサーバーを調査できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Observatory
ClearFrame が提供する無料のオープンソース MCP セキュリティテストツールです。 MCP Observatory は、カスタム MCP サーバーをリリースするチーム向けの、CI にネイティブ対応したセキュリティツールです。開発中にテストを行い、スキーマのずれを検出し、攻撃をシミュレートして、コンプライアンスの証拠を生成できます。エージェントがサーバーに依存する前に、こうした確認を行えます。
Simplified Chinese 版も利用できます。
実行時の強制適用: mcp-seatbelt を使用すると、Observatory のスキャン結果に基づいて、危険な MCP ツール呼び出しを実行時にブロックできます。
はじめに
手順に沿ったセットアップガイド · macOS、Windows、Linux · Node.js 20+ および npm(Node.js LTS をインストール)。
1. 初めてのスキャンを実行する
プロジェクトフォルダーで Terminal または PowerShell を開き、次のコマンドを貼り付けます。
npx -y @kryptosai/mcp-observatory@latest
このコマンドは Observatory をダウンロードし、最初に設定されている MCP サーバーをチェックします。設定済みのサーバーがない場合は、付属のサンプルを使用します。サンプルのみを試すには、npx -y @kryptosai/mcp-observatory@latest demo --example を実行してください。
2. 結果を確認する
ターミナルには、対象、評価、検出事項、保存されたレシートのパスが表示されます。チェックに失敗した場合は、支払いを求められているのではなく、確認すべき検出事項が表示されています。接続に失敗した場合は、起動コマンドまたは認証情報を修正して再実行してください。デモの評価は例に対するものであり、ご自身のサーバーに対するものではありません。
3. ローカルで確認してから、ClearFrame で続ける
npx -y @kryptosai/mcp-observatory@latest dashboard
npx -y @kryptosai/mcp-observatory@latest clearframe
ダッシュボードには、ローカルでのスキャン履歴、HTML レポート、JSON のダウンロードが表示されます。アカウント、アップロード、サブスクリプション、期間に応じた保持制限はありません。Ctrl+C で停止できます。
clearframe コマンドは、非公開の指示ファイルを書き込み、読み取り専用の CLI コマンドを表示します。ファイルを確認してから、そのコマンドを実行するか、プロジェクトを開いた状態で新しい ClearFrame Mac チャットに貼り付けてください。ClearFrame の起動や証拠の自動アップロードは行いません。
ClearFrame CLI または Mac アプリを入手 · 現在は Apple Silicon 搭載の Mac に対応しています。ClearFrame には独自のアカウントと利用規約があります。Observatory のすべての機能は、ClearFrame がなくても利用できます。
MCP Observatory は無料で、MIT ライセンスの下で公開されています。製品テレメトリーはデフォルトでオフになっており、明示的にオプトインするまでテレメトリーのネットワークリクエストは行いません。フィールドを確認するには telemetry preview を使用し、オプトインするには telemetry enable を使用してください。プライバシーの詳細。
npx -y @kryptosai/mcp-observatory@latest test npx -y @modelcontextprotocol/server-everything
- uses: KryptosAI/mcp-observatory/action@v1
このリポジトリが MCP パッケージの場合は、npx -y <package.json name> がテストされます。それ以外の場合は、command: を設定してください。
または、ワークフロー全体を生成します:npx -y @kryptosai/mcp-observatory@latest setup-ci --all --command "npx -y my-mcp-server" --sarif
インストール:npx -y @kryptosai/mcp-observatory@latest · brew tap kryptosai/mcp-observatory https://github.com/KryptosAI/mcp-observatory && brew install mcp-observatory · docker pull ghcr.io/kryptosai/mcp-observatory:latest · curl -fsSL https://raw.githubusercontent.com/KryptosAI/mcp-observatory/main/scripts/install.sh | sh
docker run --rm ghcr.io/kryptosai/mcp-observatory:latest demo
docker run --rm ghcr.io/kryptosai/mcp-observatory:latest test npx -y @modelcontextprotocol/server-everything
ホスト上のサーバーをスキャンするにはネットワークが必要です。また、ローカルファイルを使用する場合は、ボリュームをマウントする必要があります(-v "$PWD:$PWD" -w "$PWD")。
エージェント:npx -y @kryptosai/mcp-observatory@latest serve
デフォルト拒否で接続するには、npx -y @kryptosai/mcp-observatory@latest protect を実行すると、検出されたすべてのクライアント設定(Cursor、Claude、VS Code、.mcp.json、…)が書き換えられます。元に戻すには、protect --undo を実行してください。HTTP/SSE サーバーは変更されません。
ランタイムのデフォルト拒否:npx -y @kryptosai/mcp-observatory@latest enforce --start-proxy は、スキャン結果から Seatbelt ポリシーを書き込み、プロキシを起動します。ローカルスキャンは無料です。
実績:Safety Index。ローカル履歴、証拠のエクスポート、CI、修正タスクの準備は無料です。
本番環境での利用状況から学ぶ
利用状況学習用 SDK と CLIを使って、実際のツール呼び出しとユーザーの意図を結び付けます。サニタイズ済みの呼び出し証拠、オプトイン方式の「尋ねたこと/期待したこと/得られたこと」レポート、選択した会話の抜粋、ワンクリックの不満フラグ、記録したリクエストをまたいだ意図のグループ化、回帰テストケースのエクスポートを利用できます。mcp-observatory usage review --dir private-usage を実行すると、ループバックのみでアクセスできるブラウザー画面で、関連付けられた証拠を確認できます。サーバーログからは共有されていない会話を把握できません。観測された実行と推定された問題の兆候は、別々に扱われます。収集はローカルで行われ、明示的な統合が必要です。
MCP Observatory を選ぶ理由
MCP サーバーは、本番環境における依存関係になりつつあります。エージェントが MCP サーバーに依存するなら、ツールの破損、安全でないスキーマ、スキーマのドリフト、応答の遅延、セキュリティ上の落とし穴による問題がユーザーに及ぶ前に、それらを検出する手段がチームには必要です。
Observatory は、メンテナーとチームに次の機能を提供します。
setup-ci --allによるワンコマンドでの CI セットアップaudit --profile nsa-mcpによるプロファイルに基づく監査- 対象、証拠、判定、アクション、再現コマンドをまとめたMCP レシート
- サーバーを機能境界、レシートの状態、CI の状況、推奨アクションごとに分類するMCP リスクグラフ
allow、gate、rerun、quarantine、escalateを示すアクションレシート- 互換性、ドリフト、セキュリティに関する検出結果を投稿するGitHub PR コメント
- 正規化された MCP の検出結果を出力するGitHub Code Scanning SARIF
- 公開された信頼性シグナルとして使えるヘルススコアバッジ
- 回帰テスト用の記録/再生/検証ワークフロー
- エージェントが他の MCP サーバーを直接調査できるMCP サーバーモード
- 無料のローカル履歴、CI、オプションの ClearFrame CLI または Mac タスクを使ったレビューと修正
GitHub Code Scanning for MCP servers、MCP Receipts、Troubleshooting、Safety Methodology、MCP Server Safety Index、MCP Observatory Contributors、ホスト型クライアントの契約、リポジトリの境界、オープンソースポリシー、無料プロジェクトのポリシーをご覧ください。
自己評価
リリースのたびに mcp-observatory で自分たちをスキャンしています。結果を見る →
セルフホスト可能なエビデンス
MIT ライセンスのホスティングソースには、非公開レシートの保存、GitHub サインイン、複数ターゲットの履歴、ダウンロード、ホスト型 HTTP チェック、保持データのクリーンアップが含まれています。独自の設定でデプロイでき、Observatory のサブスクリプションは不要です。アカウント不要のローカルダッシュボードが、最も手軽な始め方です。
メンテナーとチーム向けの無料ツール
スキャナーの全機能、ソース監査、スキルスキャン、パッケージ名のレビュー、サーバー間の機能レビュー、レシート、記録/再生、ローカルダッシュボード、CI 統合はすべて、MIT ライセンスのオープンソースです。ホスト型アカウントや非公開 API は必要ありません。
# Inspect local code without executing it
npx -y @kryptosai/mcp-observatory@latest source-audit ./src
# Review a launch package name without running it
npx -y @kryptosai/mcp-observatory@latest package-check -- npx -y your-mcp-package
# Review capability combinations across saved receipts
npx -y @kryptosai/mcp-observatory@latest toxic-flow first-receipt.json second-receipt.json
これらのチェックで特定できるのはレビュー候補であり、サーバーの安全性を証明するものではありません。カバレッジと競合製品の機能に関するエビデンス、ClearFrame ワークフロー、プロジェクトポリシーをご覧ください。
他製品との比較
| 機能 | mcp-observatory | Snyk agent-scan | Cisco mcp-scanner | agent-shield |
|---|---|---|---|---|
| MCP ネイティブ | ✓ | ✓ | ✓ | ✓ |
| 攻撃シミュレーション | ✓ | ✗ | ✗ | ✗ |
| スキーマドリフト検出 | ✓ | ✗ | ✗ | ✗ |
| 記録/再生/検証 | ✓ | ✗ | ✗ | ✗ |
| ヘルススコア(0-100) | ✓ | ✗ | ✗ | ✗ |
| SARIF 出力 | ✓ | ✓ | ✓ | ✓ |
| CI/CD ネイティブ(setup-ci) | ✓ | ✓ | ✓ | ✓ |
| 公開セーフティインデックス | ✓ | ✗ | ✗ | ✗ |
| mcp-seatbelt によるランタイム強制 | ✓ | ✗ | ✗ | ✗ |
クイックスタート
最初のチェックを実行します。引数を指定しない場合は demo が開始されます(お使いのサーバー、またはパッケージに含まれるローカルデモ)。
npx @kryptosai/mcp-observatory
さらに詳しく調べるには、安全なツールも呼び出して実際に動作することを確認します。
npx @kryptosai/mcp-observatory scan deep
特定のサーバーをテストします。
npx @kryptosai/mcp-observatory test npx -y @modelcontextprotocol/server-everything
Claude Code に MCP サーバーとして追加します。
claude mcp add mcp-observatory -- npx -y @kryptosai/mcp-observatory serve
または、設定に手動で追加します。
{
"mcpServers": {
"mcp-observatory": {
"command": "npx",
"args": ["-y", "@kryptosai/mcp-observatory", "serve"]
}
}
}
コマンド
| コマンド | 機能 |
|---|---|
scan | サーバーを自動検出してチェックし、デフォルトで安全な攻撃準備シミュレーションを実行します |
scan deep | スキャンと安全な攻撃シミュレーションを実行し、安全なツールも呼び出して実行されることを確認します |
test <cmd> / test --target <file> | コマンドまたはターゲット設定を指定してサーバーを1つテストし、アクションレシートを出力します |
record <cmd> | サーバーセッションをカセットファイルに記録し、オフラインで再生できるようにします |
replay <cassette> | カセットをオフラインで再生します。稼働中のサーバーは不要です |
verify <cassette> <cmd> | 稼働中のサーバーが記録済みカセットと引き続き一致するか確認します |
diff <base> <head> | 2つの実行アーティファクトを比較し、リグレッションとスキーマのドリフトを検出します |
watch <config> | サーバーを監視し、変更があればリグレッションを通知します |
suggest | スタックを検出し、レジストリから MCP サーバーを推奨します |
serve | AI エージェント向けの MCP サーバーとして起動します |
lock | MCP サーバーのスキーマをロックファイルにスナップショットします |
lock verify | 稼働中のサーバーがロックファイルと一致するか確認します |
history | MCP サーバーのヘルススコアの推移を表示します |
setup-ci / init-ci | MCP の互換性/セキュリティチェック用の GitHub Action とバッジのスニペットを作成します |
setup-ci --sarif | 正規化した検出結果を GitHub Code Scanning にアップロードするワークフローを生成します |
setup-ci --doctor | リポジトリに CI 導入キット一式が揃っているか調査します |
telemetry status|enable|disable|identify|preview | プロダクトのテレメトリを確認または制御し、連絡先メールアドレスを明示的に提供します |
risk-graph --input <path> | レシートと実行アーティファクトを統合し、JSON、Markdown、HTML 形式の MCP リスクグラフを作成します |
--no-attack-sim | scan または test のデフォルトの安全な攻撃シミュレーションを無効にします |
ci-report | GitHub のイシュー作成用に CI レポートを生成します |
enterprise-report | 実行アーティファクトから本番環境/セキュリティの静的レポートを生成します |
score <cmd> | MCP サーバーのヘルススコア(0~100)を算出します |
badge <cmd> | README 用の SVG ヘルススコアバッジを生成します |
dashboard | アカウントなしで、ローカルのスキャン履歴、レポート、ダウンロードを閲覧します |
clearframe | ClearFrame CLI または Mac 用のローカルレビュータスクを準備します |
cloud | 従来のホスト型アカウントとの互換性と、無料のローカル代替手段を提供します |
引数なしで実行すると、demo が起動します。対話型カタログを使うには --menu を指定します。
機能
機能をチェック — サーバーに接続し、ツール、プロンプト、リソースが正しく応答するか確認します。
ツールを呼び出す — 一覧表示だけにとどまりません。安全なツール(必須パラメーターがないもの、または readOnlyHint があるもの)を実際に呼び出し、正常に動作するものとクラッシュするものを報告します。
npx @kryptosai/mcp-observatory scan deep
スキーマのドリフトを検出 — 2回の実行を比較し、追加/削除されたフィールド、型の変更、互換性を損なうパラメーター変更を明らかにします。
npx @kryptosai/mcp-observatory diff run-a.json run-b.json
サーバーを推奨 — プロジェクト内の言語、フレームワーク、データベース、クラウドプロバイダーをスキャンし、MCP registry と照合して、不足しているサーバーを提案します。
npx @kryptosai/mcp-observatory suggest
また、MCP サーバーモードで実行中に、エージェントに「追加すべき MCP サーバーは何ですか?」と尋ねることもできます。
セキュリティスキャン — ツールのスキーマを分析し、シェルインジェクションにつながる箇所、広範なファイルシステムアクセス、認証の欠落、応答内の認証情報漏えいなど、危険なパターンを検出します。
npx @kryptosai/mcp-observatory test --security npx -y my-mcp-server
記録/再生/検証 — 稼働中のセッションを記録し、CI でオフライン再生して、変更がないことを確認します。MCP 向けの VCR のようなものです。
# Record a session
npx @kryptosai/mcp-observatory record npx -y @modelcontextprotocol/server-everything
# Replay offline (no server needed)
npx @kryptosai/mcp-observatory replay .mcp-observatory/cassettes/latest.cassette.json
# Verify the live server still matches
npx @kryptosai/mcp-observatory verify cassette.json npx -y @modelcontextprotocol/server-everything
リグレッションを監視 — 一定間隔でチェックを再実行し、変更があれば通知します。
npx @kryptosai/mcp-observatory watch target.json
スキャン対象の場所
scan を実行すると、次の場所にある MCP 設定を検索します。
~/.claude.json(Claude Code)~/Library/Application Support/Claude/claude_desktop_config.json(Claude Desktop、macOS)%APPDATA%/Claude/claude_desktop_config.json(Claude Desktop、Windows).claude.jsonおよび.mcp.json(カレントディレクトリ)
アーキテクチャ
┌─────────────────────────┐
│ MCP Observatory CLI │
│ npx @kryptosai/mcp- │
│ observatory scan │
└───────────┬─────────────┘
│
┌───────────▼─────────────┐
│ Config Discovery │
│ (Claude, Cursor, etc.) │
└───────────┬─────────────┘
│
┌─────────────────┼─────────────────┐
▼ ▼ ▼
┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐
│ Security Scan │ │ Attack Sim │ │ Schema Drift │
│ (shell, creds) │ │ (tool poison)│ │ (version diff) │
└────────┬────────┘ └──────┬───────┘ └────────┬─────────┘
│ │ │
└─────────────────┼───────────────────┘
▼
┌─────────────────────┐
│ Health Score │
│ (0-100 + verdict) │
└──────────┬──────────┘
│
┌────────────────┼────────────────┐
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ SARIF │ │ Markdown │ │ CI Gateway │
│ (Code Scan) │ │ Report │ │ (setup-ci) │
└──────────────┘ └──────────────┘ └──────────────┘
CI/GitHub Action
MCP サーバーの CI パイプラインに Observatory を追加します:
npx @kryptosai/mcp-observatory setup-ci --all --command "npx -y my-mcp-server" --sarif --schedule weekly
導入キットを確認します:
npx @kryptosai/mcp-observatory setup-ci --doctor
test、run、単一ターゲットの scan のチェックに成功すると、合格結果を CI 導入キットに変換するオプションも表示されます。この自動変換では、SARIF/Code Scanning と週次の定期チェックがデフォルトで有効になります。Code Scanning へのアップロードを行わない、より慎重なワークフローのみを使う場合は、--no-ci-sarif を渡してください。
または、ワークフローを手動で作成します:
# .github/workflows/observatory.yml
name: MCP Server Check
on: [pull_request]
permissions:
contents: read
jobs:
observatory:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: KryptosAI/mcp-observatory/action@v1
with:
command: npx -y my-mcp-server
deep: true
security: true
comment-on-pr: false
set-status: false
GitLab CI
マージリクエストと main で同じ test スキャンを実行し、SARIF を GitLab SAST レポートとして公開することで、検出結果をマージリクエストのセキュリティウィジェットに表示します。これは setup-ci --ci-provider gitlab-ci が生成する内容と同じです。
# .gitlab-ci.yml
mcp-observatory:
image: node:22
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
- if: $CI_COMMIT_BRANCH == 'main'
script:
- npx @kryptosai/mcp-observatory test npx -y my-mcp-server --deep --security --sarif mcp-observatory.sarif
artifacts:
reports:
sast: mcp-observatory.sarif
または、CLI に書き込ませます:
npx @kryptosai/mcp-observatory setup-ci --ci-provider gitlab-ci --command "npx -y my-mcp-server"
Action の入力:
| 入力 | 説明 | デフォルト |
|---|---|---|
command | テストするサーバーコマンド | (省略可能。省略すると、検出されたサーバーをスキャンします) |
target | ターゲット設定 JSON へのパス | |
targets | マルチサーバーマトリックススキャン用 MCP 設定ファイルへのパス | |
deep | 安全なツールも呼び出します | false |
security | セキュリティ分析を実行します | false |
fail-on-regression | 問題がある場合に Action を失敗させます | true |
fail-on-baseline-drift | ベースライン検証でドリフトが検出された場合に Action を失敗させます | true |
comment-on-pr | レポートを PR コメントとして投稿します。pull-requests: write が必要です。 | true |
set-status | HEAD SHA にコミットステータスチェック(緑/赤)を設定します。statuses: write が必要です。 | true |
github-token | PR コメントとコミットステータス用のトークン | ${{ github.token }} |
ワークフローに書き込み権限が付与されている場合、Action は PR にコメントし、コミットステータスを設定できます。setup-ci はデフォルトで、サードパーティにも使いやすい読み取り専用のワークフローを生成し、メンテナーが後からコメント/ステータスを有効にできるようにします。後方互換性のため、init-ci も引き続きエイリアスとして利用できます。すべてのオプションについては、action/README.md を参照してください。
Observatory は無料のオープンソースです。検出結果のレビューや修正をエージェントに支援してもらう場合は、ClearFrame CLI または Mac を使って続けるをご覧ください。
MCP Observatory のエビデンスバッジ
MCP サーバーのメンテナーは、README に公開の互換性/セキュリティシグナルを追加できます:
[](https://github.com/KryptosAI/mcp-observatory)
または、ライブチェックからスコアバッジを生成できます:
npx @kryptosai/mcp-observatory badge npx -y my-mcp-server --output docs/mcp-health.svg
GitHub Action のテンプレート、メンテナー向け PR 本文、バッジ展開の手順については、エビデンス配布ループを参照してください。バッジは公開のエビデンスシグナルであり、認証や推奨を示すものではありません。
ローカルの実行アーティファクトから本番環境/セキュリティレポートを生成します:
npx @kryptosai/mcp-observatory enterprise-report \
--account "Your Company" \
--format html \
--output observatory-enterprise-report.html
CI で内部アカウントの帰属をより明確にするには、次を設定します:
MCP_OBSERVATORY_ORG=your-company.com
非公開のテレメトリー分析に連絡先メールアドレスと任意の連絡チャネルのスラッグを意図的に関連付けるには、mcp-observatory telemetry identify --email <address> [--channel <slug>] を実行します。組織の設定や連絡先の特定によって、連絡が許可されるわけではありません。
Feishu/Lark との統合をテストしていますか?Feishu/Lark MCP ガイドをご覧ください。
ロックファイル
$ npx @kryptosai/mcp-observatory lock # Snapshot all server schemas
$ npx @kryptosai/mcp-observatory lock verify # Verify no drift since last lock
ロックファイルは AI ツール向けの package-lock です。MCP コントラクトをコミットし、あらゆるツール、スキーマ、プロンプト、リソースのドリフトを CI で可視化します。MCP ロックファイルをご覧ください。
トレンド追跡
$ npx @kryptosai/mcp-observatory history # Show health trends over time
夜間スキャン
$ npx @kryptosai/mcp-observatory ci-report # Generate regression report for CI
MCP サーバーモード
ほかのテストツールで、MCP サーバーとして動作するものはありません。 Observatory をサーバーとして追加すると、AI エージェントがほかの MCP サーバーを自律的にテスト、診断、監視できるようになります。
claude mcp add mcp-observatory -- npx -y @kryptosai/mcp-observatory serve
エージェントは次の 10 個のツールを利用できます。
| ツール | 使用するタイミング |
|---|---|
scan | 設定済みのすべての MCP サーバーが正常に動作しているか確認する |
check_server | インストール前または更新後に、特定のサーバーをテストする |
score_server | サーバーの簡易的なヘルススコアと評価を取得する |
record | 正常に動作しているサーバーのベースラインを記録し、今後の比較に使用する |
replay | 記録済みセッションに対してテストする(稼働中のサーバーは不要) |
verify | サーバーの更新によって問題が発生していないことを確認する |
watch | サーバーを確認し、前回の確認からの変更点を表示する |
diff_runs | 2 件の確認結果の間にあるリグレッションを見つける |
get_last_run | サーバーの前回の確認結果を取得する |
suggest_servers | プロジェクトの技術スタックに適した MCP サーバーを見つける |
ほかの AI ツールをチェックする AI ツールです。ツールを提供するツールをテストするツールです。
セキュリティ
MCP サーバーは、LLM が呼び出すツールを選択する AI ホスト内で実行されます。プロンプトインジェクション攻撃を防ぐため、次の対策を講じています。
- コマンドの許可リスト: 基本実行ファイルとして許可されるのは
npx、node、python、python3、uvx、docker、deno、bunのみです。CLI に制限はありません。 - パスの検証: ファイル読み取りツールは、runs/cassettes ディレクトリ内に制限されます。
- 任意の実行は禁止: 制限のないコマンドには CLI を使用してください。
CLI と MCP の意図的な違い
| 機能 | CLI | MCP サーバー | 理由 |
|---|---|---|---|
watch | ポーリングループ | 単一の確認+差分 | リクエスト/レスポンスではロングポーリングをサポートしていません |
| 対話型メニュー | 矢印キーによる操作 | 利用不可 | MCP には対話型 UI がありません |
| 色付き出力 | --no-color フラグ | 常にプレーンテキスト | MCP は構造化コンテンツを返します |
report | 保存済みの成果物をレンダリング | 利用不可 | エージェントは成果物を直接読み取ります |
serve | MCP サーバーを起動 | 該当なし | MCP サーバーそのものです |
run | 対象の設定ファイルを読み取る | インラインパラメーター | MCP ツールはパラメーターを直接受け取ります |
get_last_run | 利用不可(ls+diff を使用) | 利用可能 | エージェント向けの利便性を提供します |
互換性
標準トランスポートを使用するあらゆる MCP サーバーで動作します。
| トランスポート | 例 | アダプター |
|---|---|---|
| stdio(ほとんどのサーバー) | filesystem、memory、context7、brave-search、sentry、notion、stripe | local-process |
| HTTP/SSE(リモート) | Cloudflare、Exa、Tavily | http |
| Docker | すべての @modelcontextprotocol/server-* イメージ | docker run -i 経由の local-process |
API キーが必要なサーバーは、対象の設定で env を使って動作します。Python サーバーは uvx 経由で動作します。テスト済みのサーバーと既知の問題については、互換性の完全な一覧をご覧ください。
対象の設定ファイル
環境変数、メタデータ、カスタムタイムアウトをより細かく制御する場合:
{
"targetId": "filesystem-server",
"adapter": "local-process",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "."],
"timeoutMs": 15000,
"skipInvoke": false
}
npx @kryptosai/mcp-observatory run --target ./target.json
HTTP / SSE の対象
{
"targetId": "my-remote-server",
"adapter": "http",
"url": "https://mcp.example.com/mcp",
"authToken": "${MCP_SERVER_TOKEN}",
"headers": {
"X-Api-Key": "$MCP_SERVER_API_KEY"
},
"timeoutMs": 15000
}
対象の設定では、authToken、headers、およびローカルプロセスの env 値で ${VAR}、$VAR、env:VAR の参照を使用できます。
比較
| 機能 | Observatory | mcp-recorder | MCPBench | mcp-jest |
|---|---|---|---|---|
| サーバーの自動検出 | ✅ | — | — | — |
| 機能の確認 | ✅ | — | ✅ | ✅ |
| ツールの呼び出し | ✅ | — | — | ✅ |
| スキーマのドリフト検出 | ✅ | — | — | — |
| 記録/再生 | ✅ | ✅ | — | — |
| カセットとの照合 | ✅ | — | — | — |
| レスポンスのスナップショット差分 | ✅ | — | — | — |
| ベンチマーク/レイテンシー | — | — | ✅ | — |
| Jest との統合 | — | — | — | ✅ |
| MCP サーバーとして動作 | ✅ | — | — | — |
それぞれのツールに強みがあります。Observatory は回帰検出と CI に適したワークフローに重点を置いています。mcp-recorder は透過的なプロキシとして優れています。MCPBench はパフォーマンスベンチマークの定番です。すでに Jest のワークフローを利用している場合は、mcp-jest が最適です。
先行事例
記録/再生/検証のパターンは、次のプロジェクトに着想を得ています。
- VCR(Ruby) — カセットを使った HTTP の記録/再生を先駆けて実現
- Polly.js(Netflix) — JavaScript 向けの HTTP インタラクション記録
- mcp-recorder — MCP 専用のトラフィック記録プロキシ
- MCPBench — MCP サーバーのベンチマーク
- mcp-jest — MCP サーバー向けの Jest スタイルのテスト
制限事項
- インタラクティブな OAuth が必要なサーバー(例:Google Drive)に Observatory が接続するには、事前に認証が必要です
- カスタム WebSocket トランスポート(例:BrowserTools MCP)はサポートされていません
- 初期化前にタイムアウトしたり接続を閉じたりするサーバーがいくつかあります。既知の問題と互換性をご覧ください
mcp-seatbelt との連携
信頼する前にスキャンしましょう。その後、npx -y @kryptosai/mcp-observatory@latest enforce --start-proxy を実行すると、Observatory がデフォルト拒否の mcp-seatbelt ポリシーを書き込み、プロキシを起動します。Observatory が検証し、seatbelt が強制します。
agent-obs との連携
Observatory でサーバーを保護しましょう。agent-obs でエージェントをトレースできます。agent-obs は、すべてのツール呼び出しを記録し、セッションを A〜F で評価して、エージェントがどこで時間を使い、トークンを消費し、エラーに遭遇したかを正確に示すオープンソースのエージェント実行トレーサーです。Observatory はサーバーが安全かどうかを示します。agent-obs はエージェントがそのサーバーで何をしたかを示します。無料で、ローカル優先です。npm install -g agent-obs。
コントリビューター ✨
貢献してくださった素晴らしい皆さんに感謝します。
- leemeo3 — 3 件の Safety Index 対象(Git、Chrome DevTools、Filesystem MCP)
- albatrossflyon-coder — GitHub MCP Safety Index(#201)
- tanishxdev — レガシー CLI の非推奨化に関する警告(#187)
- sansynx — CLI フォーマットの検証(#182)
コントリビューション
コントリビューターを歓迎します。このプロジェクトでは、コントリビューター規約の行動規範に従っています。参加するための最も手軽な方法はこちらです。
git clone https://github.com/KryptosAI/mcp-observatory.git && cd mcp-observatory && npm install && npm test
最初のコントリビューションとして最も一般的なのは、Safety Index に MCP サーバーを追加することです(10〜15 分)。詳細なガイドライン、コード標準、コントリビューターの表彰制度については、CONTRIBUTING.mdをご覧ください。
Observatory がデプロイの失敗を防いだ場合は、スターを付けることをご検討ください。他の人がこのプロジェクトを見つけやすくなります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。