Api Tester について
Api Testerは、QA/SDETエンジニア向けのAPIテストMCPサーバーです。OpenAPI、Postman、GraphQLの仕様からテストを生成・実行でき、複数の言語とテストフレームワークに対応し、レポートやプロジェクトファイルも作成します。
主な機能
- 01OpenAPI、Postman、GraphQLの取り込み
- 02テストシナリオとケースの生成
- 03APIテストと負荷テストの実行
- 04複数の言語とテストフレームワークに対応
- 05プロジェクトファイルとHTMLレポートの作成
- 06進捗、所要時間、性能指標の表示
活用シーン
- 01API仕様から実行可能なテストを生成
- 02認証設定を使ってAPIテストを実行
- 03負荷テストを実施してレポートを確認
MCP 対応
仕様の取り込み、テストの生成と実行、プロジェクトファイル作成などのツールをMCP経由で提供します。レポートのリソースに加え、テスト計画と失敗分析のプロンプトも備えています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
API Tester MCP サーバー
Swagger/OpenAPI と Postman コレクションに対応した API テスト機能を提供する、QA/SDET エンジニア向けの包括的な Model Context Protocol(MCP)サーバーです。
🎉 NPM で利用できるようになりました!
npx @kirti676/api-tester-mcp@latestでインストールできます。
🆕 新着情報
- ✅ 進捗状況の追跡を強化 - 完了率と ETA をリアルタイムで表示します
- ✅ 視覚的なプログレスバー - マイルストーンの通知付き ASCII プログレスバー
- ✅ パフォーマンス指標 - スループットの計算と実行サマリー
- ✅ NPM で公開 - NPX ですぐにインストールできます
- ✅ VS Code との連携 - ワンクリックでインストールできます
- ✅ セットアップを簡素化 - Python を手動でインストールする必要はありません
- ✅ クロスプラットフォーム - Windows、macOS、Linux で動作します
- ✅ 自動更新 -
@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"]
}
}
}
🖥️ 対応クライアント:
- 🤖 Claude Desktop
- 💻 MCP 拡張機能を備えた VS Code
- ⚡ Cursor
- 🌊 Windsurf
- 🪿 Goose
- 🔧 その他すべての MCP 対応クライアント
🐍 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 サーバーをすぐに試してみましょう。
# Run the server
npx @kirti676/api-tester-mcp@latest
# Check version
npx @kirti676/api-tester-mcp@latest --version
# Get help
npx @kirti676/api-tester-mcp@latest --help
Claude Desktop などの MCP クライアントでは、次の設定を使用してください。
{
"mcpServers": {
"api-tester": {
"command": "npx",
"args": ["@kirti676/api-tester-mcp@latest"]
}
}
}
✨ 機能
- 📥 入力形式のサポート:OpenAPI/Swagger ドキュメント、Postman コレクション、GraphQL スキーマ
- 🔄 テスト生成: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 テスト | ⚡ ラピッドプロトタイピングとスクリプト |
🎯 言語選択のワークフロー
// 1. Get available languages and frameworks
const languages = await mcp.call("get_supported_languages");
// 2. Choose your preferred combination
await mcp.call("ingest_spec", {
spec_type: "openapi",
file_path: "./path/to/your/api-spec.json",
preferred_language: "typescript", // python, typescript, javascript
preferred_framework: "playwright" // varies by language
});
// 3. Generate test cases with code
await mcp.call("generate_test_cases", {
language: "typescript",
framework: "playwright"
});
// 4. Get complete project setup
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 # Dependencies & scripts
├── ⚙️ playwright.config.ts # Playwright configuration
├── 📂 tests/
│ └── 🧪 api.spec.ts # Generated test code
└── 📖 README.md # Setup instructions
🐍 Python + pytest:
my-api-tests/
├── 📋 requirements.txt # Python dependencies
├── ⚙️ pytest.ini # pytest configuration
├── 📂 tests/
│ └── 🧪 test_api.py # Generated test code
└── 📖 README.md # Setup instructions
📙 JavaScript + Jest:
my-api-tests/
├── 📦 package.json # Dependencies & scripts
├── ⚙️ jest.config.js # Jest configuration
├── 📂 tests/
│ └── 🧪 api.test.js # Generated test code
└── 📖 README.md # Setup instructions
🎯 フレームワーク固有の機能
- 🎭 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 ツール
サーバーは、詳細なパラメーター仕様を備えた包括的な MCP ツールを 11 個提供します。
1. 📥 ingest_spec - API 仕様を読み込む
言語/フレームワークの設定とともに、OpenAPI/Swagger、Postman コレクション、または GraphQL スキーマを読み込みます
{
"spec_type": "openapi", // openapi, swagger, postman, graphql (optional, auto-detected)
"file_path": "./api-spec.json", // Path to JSON, YAML, or GraphQL schema file (required)
"preferred_language": "python", // python, typescript, javascript (optional, default: python)
"preferred_framework": "requests" // pytest, requests, playwright, jest, cypress, supertest (optional, default: requests)
}
2. 🔧 set_env_vars - 認証と環境を設定する
自動検証とガイダンスを利用して環境変数を設定します
{
"variables": {}, // Dictionary of custom environment variables (optional)
"baseUrl": null, // API base URL (optional)
"auth_bearer": null, // Bearer/JWT token (optional)
"auth_apikey": null, // API key (optional)
"auth_basic": null, // Base64 encoded credentials (optional)
"auth_username": null, // Username for basic auth (optional)
"auth_password": null // Password for basic auth (optional)
}
3. 🎬 generate_scenarios - テストシナリオを作成する
読み込んだ仕様からテストシナリオを生成します
{
"include_negative_tests": true, // Generate failure scenarios (default: true)
"include_edge_cases": true // Generate boundary conditions (default: true)
}
4. 🧪 generate_test_cases - 実行可能なテストに変換する
シナリオを、希望する言語/フレームワークで実行可能なテストケースに変換します
{
"scenario_ids": null // Array of scenario IDs or null for all (optional)
}
5. 🚀 run_api_tests - API テストを実行する
詳細な結果とレポートを含めて API テストを実行します
{
"test_case_ids": null, // Array of test case IDs or null for all (optional)
"max_concurrent": 10 // Number of concurrent requests 1-50 (default: 10)
}
6. ⚡ run_load_tests - パフォーマンステストを実行する
設定可能なパラメーターを指定して、負荷/パフォーマンステストを実行します
{
"test_case_ids": null, // Array of test case IDs or null for all (optional)
"duration": 60, // Test duration in seconds (default: 60)
"users": 10, // Number of concurrent virtual users (default: 10)
"ramp_up": 10 // Ramp up time in seconds (default: 10)
}
7. 🌐 get_supported_languages - 言語/フレームワークの選択肢を一覧表示する
サポートされているプログラミング言語とテストフレームワークの一覧を取得します
// No parameters required
{}
8. 📦 generate_project_files - プロジェクト一式を生成する
依存関係と設定を含むプロジェクト構造一式を生成します
{
"project_name": null, // Project folder name (optional, auto-generated if null)
"include_examples": true // Include example test files (default: true)
}
9. 📁 get_workspace_info - ワークスペース情報
ワークスペースディレクトリとファイル生成先に関する情報を取得します
// No parameters required
{}
10. 🔍 debug_file_system - ファイルシステム診断
ワークスペースの包括的な情報とファイルシステムの診断結果を取得します
// No parameters required
{}
11. 📊 get_session_status - セッションの状態と進捗
進捗の詳細を含む現在のセッション情報を取得します
// No parameters required
{}
📚 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:仕様内のサーバー/ホストから抽出されます
- 🔗 テンプレート変数:
{{baseUrl}}、{{authToken}}などの Postman コレクション変数 - 📍 パスパラメーター:
/users/{userId}などのパス内の動的な値
💡 スマートな提案
// 1. Ingest specification - automatic analysis included
const result = await mcp.call("ingest_spec", {
spec_type: "openapi",
file_path: "./api-specification.json"
});
// Check the setup message for immediate guidance
console.log(result.setup_message);
// "⚠️ 2 required environment variable(s) detected..."
// 2. Get detailed setup instructions
const suggestions = await mcp.call("get_env_var_suggestions");
console.log(suggestions.setup_instructions);
// Provides copy-paste ready configuration examples
🎯 デフォルトのパラメーターキー
すべての MCP ツールで、ユーザーが設定できる値を案内する便利なデフォルトのパラメーターキーが提供されるようになりました。
🔧 環境変数(set_env_vars)
🔑 すべてのパラメーターは任意です — 必要なものだけ指定してください。
// Option 1: Just the base URL
await mcp.call("set_env_vars", {
baseUrl: "https://api.example.com/v1"
});
// Option 2: Just authentication
await mcp.call("set_env_vars", {
auth_bearer: "your-jwt-token-here"
});
// Option 3: Multiple parameters
await mcp.call("set_env_vars", {
baseUrl: "https://api.example.com/v1",
auth_bearer: "your-jwt-token",
auth_apikey: "your-api-key"
});
// Option 4: Using variables dict for custom values
await mcp.call("set_env_vars", {
variables: {
"baseUrl": "https://api.example.com/v1",
"custom_header": "custom-value"
}
});
🌐 言語とフレームワークの選択
デフォルト値から、利用可能な選択肢を確認できます。
// Ingest with defaults shown
await mcp.call("ingest_spec", {
spec_type: "openapi", // openapi, swagger, postman
file_path: "./api-spec.json", // Path to JSON or YAML specification file
preferred_language: "python", // python, typescript, javascript
preferred_framework: "requests" // pytest, requests, playwright, jest, cypress, supertest
});
// Project generation with defaults
await mcp.call("generate_project_files", {
language: "python", // python, typescript, javascript
framework: "requests", // Framework matching the language
project_name: "api-tests", // Project folder name
include_examples: true // Include example test files
});
⚡ テスト実行パラメーター
パフォーマンス調整用のデフォルト値が明確に設定されています。
// API tests with concurrency control
await mcp.call("run_api_tests", {
test_case_ids: null, // ["test_1", "test_2"] or null for all
max_concurrent: 10 // Number of concurrent requests (1-50)
});
// Load tests with performance parameters
await mcp.call("run_load_tests", {
test_case_ids: null, // ["test_1", "test_2"] or null for all
duration: 60, // Test duration in seconds
users: 10, // Number of concurrent virtual users
ramp_up: 10 // Ramp up time in seconds
});
🔧 設定例
// NEW: Check supported languages and frameworks
const languages = await mcp.call("get_supported_languages");
console.log(languages.supported_combinations);
// Ingest specification with language preferences
await mcp.call("ingest_spec", {
spec_type: "openapi",
file_path: "./openapi-specification.json",
preferred_language: "typescript",
preferred_framework: "playwright"
});
// Set environment variables for authentication
await mcp.call("set_env_vars", {
variables: {
"baseUrl": "https://api.example.com",
"auth_bearer": "your-bearer-token",
"auth_apikey": "your-api-key"
}
});
// Generate test scenarios
await mcp.call("generate_scenarios", {
include_negative_tests: true,
include_edge_cases: true
});
// Generate test cases in TypeScript/Playwright
await mcp.call("generate_test_cases", {
language: "typescript",
framework: "playwright"
});
// Generate complete project files
await mcp.call("generate_project_files", {
language: "typescript",
framework: "playwright",
project_name: "my-api-tests",
include_examples: true
});
// Run API tests (still works with existing execution engine)
await mcp.call("run_api_tests", {
max_concurrent: 5
});
🚀 ワークフローの全体例
Petstore API をテストする全体例を以下に示します。
# 1. Start the MCP server
npx @kirti676/api-tester-mcp@latest
次に、MCP クライアント(Claude Desktop など)で以下を実行します。
// 1. Load the Petstore OpenAPI spec
await mcp.call("ingest_spec", {
spec_type: "openapi",
file_path: "./examples/petstore_openapi.json"
});
// 2. Set environment variables
await mcp.call("set_env_vars", {
pairs: {
"baseUrl": "https://petstore.swagger.io/v2",
"auth_apikey": "special-key"
}
});
// 3. Generate test cases
const tests = await mcp.call("get_generated_tests");
// 4. Run API tests
const result = await mcp.call("run_api_tests");
// 5. View results in HTML report
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 レポートにアクセスします
- 📈 セッションの状態と統計情報を取得します
🚀 GraphQL API テストのワークフロー
-
📥 GraphQL スキーマを読み込む
{ "tool": "ingest_spec", "params": { "spec_type": "graphql", "file_path": "./schema.graphql" } } -
🔐 GraphQL エンドポイントを設定する
{ "tool": "set_env_vars", "params": { "graphqlEndpoint": "https://api.example.com/graphql", "auth_bearer": "your-jwt-token" } } -
🧪 GraphQL テストを生成する
{ "tool": "generate_test_cases", "params": { "preferred_language": "python", "preferred_framework": "pytest" } } -
📊 GraphQL テストを実行する
{ "tool": "run_api_tests", "params": { "max_concurrent": 5 } }
⚡ 負荷テスト
{
"tool": "run_load_tests",
"params": {
"users": 10,
"duration": 60,
"ramp_up": 10
}
}
🔍 テスト生成機能
- ✅ 正常系テスト:期待される 2xx レスポンスを返す有効なリクエスト
- ❌ 異常系テスト:無効な認証(401)、誤ったメソッド(405)
- 🎯 エッジケース:大きなペイロード、境界条件
- 🏗️ スキーマベースのボディ:OpenAPI スキーマからリクエストボディを自動生成
- 🔍 包括的なアサーション:ステータスコード、レスポンス時間、コンテンツの検証
📊 HTML レポート
生成されるレポートには、以下が含まれます。
- 📈 成功/失敗の統計を含むテスト実行サマリー
- ⏱️ 実行時間の情報を含む詳細なテスト結果
- 🔍 アサーションの内訳とエラーの詳細
- 👁️ レスポンスのプレビューとデバッグ情報
- 📱 モバイルに対応したレスポンシブデザイン
🔒 認証のサポート
- 🎫 ベアラートークン:
auth_bearer環境変数 - 🔑 API キー:
auth_apikey環境変数(X-API-Key ヘッダーとして送信) - 👤 ベーシック認証:
auth_basic環境変数
🔧 要件
- 🐍 Python:3.8 以降
- 🟢 Node.js:14 以降(npm でのインストール用)
📦 依存関係
🐍 Python の依存関係
- 🚀 fastmcp>=0.2.0
- 📊 pydantic>=2.0.0
- 🌐 requests>=2.28.0
- ✅ jsonschema>=4.0.0
- 📝 pyyaml>=6.0
- 🎨 jinja2>=3.1.0
- ⚡ aiohttp>=3.8.0
- 🎭 faker>=19.0.0
🟢 Node.js の依存関係
- ✨ なし(自己完結型パッケージ)
🔧 トラブルシューティング
❗ よくある問題
📦 NPX コマンドが動作しない
# If npx command fails, try:
npm install -g @kirti676/api-tester-mcp@latest
# Or run directly:
node ./node_modules/@kirti676/api-tester-mcp/cli.js
🐍 Python が見つからない
# Make sure Python 3.8+ is installed and in PATH
python --version
# Install Python dependencies manually if needed:
pip install fastmcp>=0.2.0 pydantic>=2.0.0 requests>=2.28.0
🔗 MCP クライアントの接続に関する問題
- ✅ MCP サーバーが stdio トランスポート(デフォルト)で実行されていることを確認してください
- 🔄 MCP クライアントが最新の MCP プロトコルバージョンをサポートしていることを確認してください
- 📝 設定 JSON の構文が正しいことを確認してください
🆘 ヘルプの利用
- 📖 動作する設定については、Examples ディレクトリを確認してください
- 🔍 詳細なログを表示するには、
--verboseフラグを付けて実行してください - 🐛 GitHub Issues で問題を報告してください
🤝 貢献
- リポジトリをフォークします
- フィーチャーブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add some amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - プルリクエストを作成します
📄 ライセンス
このプロジェクトは MIT License のもとでライセンスされています。詳細については、LICENSE ファイルを参照してください。
🐛 問題とサポート
- NPM パッケージ:@kirti676/api-tester-mcp
- バグの報告:GitHub Issues
📈 ロードマップ
- 多言語テスト生成 - TypeScript/Playwright、JavaScript/Jest、Python/pytest をサポート ✨ 新機能!
- プロジェクトの完全生成 - 依存関係と設定を含むプロジェクトの完全なひな形を生成 ✨ 新機能!
- GraphQL API のサポート - GraphQL スキーマをサポート ✨ 新機能!
- 追加の認証方式(OAuth2、JWT)
- Go/Golang のテスト生成(testify/ginkgo 対応)
- C#/.NET のテスト生成(NUnit/xUnit 対応)
- パフォーマンスの監視とアラート
- CI/CD パイプラインとの統合(GitHub Actions、Jenkins)
- サンプルやスキーマからの高度なテストデータ生成
- Pact のサポートによる API コントラクトテスト
- 開発用モックサーバーの生成
📄 著作権と利用
© 2025 kirti676. All rights reserved.
このリポジトリとその内容は、著作権法によって保護されています。このプロジェクトの一部を再利用、参照、または再配布する許可を得るには、[email protected] まで所有者にお問い合わせください。
✅ 許可なしで可能:
- 個人的な学習や実験
- プルリクエストによるこのリポジトリへの貢献
❓ 許可が必要:
- 商用利用または統合
- 変更を加えた形式での再配布
- 派生物の公開
ライセンスに関するお問い合わせ、共同作業の機会、または許可の申請については、[email protected] までご連絡ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。