🚀 API Tester MCP Server
API Tester MCP Serverは、QA/SDETエンジニア向けの包括的なModel Context Protocol (MCP) サーバーです。Swagger/OpenAPIおよびPostmanコレクションをサポートしたAPIテスト機能を提供します。
🎉 現在、NPMで利用可能です! npx @kirti676/api-tester-mcp@latest でインストールしてください

🚀 クイックスタート
インストール
API Tester MCPサーバーは、インストールせずにnpxで直接使用できます。
npx @kirti676/api-tester-mcp@latest
クイックインストール:

Claude Desktop
MCPのインストールガイドに従い、以下の標準設定を使用してください。
{
"mcpServers": {
"api-tester": {
"command": "npx",
"args": ["@kirti676/api-tester-mcp@latest"]
}
}
}
その他のMCPクライアント
標準設定は、ほとんどのMCPクライアントで動作します。
{
"mcpServers": {
"api-tester": {
"command": "npx",
"args": ["@kirti676/api-tester-mcp@latest"]
}
}
}
サポートされるクライアント:
Pythonインストール (代替方法)
pip install api-tester-mcp
ソースからのインストール
git clone https://github.com/kirti676/api_tester_mcp.git
cd api_tester_mcp
npm install
すぐに試す
API Tester MCPサーバーをすぐに試すことができます。
npx @kirti676/api-tester-mcp@latest
npx @kirti676/api-tester-mcp@latest --version
npx @kirti676/api-tester-mcp@latest --help
Claude DesktopなどのMCPクライアントでは、以下の設定を使用します。
{
"mcpServers": {
"api-tester": {
"command": "npx",
"args": ["@kirti676/api-tester-mcp@latest"]
}
}
}
✨ 主な機能
- 📥 入力サポート: Swagger/OpenAPIドキュメントおよびPostmanコレクション
- 🔄 テスト生成: 自動APIおよび負荷テストシナリオ生成
- 🌐 多言語サポート: TypeScript/Playwright、JavaScript/Jest、Python/pytestなどでテストを生成
- ⚡ テスト実行: 生成されたテストを詳細なレポートとともに実行
- 🔐 スマート認証検出: 自動環境変数分析と設定ガイダンス
- 🔐 認証:
set_env_vars を介したBearerトークンとAPIキーのサポート
- 📊 HTMLレポート: MCPリソースを介した美しくアクセスしやすいレポート
- 📈 リアルタイム進捗: 進捗バーと完了パーセンテージでのリアルタイム更新
- ⏱️ ETA計算: すべての操作の完了予想時間
- 🎯 マイルストーン追跡: 重要な進捗マイルストーン (25%、50%、75%など) での特別な通知
- 📊 パフォーマンスメトリクス: スループット計算と実行サマリー
- ✅ スキーマ検証: スキーマ例からのリクエストボディ生成
- 🎯 アサーション: エンドポイントごとのステータスコードアサーション (2xx、4xx、5xx)
- 📦 プロジェクト生成: 依存関係と設定を含む完全なプロジェクトのスカフォールディング
🌐 多言語テスト生成
API Tester MCPは、複数のプログラミング言語とテストフレームワークでテストコードを生成することをサポートしています。
サポートされる言語/フレームワークの組み合わせ
| 言語 |
フレームワーク |
説明 |
使用例 |
| TypeScript |
Playwright |
優れたAPIサポートを備えた最新のE2Eテスト |
エンタープライズWebアプリケーション |
| TypeScript |
Supertest |
Express.jsに特化したAPIテスト |
Node.jsバックエンドサービス |
| JavaScript |
Jest |
良好なエコシステムを持つ人気のテストフレームワーク |
一般的なAPIテスト |
| JavaScript |
Cypress |
素晴らしい開発者体験を備えたE2Eテスト |
フルスタックアプリケーション |
| Python |
pytest |
フィクスチャとプラグインを備えた包括的なテスト |
データ中心のAPIとMLサービス |
| Python |
requests |
迅速な検証のためのシンプルなHTTPテスト |
迅速なプロトタイピングとスクリプト |
言語選択のワークフロー
const languages = await mcp.call("get_supported_languages");
await mcp.call("ingest_spec", {
spec_type: "openapi",
content: spec_content,
preferred_language: "typescript",
preferred_framework: "playwright"
});
await mcp.call("generate_test_cases", {
language: "typescript",
framework: "playwright"
});
await mcp.call("generate_project_files", {
language: "typescript",
framework: "playwright",
project_name: "my-api-tests",
include_examples: true
});
生成されるプロジェクト構造
generate_project_files ツールは、実行可能な完全なプロジェクトを作成します。
TypeScript + Playwright:
my-api-tests/
├── package.json # 依存関係とスクリプト
├── playwright.config.ts # Playwrightの設定
├── tests/
│ └── api.spec.ts # 生成されたテストコード
└── README.md # セットアップ手順
Python + pytest:
my-api-tests/
├── requirements.txt # Pythonの依存関係
├── pytest.ini # pytestの設定
├── tests/
│ └── test_api.py # 生成されたテストコード
└── README.md # セットアップ手順
JavaScript + Jest:
my-api-tests/
├── package.json # 依存関係とスクリプト
├── jest.config.js # Jestの設定
├── tests/
│ └── api.test.js # 生成されたテストコード
└── README.md # セットアップ手順
フレームワーク固有の機能
- Playwright: ブラウザ自動化、並列実行、詳細なレポート
- Jest: スナップショットテスト、モッキング、開発用のウォッチモード
- pytest: フィクスチャ、パラメータ化されたテスト、豊富なプラグインエコシステム
- Cypress: インタラクティブなデバッグ、タイムトラベルデバッグ、実際のブラウザでのテスト
- Supertest: Express.jsとの統合、ミドルウェアテスト
- requests: シンプルなAPI呼び出し、セッション管理、認証ヘルパー
📈 進捗追跡
API Tester MCPは、すべての操作に対して包括的な進捗追跡を提供します。
視覚的な進捗インジケーター
🎯 API Test Execution: [██████████░░░░░░░░░░] 50.0% (5/10) | ETA: 2.5s - GET /api/users ✅
機能:
- 進捗バー: 塗りつぶし/空のインジケーター付きのASCII進捗バー
- 完了パーセンテージ: リアルタイムの完了パーセンテージ
- ETA計算: 現在のパフォーマンスに基づく完了予想時間
- マイルストーン通知: 重要な進捗ポイントでの特別な強調表示
- パフォーマンスメトリクス: スループットとタイミング統計
- 操作コンテキスト: 現在実行中のステップに関する詳細情報
利用可能な操作:
- シナリオ生成
- テストケース生成
- APIテスト実行
- 負荷テスト実行
- すべての長時間実行の操作
🛠️ MCPツール
サーバーは10の包括的なMCPツールを提供します。
ingest_spec - 言語設定を含めてSwagger/OpenAPIまたはPostmanコレクションを読み込む
get_supported_languages - サポートされるプログラミング言語とフレームワークのリストを取得 (新機能!)
get_env_var_suggestions - 詳細な環境変数設定ガイダンスを取得
set_env_vars - 認証と環境変数を設定
generate_scenarios - 仕様からテストシナリオを作成
generate_test_cases - 選択した言語/フレームワークでシナリオを実行可能なテストケースに変換 (強化版!)
generate_project_files - 依存関係と設定を含む完全なプロジェクトを生成 (新機能!)
run_api_tests - 詳細な結果を伴うAPIテストを実行
run_load_tests - パフォーマンス/負荷テストを実行
get_session_status - 現在のセッション情報を取得
📚 MCPリソース
file://reports - 利用可能なすべてのテストレポートをリストする
file://reports/{report_id} - 個々のHTMLテストレポートにアクセスする
💡 MCPプロンプト
create_api_test_plan - 包括的なAPIテストプランを生成する
analyze_test_failures - テストの失敗を分析し、推奨事項を提供する
🔧 スマート環境変数分析
API Tester MCPは、API仕様を自動的に分析して必要な環境変数を検出し、役立つ設定ガイダンスを提供します。
自動検出
- 認証スキーム: Bearerトークン、APIキー、Basic認証、OAuth2
- ベースURL: 仕様のサーバー/ホストから抽出
- テンプレート変数: Postmanコレクションの変数 (
{{baseUrl}}、{{authToken}} など)
- パスパラメータ:
/users/{userId} のようなパス内の動的な値
スマートな提案
const result = await mcp.call("ingest_spec", {
spec_type: "openapi",
content: openapi_json_string
});
console.log(result.setup_message);
const suggestions = await mcp.call("get_env_var_suggestions");
console.log(suggestions.setup_instructions);
🔧 設定例
const languages = await mcp.call("get_supported_languages");
console.log(languages.supported_combinations);
await mcp.call("ingest_spec", {
spec_type: "openapi",
content: openapi_json_string,
preferred_language: "typescript",
preferred_framework: "playwright"
});
await mcp.call("set_env_vars", {
variables: {
"baseUrl": "https://api.example.com",
"auth_bearer": "your-bearer-token",
"auth_apikey": "your-api-key"
}
});
await mcp.call("generate_scenarios", {
include_negative_tests: true,
include_edge_cases: true
});
await mcp.call("generate_test_cases", {
language: "typescript",
framework: "playwright"
});
await mcp.call("generate_project_files", {
language: "typescript",
framework: "playwright",
project_name: "my-api-tests",
include_examples: true
});
await mcp.call("run_api_tests", {
max_concurrent: 5
});
📖 完全なワークフロー例
Petstore APIをテストする完全な例を次に示します。
npx @kirti676/api-tester-mcp@latest
その後、Claude DesktopなどのMCPクライアントで以下のコードを実行します。
await mcp.call("ingest_spec", {
kind: "openapi",
path_or_text: "https://petstore.swagger.io/v2/swagger.json"
});
await mcp.call("set_env_vars", {
pairs: {
"baseUrl": "https://petstore.swagger.io/v2",
"auth_apikey": "special-key"
}
});
const tests = await mcp.call("get_generated_tests");
const result = await mcp.call("run_api_tests");
const reports = await mcp.call("list_resources", {
uri: "file://reports"
});
💻 使用例
基本的なAPIテストワークフロー
-
API仕様を読み込む
{
"tool": "ingest_spec",
"params": {
"spec_type": "openapi",
"content": "{ ... your OpenAPI spec ... }"
}
}
-
認証を設定する
{
"tool": "set_env_vars",
"params": {
"variables": {
"auth_bearer": "your-token",
"baseUrl": "https://api.example.com"
}
}
}
-
テストを生成して実行する
{
"tool": "generate_scenarios",
"params": {
"include_negative_tests": true
}
}
-
結果を確認する
- MCPリソースを介してHTMLレポートにアクセスする
- セッションステータスと統計情報を取得する
負荷テスト
{
"tool": "run_load_tests",
"params": {
"users": 10,
"duration": 60,
"ramp_up": 10
}
}
🔍 テスト生成機能
- 肯定テスト: 期待される2xxレスポンスを持つ有効なリクエスト
- 否定テスト: 無効な認証 (401)、誤ったメソッド (405)
- エッジケース: 大きなペイロード、境界条件
- スキーマベースのボディ: OpenAPIスキーマからの自動リクエストボディ生成
- 包括的なアサーション: ステータスコード、レスポンス時間、コンテンツ検証
📊 HTMLレポート
生成されたレポートには以下が含まれます。
- 合格/不合格統計を含むテスト実行の概要
- タイミング情報を含む詳細なテスト結果
- アサーションの内訳とエラー詳細
- レスポンスのプレビューとデバッグ情報
- モバイルフレンドリーなレスポンシブデザイン
🔒 認証サポート
- Bearerトークン:
auth_bearer 環境変数
- APIキー:
auth_apikey 環境変数 (X-API-Keyヘッダーとして送信)
- Basic認証:
auth_basic 環境変数
🔧 要件
- Python: 3.8以上
- Node.js: 14以上 (npmインストール用)
📦 依存関係
Python依存関係
- fastmcp>=0.2.0
- pydantic>=2.0.0
- aiohttp>=3.8.0
- jinja2>=3.1.0
- pyyaml>=6.0
- jsonschema>=4.0.0
- faker>=19.0.0
Node.js依存関係
🔧 トラブルシューティング
一般的な問題
NPXコマンドが機能しない場合
npm install -g @kirti676/api-tester-mcp@latest
node ./node_modules/@kirti676/api-tester-mcp/cli.js
Pythonが見つからない場合
python --version
pip install fastmcp>=0.2.0 pydantic>=2.0.0 requests>=2.28.0
MCPクライアントの接続問題
- MCPサーバーがstdioトランスポートで実行されていることを確認する (デフォルト)
- MCPクライアントが最新のMCPプロトコルバージョンをサポートしていることを確認する
- 設定JSONの構文が正しいことを確認する
ヘルプを得る方法
- Examples ディレクトリを確認して、動作する設定を見つける
- PROGRESS_TRACKING.md を参照して、詳細な進捗追跡のドキュメントを確認する
--verbose フラグを付けて実行して、詳細なログを取得する
- GitHub Issues で問題を報告する
🤝 コントリビューション
- リポジトリをフォークする
- 機能ブランチを作成する (
git checkout -b feature/amazing-feature)
- 変更をコミットする (
git commit -m 'Add some amazing feature')
- ブランチにプッシュする (
git push origin feature/amazing-feature)
- プルリクエストを作成する
📄 ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細については LICENSE ファイルを参照してください。
🐛 問題とサポート
📈 ロードマップ
- [x] 多言語テスト生成 - TypeScript/Playwright、JavaScript/Jest、Python/pytestのサポート ✨ 新機能!
- [x] 完全なプロジェクト生成 - 依存関係と設定を含む完全なプロジェクトのスカフォールディング ✨ 新機能!
- [ ] GraphQL APIサポート
- [ ] 追加の認証方法 (OAuth2、JWT)
- [ ] Go/Golangテスト生成 (testify/ginkgoを使用)
- [ ] C#/.NETテスト生成 (NUnit/xUnitを使用)
- [ ] パフォーマンス監視とアラート
- [ ] CI/CDパイプライン (GitHub Actions、Jenkins) との統合
- [ ] サンプルとスキーマからの高度なテストデータ生成
- [ ] Pactサポートを備えたAPIコントラクトテスト
- [ ] 開発用のモックサーバー生成
QA/SDETエンジニアのために愛情を込めて作られました