mcpField
S
Swagger Testcase MCP

Swagger Testcase MCP

ローカル
github.com/eyaushev開発ツール229 週間前に更新

Swagger Testcase MCP について

Swagger Testcase MCPは、QAチーム向けにSwagger/OpenAPI仕様からAPIテストケースを生成します。仕様の検証・比較やモックデータの作成にも対応し、テストツール向けの形式で出力できます。

主な機能

  1. 01分類別のエンドポイントテスト生成
  2. 02仕様品質の検証
  3. 03破壊的変更の検出
  4. 04スキーマに基づくモックデータ生成
  5. 059形式でのエクスポート

活用シーン

  1. 01API仕様から基本テストを作成
  2. 02仕様変更による互換性破壊を確認
  3. 03テスト管理システムやランナー向けに出力

MCP 対応

仕様の読み込み・分析、テストケースの生成と出力、仕様の検証・比較、モックデータ作成、カバレッジ確認のツールをMCPクライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"swagger-testcase": {
"command": "npx",
"args": [
"-y",
"swagger-testcase-mcp"
]
}
}
}
起動コマンドnpx -y swagger-testcase-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmswagger-testcase-mcp

ツール

10

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
auth_headerstringいいえAuthorization ヘッダーの値。例:"Bearer eyJ..." または "Basic dXNlcjpwYXNz"
headersobjectいいえキーと値のペアで指定する追加の HTTP ヘッダー。例:{"X-API-Key": "abc123"}
sourcestringはいSwagger/OpenAPI 仕様のソース:URL(https://...)またはローカルファイルパス(/path/to/spec.json, ./spec.yaml)

詳細

swagger-testcase-mcp

npm version License: MIT Node.js

API テスト向けの MCP サーバーです。Swagger/OpenAPI 仕様からテストケースを生成し、仕様を検証し、バージョンを比較して、モックデータを作成します。

API 仕様の URL を指定するだけで、手動テストや TMS へのインポートにすぐ使える、分類済みのテストケース(ポジティブ、ネガティブ、境界値、認証、セキュリティ、冪等性、ページネーション)を取得できます。

導入の背景

  • テストケースの手動作成には時間がかかります。 パラメーターが 10 個以上ある単一のエンドポイントでは、ポジティブ、ネガティブ、境界値、セキュリティのシナリオを網羅するために、30〜50 件のテストケースが必要になる場合があります。エンドポイントが数十個あれば、実際のテストではなく、定型作業に何日も費やすことになります。
  • ネガティブケースや境界値ケースは省かれがちです。 納期に追われると、QA は正常系を優先します。エッジケース、無効な入力、セキュリティチェックは真っ先に削られ、そして本番環境のインシデントを引き起こす原因にもなります。
  • 仕様の変更にテストドキュメントが追いつかず、社内 API は置き去りにされます。 新しいエンドポイント、フィールド名の変更、制約の変更などに合わせてテストケースを更新し続けるのは、絶え間ない負担です。VPN や独自の認証の背後にある企業 API では、認証付きの仕様アクセスに対応していないツールが多いため、さらに困難です。
  • テストケースを TMS に取り込むには、追加の手順が必要です。 優れたテストケースを作成しても、TestRail、Allure、Postman にインポートできる形式に整える作業は面倒で、価値を生みません。

このツールは、基本的な作業を自動化します。公開、社内、localhost のいずれの Swagger/OpenAPI 仕様でも指定すれば、数秒で分類済みのテストケースを取得し、TMS やテストランナーにすぐインポートできるファイルとして保存できます。ビジネスロジックと探索的テストに集中し、残りの作業はツールに任せましょう。

機能

  • Swagger 2.0 と OpenAPI 3.x を解析 — JSON および YAML に対応
  • スマートなテストケース生成 — パラメーター、スキーマ、制約、レスポンスコード、セキュリティを分析し、関連性の高いテストケースを作成
  • 8 種類のテストカテゴリ — ポジティブ、ネガティブ、境界値、認可、ビジネスロジック、セキュリティインジェクション、冪等性、ページネーションとソート
  • 9 種類のエクスポート形式 — Markdown、JSON、CSV、Allure CSV、Gherkin、Postman、k6、pytest、TestRail CSV(Steps と Text の 2 つのテンプレート)
  • 仕様の検証 — 11 個のルールによる品質スコアと、実行可能な改善提案
  • 仕様の比較 — 2 つのバージョンを比較し、破壊的変更を検出
  • モックデータの生成 — ロケールに対応した、スキーマに基づくリアルなテストデータ
  • カバレッジ分析 — テストカバレッジの不足箇所を特定し、優先度付きの推奨事項を提示
  • ファイルへの自動保存 — エクスポート結果を作業ディレクトリに自動保存するため、手動でコピー&ペーストする必要はありません
  • 生成設定のカスタマイズ — カテゴリ、優先度、ロケール、独自の前提条件によるフィルタリング
  • 一括生成 — タグ、HTTP メソッド、パスのプレフィックス、非推奨ステータスによるフィルタリング
  • あらゆる MCP クライアントで動作 — Claude Desktop、Cursor、VS Code + Cline など

生成されるテストケースのカテゴリ

カテゴリ対象範囲
✅ ポジティブ必須フィールドを使った正常系、すべてのフィールドを使った正常系
❌ ネガティブ必須フィールドの欠落、無効な型、空文字列、null、無効な列挙値、空のボディ
📏 境界値数値の最小値/最大値、文字列の minLength/maxLength
🔐 認証トークンなし、無効なトークン、権限不足
💼 ビジネスロジック存在しないリソースに対する 404、409 の競合、429 のレート制限、同時実行
🛡️ セキュリティXSS、SQL インジェクション、パストラバーサル、コマンドインジェクション、CRLF インジェクション
🔄 冪等性PUT/DELETE の繰り返し、Idempotency-Key を指定した POST
📄 ページネーション最初/最後のページ、負のオフセット、0 件の上限、無効なソートフィールド

インストール

npm install -g swagger-testcase-mcp

または、npx で直接実行します。

npx swagger-testcase-mcp

設定

Claude Desktop

claude_desktop_config.json に追加します:

{
  "mcpServers": {
    "swagger-testcase-mcp": {
      "command": "npx",
      "args": ["-y", "swagger-testcase-mcp"]
    }
  }
}
Cursor

.cursor/mcp.json に追加します:

{
  "mcpServers": {
    "swagger-testcase-mcp": {
      "command": "npx",
      "args": ["-y", "swagger-testcase-mcp"]
    }
  }
}
VS Code + Claude Code

.vscode/mcp.json に追加します:

{
  "servers": {
    "swagger-testcase-mcp": {
      "command": "npx",
      "args": ["-y", "swagger-testcase-mcp"]
    }
  }
}
VS Code + Cline

Cline の MCP 設定に追加します:

{
  "swagger-testcase-mcp": {
    "command": "npx",
    "args": ["-y", "swagger-testcase-mcp"]
  }
}
JetBrains (WebStorm, IntelliJ, PyCharm)

Settings → Tools → AI Assistant → MCP Servers → Add に移動し、stdio を選択して以下を入力します:

  • Command: npx
  • Arguments: -y swagger-testcase-mcp

または、MCP 設定ファイルに手動で追加します:

{
  "servers": {
    "swagger-testcase-mcp": {
      "command": "npx",
      "args": ["-y", "swagger-testcase-mcp"]
    }
  }
}
Windsurf

~/.windsurf/mcp.json に追加します:

{
  "mcpServers": {
    "swagger-testcase-mcp": {
      "command": "npx",
      "args": ["-y", "swagger-testcase-mcp"]
    }
  }
}

クイックスタート

1. "Load the spec from https://petstore3.swagger.io/api/v3/openapi.json"
2. "Generate test cases for POST /pet"
3. "Export as Postman collection"

生成される出力の例を以下に示します(Markdown エクスポート):

## Positive Tests (1)

### TC-001: POST /pet — happy path with required fields only

- **Priority:** high
- **Preconditions:** Valid authentication credentials are available
- **Steps:**
  1. Send POST request to /pet
  2. Include only required parameters/fields with valid values
  3. Verify response status and body
- **Input:** `{"name":"Buddy","photoUrls":["https://example.com/photo.jpg"]}`
- **Expected Result:** Returns success response with expected data
- **Expected Status:** 200

## Negative Tests (2)

### TC-002: POST /pet — missing required field "name"

- **Priority:** high
- **Preconditions:** Valid authentication credentials are available
- **Steps:**
  1. Send POST request to /pet
  2. Omit required field "name"
  3. Verify error response
- **Input:** `{"_omit":"name"}`
- **Expected Result:** Returns validation error indicating "name" is required
- **Expected Status:** 422

### TC-003: POST /pet — invalid type for "name"

- **Priority:** medium
- **Preconditions:** Valid authentication credentials are available
- **Steps:**
  1. Send POST request to /pet
  2. Set "name" to invalid type value: 12345
  3. Verify error response
- **Input:** `{"name":12345}`
- **Expected Result:** Returns validation error for invalid type of "name"
- **Expected Status:** 422

ジェネレーターは 8 つのカテゴリ(ポジティブ、ネガティブ、境界値、認証、ビジネスロジック、セキュリティ、冪等性、ページネーション)にわたってテストケースを生成します。上記の例には、その一部のみが表示されています。generate_test_cases_batch を使用すると、API 全体をまとめてカバーできます。

各ツールとワークフローの詳しい例については、EXAMPLES.md を参照してください。

利用可能なツール

ツール説明
fetch_swaggerURL、内部 URL、またはローカルファイルから仕様を読み込み、解析します(認証は任意)
analyze_endpoint特定のエンドポイントの詳細情報を取得します
generate_test_cases1 つのエンドポイントのテストケースを生成します(設定は任意)
generate_test_cases_batch複数のエンドポイントのテストケースを生成します(タグ/メソッド/パスのプレフィックスでフィルタリング)
export_test_casesテストケースをエクスポートしてファイルに保存します(markdown、json、csv、allure_csv、gherkin、postman、k6、pytest、testrail_csv、testrail_csv_text)
compare_specs2 つの仕様バージョンを比較し、破壊的変更を検出します
validate_spec仕様の品質を検証します(スコア 0~100、12 個のルール)
generate_mock_dataスキーマから現実的なモックデータを生成します
suggest_missing_testsテストカバレッジを分析し、改善点を提案します
clear_cacheキャッシュされた仕様やテストケースを消去します

生成設定

すべての生成ツールは、任意の config パラメーターを受け付けます:

{
  "config": {
    "categories": ["positive", "negative", "security"],
    "priorityFilter": ["high"],
    "maxFieldsForNegative": 15,
    "locale": "ru",
    "customPreconditions": ["Database seeded with test data"],
    "skipDeprecated": true
  }
}
パラメーター説明
categories生成するテストカテゴリ:positive、negative、boundary、auth、business_logic、security、idempotency、pagination。デフォルト:すべて
priorityFilter指定した優先度のケースのみを生成します:high、medium、low。デフォルト:すべて
maxFieldsForNegative無効な型のネガティブケースに使用するフィールドの最大数。デフォルト:10
localeテストケースのテキストの言語:en、ru。デフォルト:en
customPreconditions生成されるすべてのケースに追加する前提条件
skipDeprecatedバッチ生成時に非推奨のエンドポイントをスキップします。デフォルト:false

ファイルへのエクスポート

エクスポートはすべて、作業ディレクトリに自動的に保存されます。ファイル名はエンドポイントと形式に基づいて生成されます:

test-cases_POST__pet_postman.json
test-cases_GET__users_testrail_csv.csv
test-cases_POST__orders_k6.js

カスタムパスを指定することもできます:

"Export as postman to /path/to/my-collection.json"
形式ファイル拡張子
markdown.md
json.json
csv、allure_csv、testrail_csv、testrail_csv_text.csv
gherkin.feature
postman.json
k6.js
pytest.py

制限事項

このツールは、OpenAPI 仕様に記述されているパラメーター、スキーマ、制約、レスポンスコード、セキュリティ定義に基づいてテストケースを生成します。次の内容には対応していません。

  • ビジネスロジック — 「管理者以外のユーザーは割引率が 50%を超えてはならない」「注文には在庫のある商品が少なくとも 1 つ必要」などのルールは仕様に含まれないため、テストケースは自動生成されません。
  • エンドポイント間の依存関係 — このツールは各エンドポイントを個別に処理します。「ユーザーを作成 → 注文を作成 → ステータスを確認」のような一連のテストは生成されません。
  • カスタム検証ルール — OpenAPI がサポートする範囲を超える制約(条件付きのフィールド要件やフィールド間の検証など)は検出されません。

補完方法: このツールは MCP クライアント(Claude、Cursor など)内で動作するため、チャットでビジネスルールを説明し、生成されたテストケースの拡張や調整を LLM に依頼できます。このツールがベースラインを提供し、LLM がコンテキストを補います。

ヒント: OpenAPI 仕様の品質が高いほど(制約、列挙値、例、説明など)、生成されるテストケースの関連性も高まります。validate_spec を使用して仕様の品質を確認し、改善の提案を取得してください。

サポートされているソース

公開、社内ネットワーク、localhost、ローカルファイルなど、あらゆる Swagger/OpenAPI 仕様で動作します。

公開およびローカルの仕様
"Load the spec from https://petstore3.swagger.io/api/v3/openapi.json"
"Load the spec from /path/to/swagger.json"
"Load the spec from ./api-spec.yaml"
"Load the spec from http://localhost:8080/v3/api-docs"
社内 API

VPN、SSO、社内ネットワーク経由で認証が必要な仕様にアクセスできます。

"Load the spec from https://internal-api.company.com/docs/swagger.json with auth_header Bearer eyJhbGci..."
{
  "source": "https://internal-api.company.com/docs/swagger.json",
  "auth_header": "Bearer eyJhbGciOiJIUzI1NiIs..."
}
{
  "source": "https://internal-api.company.com/docs/swagger.json",
  "auth_header": "Basic dXNlcjpwYXNz"
}
{
  "source": "https://internal-api.company.com/docs/swagger.json",
  "headers": { "X-API-Key": "abc123" }
}

ヒント: 仕様が社内 VPN の背後にある場合は、MCP サーバーのプロセスが内部 URL にネットワークアクセスできることを確認してください。サーバーはローカルで動作するため、お使いのマシンの VPN やプロキシの設定が自動的に適用されます。

TMS との連携

Allure TestOps
  1. テストケースを生成し、allure_csv 形式でエクスポートします。
  2. Allure TestOps migration tool からインポートします(以下の列に合わせて fieldMapping を設定してください)。
  3. 列:名前、説明、事前条件、手順、期待結果、レイヤー、タグ
  4. または、Allure TestOps MCP server と組み合わせて、API 経由でテストケースを直接作成できます。

注: Allure TestOps の UI からの CSV インポートは、バージョン 25.3.4 で削除されました。代わりに移行ツールまたは API 連携を使用してください。

"Generate test cases for POST /pet"
"Export as allure_csv"
TestRail

次の 2 つのエクスポート形式を利用できます。

  • testrail_csv — ステップテンプレート(ステップごとに 1 行)。期待結果は各テストケースの最後のステップに設定され、中間ステップの期待結果は空欄になります。
  • testrail_csv_text — テキストテンプレート(すべてのステップを 1 つのフィールドにまとめます)。よりシンプルで、あらゆる TestRail の設定で使用できます。

ステップテンプレート(推奨):

  1. testrail_csv 形式でエクスポートします。
  2. TestRail で Test Cases → Import from CSV を開きます。
  3. 「Test Case (Steps)」テンプレートを選択します。
  4. 列を対応付けます:タイトル、セクション、タイプ、優先度、事前条件、ステップ、期待結果
"Generate test cases for all endpoints tagged 'users'"
"Export as testrail_csv"

テキストテンプレート:

"Export as testrail_csv_text"
汎用 CSV(Qase、Zephyr、TestLink など)

ほとんどの TMS プラットフォームは CSV インポートに対応しています。csv 形式を使用し、インポート時に列を TMS のフィールドに対応付けてください。

  • Qase — title、preconditions、steps、expected_result、priority を対応付けます。
  • Zephyr Scale — Name、Precondition、Test Script (Plain Text)、Priority、Folder を対応付けます。
  • TestLink — 標準の CSV インポートウィザードを使用します。
"Generate test cases for GET /users"
"Export as csv"

Postman との連携

Postman Collection としてインポート

テストケースを生成し、Postman に直接インポートするか、CI で Newman 経由で実行できる Postman Collection v2.1 としてエクスポートします。

"Load the spec from https://internal-api.company.com/docs/swagger.json with auth_header Bearer eyJ..."
"Generate test cases for POST /users"
"Export as postman"

エクスポートされたコレクションには、次の内容が含まれます。

  • テストカテゴリ(正常系、異常系、セキュリティなど)ごとに整理されたフォルダー
  • 各テストケースに事前設定された HTTP メソッド、URL、ヘッダー、リクエストボディ
  • 期待されるステータスコードのアサーションを含む、自動生成されたテストスクリプト
Postman にインポート
  1. Postman を開き、インポートを選択して、エクスポートした JSON ファイルをドラッグします
  2. 各エンドポイント用のフォルダーを含むコレクションが表示されます
  3. API を指す baseUrl 変数を設定した環境をセットアップします
Newman で実行(CI)
newman run exported-collection.json \
  --environment env.json \
  --reporters cli,junit

開発

git clone https://github.com/eyaushev/swagger-testcase-mcp.git
cd swagger-testcase-mcp
npm install
npm run build
npm test
npm start

ライセンス

MIT

コメント

MCP は初めてですか?

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

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