Are you the author? Sign in to claim
AI-assisted test process MCP server (Phase 1: ISO/IEC/IEEE 29119-3 test plan draft generation)
JSTQB/ISTQB Generic Test Process を AI で支援する MCP サーバー。
テスト管理ツールの操作を目的とせず、Generic Test Process の各工程(Test Planning 〜 Test Completion)において、テスト成果物の作成・レビュー・分析を AI で支援することを目的とする。文書構成は JSTQB準拠の15章テンプレートに基づく。
現在のスコープ(Phase 1〜3: Test Planning + Test Analysis + Test Design): テスト計画書(JSTQB準拠15章構成)の日本語ドラフト生成・JSTQB観点でのレビュー・修正支援・質問形式でのコンテキスト収集ガイド、要件分析・テスト条件抽出、および境界値分析・同値分割・テストケース生成によるテスト設計技法。 将来構想: Test Analysis(要件分析・テスト条件抽出)、Test Design(テストケース生成・テスト仕様書レビュー)を経て、Generic Test Process 全7工程へ段階的に拡張する。詳細は docs/roadmap.md を参照。
npm install
npm run build
create_test_planプロジェクト情報(projectName, scope は必須。objectives, risks, scheduleConstraints, team, testItems, stakeholders, glossary など多数の任意項目)を入力すると、JSTQB準拠の15章構成に沿った日本語Markdown形式のテスト計画書ドラフトを生成する。未入力の項目は _未記入_(必須項目は _未記入(必須)_)として明示される。テストタイプ説明・インシデントランク等の固定リファレンスは常に出力される。
review_test_planテスト計画書のMarkdown本文を入力すると、JSTQB観点でレビューレポートを返す。二層構成: (1) 構造検査(15章の欠落・必須項目の未記入を決定的に検出)、(2) 意味的レビュー用チェックリスト(呼び出し側のLLMが内容の妥当性を判断するための指示形式)。
revise_test_plan既存のテスト計画書Markdownと修正指示(instructions、任意の文字列配列)を入力すると、修正結果レポートを返す。二層構成: (1) 機械的修正(欠落章の自動補完、TBD/TODO/未定等の未記入プレースホルダの _未記入_ への正規化)を適用した修正後計画書、(2) 内容の書き換えを呼び出し側LLMに指示する箇条書き(ユーザー指定の修正指示、および修正後もなお残る必須未記入項目の一覧)。
test_plan_interview質問形式でテスト計画書のコンテキストを収集するためのガイド。テンプレートの必須項目を中心に、ユーザーへ順に質問して回答を集め、create_test_plan を呼び出すようアシスタントを誘導する。任意引数 projectName を受け取る。
design_boundary_values変数の有効範囲(下限・上限・刻み・型)から2値/3値の境界値を決定的に列挙し、有効/無効判定付きのMarkdown表で返す。
design_equivalence_partitioning変数ごとの有効/無効同値クラスから代表値ベースのテストケースを決定的に生成し、全クラス被覆チェック付きのMarkdown表で返す。
testplan://template/standardテスト計画書テンプレート(JSTQB準拠15章構成)の構造データ(JSON)を公開する。各セクションの見出し・必須フラグ・入力マッピング(fieldKey)に加え、固定リファレンス(テストタイプ・カタログ、インシデントランク、判定ステータス、標準メトリクス等)を含む。
jstqb://glossary/coreJSTQB(ISTQB)用語のパラフレーズ集(テストレベル・テストタイプ・開始基準/終了基準・テスト条件/テスト観点・レビュータイプ等)を構造化データ(JSON)として公開する。
testplan://review/checklistテスト計画書の意味的レビュー用チェックリスト(JSTQB観点、用語集への相互参照付き)を構造化データ(JSON)として公開する。
review_test_basisテストベース(要件・仕様)のMarkdown文書一式を入力すると、ID重複・未解決参照・プレフィックス逸脱・曖昧語・数量表現を決定的に検査し、意味的チェックリスト・依頼元への質問状雛形・改善提案を併せて返す。
testbasis://review/checklistテストベース(要件・仕様)レビュー用の意味的チェックリスト(改善アクション・用語集への相互参照付き)を構造化データ(JSON)として公開する。
analyze_requirements複数のテストベース文書を横断分析し、要件ID体系・数量表現の全文書横断集約・境界値候補(design_boundary_values 連携)・用語定義と本文使用の照合・曖昧語検出を決定的に行い、根拠位置必須の指摘表付きMarkdownとして返す。品質特性マッピング・ステークホルダー別影響・変更差分4区分は呼び出し側LLMへの指示として出力される。
requirements_analysis_interview質問形式で要件分析のコンテキストを収集するためのガイド。開発背景・分析対象文書・スコープ・ステークホルダー・変更差分等を確認し、analyze_requirements を呼び出すようアシスタントを誘導する。任意引数 subjectName を受け取る。
quality://characteristics/product製品品質特性モデル(自作パラフレーズ、機能適合性・性能効率性・互換性・使用性・信頼性・セキュリティ・保守性・移植性の8特性)を副特性・着眼点・関連テストタイプ付きの構造化データ(JSON)として公開する。
testbasis://id-patterns要件ID・機能IDの表記ゆれに対応する正規表現パターン集を構造化データ(JSON)として公開する。analyze_requirements / review_test_basis の idPatterns 引数にそのままコピーして使える。
extract_test_conditionsテスト条件を「テストベース/ステークホルダー/リスク/ガイドワード」の4系統から導出させ、導出元(source + derivedFrom)を必須メタデータとして検査する。要件ID×テスト条件の双方向カバレッジマトリクス・未カバー要件ID・観点カテゴリの未使用・条件IDの重複/欠番・優先度未設定・derivedFrom の未解決参照・未知の推奨技法IDを決定的に検出し、リスクスコア(影響度×発生可能性×変更差分重み)からの優先度導出と宣言優先度の逸脱判定を添えたMarkdownを返す。観点カタログ・ガイドワード辞書・リスク分析フレームに基づく追加洗い出しは呼び出し側LLMへの指示として出力される。
testcondition://perspectives/catalogテスト観点カタログ(自作パラフレーズ、機能・境界・同値・状態遷移・並行競合・障害回復・性能負荷・セキュリティ・リグレッション等の18カテゴリ)を、観点・着眼点例・関連品質特性・推奨技法付きの構造化データ(JSON)として公開する。
testcondition://guidewords/dictionary着目点語彙(12件)・ガイドワード語彙(16件)・質問テンプレート・運用手順を構造化データ(JSON)として公開する。着目点1×着目点2×ガイドワードを掛け合わせ、テストベースに書かれていないテスト条件を機械的に洗い出すために使う。
testcondition://risk/frameリスク分析フレーム(影響度軸・発生可能性軸・変更差分軸・ステークホルダー別影響枠・リスクスコア算出式・スコアから優先度への写像)を構造化データ(JSON)として公開する。
generate_test_casesテスト条件からテストケース仕様を導出する。二層構成: (1) 決定的層は、境界値分析・同値分割・状態遷移の各入力から網羅対象一覧を機械的に構築し、網羅率カウント・未充足の網羅対象・テスト条件×テストケーストレーサビリティ・ケースIDの重複/欠番/プレフィックス不一致・由来メタデータの未解決参照・期待結果の主観語/空欄・手順の粒度・閾値の直値埋め込みを決定的に検査する。(2) 意味的層は、テストケース本文(前提条件・手順・期待結果)の組み立てのみを呼び出し側LLMへの指示として返す。testCases が未指定・空の場合は「生成指示のみ」の出力になる。
test_design_interview質問形式でテスト設計のコンテキストを収集するためのガイド。対象テスト条件・テストベースの特徴・境界値/同値クラス・状態遷移・因子水準・前提条件・閾値パラメータ等を確認し、generate_test_cases を呼び出すようアシスタントを誘導する。任意引数 subjectName を受け取る。
testdesign://techniques/catalogテスト技法カタログ(自作パラフレーズ、境界値分析・同値分割・デシジョンテーブル・状態遷移・ペアワイズ・ユースケース/シナリオ・CRUD/データライフサイクル・競合/タイミングの10技法)と、テストベースの特徴からの技法選定決定表(8行)を構造化データ(JSON)として公開する。generate_test_cases が技法推奨と網羅基準表示に利用する。
review_test_specification「テストベースに対してテスト仕様書が十分か」を評価軸に、テストベース文書一式とテスト仕様書本文(フォーマット不問)、任意の testCases / testConditions / risks を入力として受け取る。要件ID・テスト条件ID・リスクIDの3系統について双方向カバレッジ(forward: 未カバーID、reverse: 根拠不明・過剰テスト候補)を構築し、ID表記の同期(EH100 と EH-100 の表記ゆれ)・ケースIDの重複・期待結果の空欄・優先度の付与状況と判定基準の宣言有無・前提条件のプレースホルダー・手順数と期待結果数のバランス・主観語・網羅基準の宣言有無を決定的に検査する。意味的レビュー用チェックリスト(14項目)と改善提案を併せて返す。testCases 未指定時はID抽出ベースの簡易チェックのみを返す。
testspec://review/checklistテスト仕様書レビュー用の意味的チェックリスト(網羅性・トレーサビリティ・期待結果の整合・技法の適切さ・実行可能性・観測可能性・再現性・独立性・データ準備可能性・環境指定・変更差分への重み付け・再利用性・用語一貫性・技法選定根拠の14項目)を、改善アクション・用語集への相互参照付きの構造化データ(JSON)として公開する。
npm run dev # tsc --watch
npm start # node dist/server.js(stdio transport)
npm test # vitest run
npm run inspect # build後、MCP Inspectorを起動して動作確認
npx @modelcontextprotocol/inspector --cli node dist/server.js --method resources/list
npx @modelcontextprotocol/inspector --cli node dist/server.js --method tools/list
npx @modelcontextprotocol/inspector --cli node dist/server.js --method prompts/list
npx @modelcontextprotocol/inspector --cli node dist/server.js --method tools/call \
--tool-name create_test_plan \
--tool-arg projectName="ECサイト" \
--tool-arg scope="決済とログイン機能"
npx @modelcontextprotocol/inspector --cli node dist/server.js --method prompts/get \
--prompt-name test_plan_interview --prompt-args projectName="ECサイト"
{
"mcpServers": {
"ai-test-process-mcp": {
"command": "node",
"args": ["<repo-path>/dist/server.js"]
}
}
}
npm公開後は、リポジトリをローカルにcloneしなくても npx 経由で起動できる(.vscode/mcp.json の例)。
{
"servers": {
"ai-test-process-mcp": {
"command": "npx",
"args": ["-y", "ai-test-process-mcp"]
}
}
}
npm login(npmjs.comのアカウントで認証)npm run build(npm publish 実行時は prepublishOnly フックにより自動実行されるため、手動実行は任意)npm publish公開後の接続方式(stdio)は変わらない。MCPレジストリ(server.json / mcp-publisher)への登録は本手順の対象外で、将来の別タスクとして扱う。
新しい機能(Test Analysis・Test Design ほか Generic Test Process 各工程の tool)を追加する際は、以下のパターンに従う:
src/resources/<name>.ts — 必要な参照データ(構造化データ)を定義src/tools/<name>.ts — zod入力スキーマ + 純粋なレンダリング関数 + registerXxxTool()src/resources/index.ts / src/tools/index.ts にそれぞれ1行登録を追加test/<name>.test.ts でレンダリング関数を単体テストserver.ts 本体は変更不要。プラグインローダーやレジストリのような抽象化は、モジュール数が増えて明示的な登録リストが煩雑になるまで導入しない。
詳細は AGENTS.md と docs/ai/project-overview.md を参照。
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
Google's universal MCP server supporting PostgreSQL, MySQL, MongoDB, Redis, and 10+ databases
Official GitHub integration for repos, issues, PRs, and CI/CD workflows