OpenAPI Lint について
OpenAPI Lintは、OpenAPI 3.0および3.1の文書を検査し、操作を確認するMCPサーバーです。API開発者がセキュリティや完全性の問題を見つけられるよう、ローカル参照のみを解決します。
主な機能
- 01OpenAPI 3.0と3.1の文書を検査
- 02セキュリティと完全性の問題を報告
- 03有効なセキュリティ設定と操作を一覧表示
- 04操作の確認と検査ルールの説明
活用シーン
- 01セキュリティ設定やレスポンス定義の不足を発見
- 02操作のパラメーターとレスポンスを確認
- 03検査結果と修正方法を把握
MCP 対応
MCPクライアントにOpenAPIの検査、操作確認、ルール説明ツールを提供します。ローカルファイルまたはインライン文書を受け取り、参照先を取得しません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm ghcr.io/basitalisandhu/mcp-openapi-lint:0.3.0ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/basitalisandhu/mcp-openapi-lint:0.3.0stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
openapi-lint MCP サーバー
OpenAPI 3.0 または 3.1 のドキュメント(JSON または YAML。ローカルパスまたはインライン)を読み込み、セキュリティや完全性に関する問題を検出します。また、有効なセキュリティ設定とともにオペレーションを一覧表示し、取得します。解決されるのはローカルの #/ 参照のみで、外部からの取得は行いません。
dev-mcp-servers の一部です。Stdio トランスポートのみを使用し、サーバーがポートを開くことはありません。
ツール
| ツール | 入力 | 戻り値 |
|---|---|---|
lint_openapi | path または document、ignore? | 重要度順に並べた検出結果。ルール ID、JSON Pointer パス、メッセージが含まれます。内容は、OpenAPI バージョン、HTTP サーバー、未定義・未使用・未設定のセキュリティスキーム、セキュリティ設定のないオペレーション(明示的に公開されているものを含む)、レスポンスまたは成功レスポンスのないオペレーション、説明のないレスポンスとパラメーター、宣言されていない、または必須でないパスパラメーター、未設定または重複した operationId、バージョン指定のないパス、空のリクエストボディ、非推奨のオペレーション、未宣言のタグです。 |
list_operations | path または document、tag?、method?、path_prefix? | すべてのオペレーション。operationId、summary、タグ、非推奨フラグ、有効なセキュリティ設定(security: [] の場合は public、適用される設定がない場合は inherited-none)、パラメーター、リクエストのメディアタイプ、レスポンスコードが含まれます。 |
get_operation | path または document、operation_id または method + operation_path | パスレベルのパラメーターを統合し、ローカル参照を解決した、1 つのオペレーションの全情報。 |
explain_rule | rule | 重要度、ルールが検出する内容、修正方法。 |
インストール
Claude Code:
claude mcp add openapi-lint -- docker run --rm -i -v "$PWD:/work:ro" ghcr.io/basitalisandhu/mcp-openapi-lint:0.2.2
すべてのプロジェクトで利用できるようにするには、-s user を追加します。.mcp.json を読み込むクライアント(Claude Code、Claude Desktop、Cursor)では、次のようにします。
{
"mcpServers": {
"openapi-lint": {
"command": "docker",
"args": ["run", "--rm", "-i", "-v", "/path/to/your/project:/work:ro", "ghcr.io/basitalisandhu/mcp-openapi-lint:0.2.2"]
}
}
}
表示されているとおりにバージョンを固定すると、気付かないうちに更新によってエディターで実行される内容が変わるのを防げます。コンテナから見えるのはマウントされたディレクトリのみなので、/work 以下のパスを指定してください。パッケージはまだ npmjs.com に公開されていないため、npx は機能しません。GitHub Packages npm については、リポジトリの README を参照してください。チェックアウトしたリポジトリから使う場合は、リポジトリのルートで npm install && npm run build を実行した後、"command": "node", "args": ["<path>/packages/openapi-lint/dist/index.js"] を指定します。
影響する範囲
- ネットワーク:なし。
- ローカルファイル:指定したファイルを 1 つ読み込みます。サイズ上限は 5 MB です。YAML の解析にはエイリアス数の上限が適用されます。
- テレメトリー:なし。
注意事項
- Swagger 2.0 のドキュメントは lint されず、
openapi-versionルールによって報告されます。 - 検出結果が示すのはドキュメントの内容であり、稼働中の API ではありません。
ビルドとテスト
npm install # at the repository root
npm run build -w @basitalisandhu/mcp-openapi-lint
npm test -w @basitalisandhu/mcp-openapi-lint
テストには node:test と SDK のインメモリトランスポートを使用し、ネットワークには接続しません。
ライセンス
MIT です。LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。