QA Copilot MCP Server
QA Copilot MCP Server
Model Context Protocol を実装したサーバーです。AI アシスタントに推測をさせるのではなく、Playwright の実行を要約する、複数の実行にわたって flaky テストを検出する、失敗をヒューリスティックに説明する、Playwright テストの雛形を生成する、GitHub リポジトリの最近の CI 状況を取得する、といった具体的な QA/テストインテリジェンスツールの小さなセットを提供します。Claude Desktop、Claude Code、その他の MCP 互換ホストからこのサーバーを指定すれば、それらは自由文の推測ではなく、実際のツール呼び出しになります。
これは、QA 自動化ポートフォリオの中でも「AI に雰囲気ではなく実データを与える」部分に当たります。このポートフォリオ内の他のリポジトリ(healthcare-qa-automation-framework、healthcare-data-quality-framework)は Playwright の JSON レポートと CI 実行を生成しますが、このサーバーはそれらを、アシスタントが実際に照会できるものへと変換します。
この設計にした理由
プロトコル配線は、素の関数の上に載せる薄い層に過ぎません。 各ツールの実際のロジックは
src/playwright/、src/github/、src/tools/に、小さく(ほぼ)純粋で、それぞれ単体テストされたモジュール群あります。src/index.tsはそれらを MCP SDK に登録するだけです。つまり、間違えにくい部分(レポート解析、flaky 検出、ヒューリスティック)は高速な単体テストでカバーされ、プロトコル配線は別途、エンドツーエンドのスモークテスト(後述)でカバーされます。GitHub アクセスはプラグ可能です。このポートフォリオ内の他の LLM 統合と同じパターンです。
GitHubClientはインターフェースであり、RealGitHubClientは GitHub REST API へのfetchをラップし、FakeGitHubClientは固定データを返します。これによりget_repo_ci_statusはオフラインで完全に単体テスト可能になります。一方、実際のクライアントは本物の実行可能なコードです。開発者のマシンで動く MCP ホストには通常のインターネットアクセスがありますが、ネットワークのない環境(このリポジトリ自身の CI サンドボックスなど)でも、そのままテスト可能です。テストスタブ生成は、意図的に LLM ベースではなく決定論的です。 名前付きの
data-testid操作シーケンスを渡すと、generate_playwright_test_stubは常に同じ出力を生成します。即時・無料・再現可能です。別の仕事のための別のツール(仕様やユーザーストーリーからテスト ケース を生成するもの。そこでは LLM が実際に価値を発揮します)は、このポートフォリオの別プロジェクトになります。単体テストだけでなく、プロトコルレベルのスモークテストも行います。
smoke-test.mjsはビルドされたサーバーを実際の子プロセスとして起動し、公式 MCPClientを使って stdio 上で操作します。tools/listを実行し、続いてツールごとにtools/callを実行します。これにより CI は、内部の関数だけでなく実際のワイヤプロトコルが機能することを証明します。
Related MCP server: playwright-fixer-mcp
ツール
ツール | 説明 |
| Playwright の JSON レポーター出力を解析し、パス・失敗・タイムアウト・スキップ・ flaky の件数、所要時間、失敗の詳細を返します。 |
| 2 件以上の Playwright JSON レポートを比較し、結果が一貫していないテストを検出します。 |
| 生のエラーメッセージに対して、パターンマッチングによるヒューリスティックな根本原因の推測を返します。完全にオフラインで動作します。 |
| 名前付き |
| 公開 GitHub リポジトリの最近の Actions 実行を取得し、成功・失敗・進行中の件数を要約します。 |
アーキテクチャ
src/
index.ts MCP server: registers all 5 tools, connects over stdio
playwright/reportParser.ts Pure Playwright-JSON parsing: summarizeReport, findFlakyTests
github/githubClient.ts GitHubClient interface + RealGitHubClient (fetch) + FakeGitHubClient
tools/
explainFailure.ts Heuristic pattern-matching (ported from the triage_failure.py
script in healthcare-qa-automation-framework)
generateTestStub.ts Deterministic Playwright test-file template generator
getRepoCiStatus.ts Wraps GitHubClient into pass/fail/in-progress counts
test/ Vitest unit tests for every module above
fixtures/ Sample Playwright JSON reports (3 runs, used for flaky-test tests)
smoke-test.mjs End-to-end MCP protocol smoke test (real child process, real client)
.github/workflows/ci.yml Type-check, unit tests, build, protocol smoke test技術スタック
TypeScript · Node.js · @modelcontextprotocol/sdk · Zod · Vitest · GitHub REST API · GitHub Actions
ローカルでの実行
npm install
npm run build # compiles to dist/
npm test # unit tests (27 tests, fully offline)
npm run smoke # builds, then drives the real server over stdio via the MCP clientMCP ホストから使用する
ビルドしたサーバーを MCP 互換クライアントに指定します。たとえば Claude Desktop の claude_desktop_config.json では:
{
"mcpServers": {
"qa-copilot": {
"command": "node",
"args": ["/absolute/path/to/qa-copilot-mcp-server/dist/index.js"]
}
}
}環境変数 GITHUB_TOKEN を設定すると、実効的に get_repo_ci_status の GitHub レート制限を引き上げられます(トークンなしで 60 リクエスト/時、トークンありで 5,000 リクエスト/時)。たまに使う分には、トークンなしでも問題なく動作します。
CI
main へのすべての push と pull request で、単一のジョブが実行されます。型チェック(tsc --noEmit)、単体テストスイート(vitest run)、プロダクションビルド、そしてビルド成果物に対するプロトコルレベルのスモークテスト(node smoke-test.mjs)です。CI ではどこでもネットワークアクセスを前提とせず、要求もしません。get_repo_ci_status は単体テストで FakeGitHubClient に対してのみ実行され、スモークテストでは、サーバーがクラッシュせず MCP の isError チャネル経由で正常に報告さえすれば、ネットワークなしの get_repo_ci_status の結果は合格として扱います。
これは何ではないか
これは汎用的な GitHub ダッシュボードや CI ダッシュボードではありません。このポートフォリオの他のリポジトリが実際に生成する Playwright レポートと GitHub Actions の形状に特化した、小さく焦点の絞られたツール群です。AI アシスタントがテスト結果を要約情報へ言い換えるのではなく、実際の検証可能なテストデータに接続されることを示すためのものです。
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to execute browser automation, perform QA tasks, and generate test code through natural language commands using Playwright.5
- FlicenseAqualityDmaintenanceAutomated Playwright E2E test repair powered by a self-improving, governed MCP server that runs failing tests, collects failure artifacts, reasons about root causes, validates and applies fixes, and re-runs to verify.12
- AlicenseBqualityBmaintenanceSupercharges AI-assisted debugging of Playwright tests by parsing trace files to extract failures, action history, network logs, screenshots, and suggesting fixes.612MIT
- AlicenseNot gradedqualityBmaintenanceEnables autonomous web QA by exposing Playwright browser control as MCP tools for navigation, accessibility snapshotting, interaction, and bug detection.3MIT
Related MCP Connectors
BuildPulse CI test analytics for AI agents — flaky tests, coverage, and CI run history.
Voice-powered bug reporting with 13 MCP tools. Record bugs by talking; let AI find and fix them.
Official MCP server for Qase — manage test cases, runs, suites, defects via AI tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sharath9271-design/qa-copilot-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server