mcpwatch について
MCPWatch は、MCP サーバーを評価する開発者やチーム向けのオープンソースセキュリティスキャナーです。導入前や CI/CD で OWASP MCP Top 10 に基づく 10 項目を検査し、項目別の結果と A–F 評価を示すほか、公開ランキングも提供します。
主な機能
- 01OWASP MCP Top 10 の 10 項目を検査
- 02項目別結果と A–F 評価
- 03導入前のコマンドラインスキャン
- 04GitHub Action による CI/CD ゲート
- 05公開ランキングと評価の照会
活用シーン
- 01MCP サーバー追加前のスキャン
- 02スキャン評価を基準に CI/CD ビルドを制御
- 03公開ランキングでサーバーを比較
MCP 対応
MCPWatch は MCP サーバーとして動作し、ローカルサーバーのスキャン、公開評価の照会、ランキング表示、OWASP 検査項目の説明を行うツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
4掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| name | string | いいえ | 対象の任意の名前(デフォルトはディレクトリのベース名) |
| path | string | はい | スキャンするディレクトリの絶対パス |
| sarif | boolean | いいえ | true の場合、GitHub Code Scanning 用の SARIF v2.1.0 ドキュメントとして検出結果を返します。 |
詳細
MCPWatch
MCP サーバー版「Have I Been Pwned」です。 MCP サーバーを OWASP MCP Top 10 に照らして監査し、A〜F の評価を出すオープンソースのセキュリティスキャナーです。
概要
MCPWatch は MCP エコシステム向けのセキュリティツールで、次の機能を備えています。
- OWASP MCP Top 10 に基づく 10 個の自動チェックを任意の MCP サーバーに対して実行します
- チェックごとの検出結果とともに A〜F の評価を出します
- AI エージェントが必要に応じて MCP を監査できるよう、MCP サーバーインターフェースを公開します
- CI/CD パイプラインでインストール前にスキャンできる CLI を提供します
- mcpwatch.pages.dev の公開リーダーボードを支え、最新の SVG 評価バッジを提供します
インストール
Claude Code / Cursor / Windsurf で使用する(MCP サーバー)
MCP 設定に追加します。
{
"mcpServers": {
"mcpwatch": {
"command": "npx",
"args": ["-y", "mcpwatch-mcp"]
}
}
}
CLI(インストール前にスキャン)
npx mcpwatch-scanner /path/to/mcp-server
GitHub Action(CI/CD ゲート)
- uses: lazymac2x/mcpwatch-action@v1
with:
path: .
fail-below: B
MCP ツール
MCP サーバーとして実行すると、MCPWatch は AI エージェントに次のツールを公開します。
| ツール | 説明 |
|---|---|
scan_mcp_server | パスを指定してローカルの MCP サーバーをスキャンします。評価とチェックごとの検出結果を返します |
get_public_score | owner/repo スラッグを指定して、任意の公開 MCP サーバーの最新評価を取得します |
list_leaderboard | 公開リーダーボードの上位/下位 N 件のサーバーを返します |
explain_check | OWASP MCP Top 10 の任意のチェックについて、ID を指定して詳しい説明を取得します |
例:MCP を追加する前にスキャン
Claude に次のように尋ねます。「mcpwatch を使って、設定に追加する前に ~/mcps/filesystem-mcp にある filesystem-mcp サーバーをスキャンしてください。」
10 項目のチェック(OWASP MCP Top 10)
| ID | チェック項目 | 深刻度 |
|---|---|---|
| MCP-01 | ツールハンドラーでのコマンドインジェクション | 致命的 |
| MCP-02 | ファイルツールでのパストラバーサル | 致命的 |
| MCP-03 | 認証されていない変更操作 | 致命的 |
| MCP-04 | ツールの説明を介したプロンプトインジェクション | 高 |
| MCP-05 | URL 取得ツールでの SSRF | 高 |
| MCP-06 | ハードコードされたシークレットの漏えい | 高 |
| MCP-07 | ファイルシステムのアクセス範囲が過度に広い | 中 |
| MCP-08 | レート制限の欠如 | 中 |
| MCP-09 | 既知の CVE がある古い依存関係 | 中 |
| MCP-10 | 入力スキーマ検証の欠如 | 低 |
評価
| 評価 | スコア |
|---|---|
| A | 90–100 — 致命的/高の検出事項なし |
| B | 75–89 — 致命的な検出事項なし |
| C | 60–74 — 致命的な検出事項あり、影響は軽微 |
| D | 40–59 — 複数の致命的な検出事項あり |
| F | 0–39 — 深刻または悪用可能な脆弱性あり |
公開リーダーボードとバッジ
Smithery、npm、公式レジストリにあるすべての公開 MCP サーバーを毎日スキャンします。
ライブバッジ — 任意の README に貼り付けてください。
[](https://mcpwatch.pages.dev/servers/YOUR_OWNER/YOUR_REPO)
JSON API:
GET https://api.lazy-mac.com/mcpwatch/scan/{owner}/{repo}
アーキテクチャ
mcpwatch/
├── packages/
│ ├── scanner/ # Core check engine (TypeScript, runs in Worker + CLI + Node)
│ └── cli/ # mcpwatch-scanner — npx runnable
├── workers/
│ └── crawler/ # CF Worker — scheduled crawl + scan (daily)
├── apps/
│ └── web/ # CF Pages — mcpwatch.pages.dev — public leaderboard
└── .github/
└── workflows/ # mcpwatch-action CI gate
要件
- Node.js 18+
- テスト対象の MCP サーバーにローカルからアクセスできること(
scan_mcp_server/ CLI の場合) - 公開リーダーボードの検索に API キーは不要です
ライセンス
MIT — 自由に利用、フォーク、チェック項目への貢献をしてください。
貢献
新しいチェック項目、誤検出の修正、リーダーボードの改善に関するプルリクエストを歓迎します。ガイドラインについては CONTRIBUTING.md をご覧ください。
Pro Report $49(開発中)
リポジトリ横断の傾向分析、評価低下時の Slack/Discord webhook アラート、プライベート MCP スキャン。メールでウェイトリストに登録:
- 通知を受け取る:https://coindany.gumroad.com (無料プランに登録してください — 準備ができ次第、Pro Report の告知をお送りします)
関連 — Lumen API + MCP カタログ
MCP サーバーを公開している場合、以下もおすすめです(買い切りライセンス、アップデートは永久無料、MIT ライセンスのソースコード)。
- AI Citation Coverage MCP — Pro $19 — クレーム単位の RAG 引用スコアリング
- Prompt Anti-Pattern Detector — Pro $19 — 24 種類以上のプロンプトのアンチパターンを検出
- LLM Response Determinism Checker — Pro $29 — 同じプロンプトを N 回実行し、ドリフトスコアを算出
- Prompt-Leak Detector API $25 — 30 種類以上の漏えいシグネチャを検出
カタログ全体:https://api.lazy-mac.com プロフィール:https://github.com/lazymac2x dev.to:https://dev.to/lazymac2x
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。