Security Headers について
Security Headers は、公開 URL や入力されたヘッダーを評価する開発者向け MCP サーバーです。一般的なセキュリティ対策を採点し、レスポンス本文を取得せずに説明と推奨事項を示します。
主な機能
- 01公開 URL のレスポンスヘッダーを取得・採点
- 02ネットワーク接続なしで入力ヘッダーを採点
- 03ヘッダーの目的と推奨値を説明
- 04CSP、HSTS、Cookie 属性などを確認
活用シーン
- 01公開サイトの HTTP セキュリティ設定を確認
- 02curl のレスポンスからコピーしたヘッダーを評価
MCP 対応
URL のヘッダー確認、オフライン採点、個別ヘッダーの説明を MCP ツールとして公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm ghcr.io/basitalisandhu/mcp-security-headers:0.3.0ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/basitalisandhu/mcp-security-headers:0.3.0stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
security-headers MCP サーバー
公開 URL のレスポンスヘッダーを取得し、Content-Security-Policy、Strict-Transport-Security、X-Frame-Options、X-Content-Type-Options、Referrer-Policy、Permissions-Policy、Cross-Origin-* ヘッダー、Set-Cookie 属性、情報開示ヘッダーを評価します。各ヘッダーについて、説明と推奨事項も提示します。レスポンス本文はダウンロードされません。
dev-mcp-servers の一部です。Stdio トランスポートのみを使用し、サーバーがポートを開くことはありません。
ツール
| ツール | 入力 | 戻り値 |
|---|---|---|
check_url_headers | url、method?(HEAD または GET)、max_redirects?(0~10、デフォルトは 5) | 公開 http(s) URL に HEAD リクエストを送信します(405/501 の場合は GET)。すべてのリダイレクト先で同じ検証を行った後、評価レポートを返します。localhost、.local、.internal、プライベート、ループバック、リンクローカル、CGNAT、クラウドメタデータのアドレス、およびそれらのアドレスに解決される名前は拒否します。 |
grade_headers | headers(オブジェクト)、https? | たとえば curl -I で取得したヘッダーを、同じ基準で評価します。ネットワークアクセスはありません。 |
explain_header | header | 1 つのヘッダーの目的、推奨値、参考情報を返します。 |
インストール
Claude Code:
claude mcp add security-headers -- docker run --rm -i ghcr.io/basitalisandhu/mcp-security-headers:0.2.2
すべてのプロジェクトで利用できるようにするには、-s user を追加します。.mcp.json を読み込むクライアント(Claude Code、Claude Desktop、Cursor)で利用する場合:
{
"mcpServers": {
"security-headers": {
"command": "docker",
"args": ["run", "--rm", "-i", "ghcr.io/basitalisandhu/mcp-security-headers:0.2.2"]
}
}
}
バージョンを以下のように固定すると、気づかないうちに更新によってエディターで実行される内容が変わるのを防げます。パッケージはまだ npmjs.com に公開されていないため、npx は使えません。GitHub Packages npm についてはリポジトリの READMEを参照してください。チェックアウトしたリポジトリから使う場合は、リポジトリのルートで npm install && npm run build を実行した後、"command": "node", "args": ["<path>/packages/security-headers/dist/index.js"] を使用します。
影響する範囲
- ネットワーク:指定した URL へのリクエストを 1 回送信し、最大で
max_redirects回、検証を行いながらリダイレクトをたどります。リクエストごとのタイムアウトは 10 秒です。接続前にホストを解決し、すべてのアドレスを検証します。ただし、検証から接続までの間の DNS リバインディングは防げないため、正直な応答を返すと信頼できないホストをこのツールに指定しないでください。テレメトリはありません。 - ローカルファイル:なし。
- テレメトリ:なし。
注意事項
- スコア:CSP は 25 点、HSTS は 20 点、X-Frame-Options は 10 点、X-Content-Type-Options は 10 点、Referrer-Policy は 10 点、Set-Cookie は 10 点、Permissions-Policy は 5 点、COOP は 5 点、CORP は 5 点です。評価は A+(95%以上かつ fail なし)、A(85%以上かつ fail なし)、B(70%)、C(55%)、D(40%)、それ以外は F です。
- レポート専用の CSP は適用されないため、スコアは加算されません。
- 評価が高いことは、ヘッダーが適切に設定されていることを示しますが、アプリケーションが安全であることを意味するものではありません。
ビルドとテスト
npm install # at the repository root
npm run build -w @basitalisandhu/mcp-security-headers
npm test -w @basitalisandhu/mcp-security-headers
テストでは node:test と SDK のインメモリトランスポートを使用し、ネットワークにはアクセスしません。
ライセンス
MIT。LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。