QA Copilot MCP Server
QA Copilot MCP Server
Model Context Protocol 서버로, AI 어시스턴트가 추측하도록 요구하는 대신, 구체적인 QA/테스트 인텔리전스 도구 세트를 제공합니다. Playwright 실행 요약, 여러 실행에서 플래키 테스트 찾기, 휴리스틱 기반 실패 원인 설명, Playwright 테스트 스텁 생성, GitHub 저장소의 최근 CI 상태 읽기가 그 도구들입니다. Claude Desktop, Claude Code 또는 기타 다른 MCP 호환 호스트가 이 서버에 연결되면, 이 기능들은 자연어 추측이 아닌 실제 도구 호출이 됩니다.
이것은 "AI에 실제 데이터를 주자, 감에 의존하지 말자"는 QA 자동화 포트폴리오의 한 축입니다. 이 포트폴리오의 다른 저장소(healthcare-qa-automation-framework, healthcare-data-quality-framework)에서 생성하는 Playwright JSON 리포트와 CI 실행이 그 원, 이 서버는 그것들을 어시스턴트가 실제로 질의할 수 있는 형태로 바꿔 줍니다.
이렇게 만든 이유
프로토콜 연결은 일반 함수 위에 있는 얇은 계층일 뿐입니다. 각 도구의 실제 로직은
src/playwright/,src/github/,src/tools/에서, 작고 (거의) 순수하며 독립적으로 단위 테스트되는 모듈들로 구현됩니다.src/index.ts는 이들 로직을 MCP SDK에 등록하는 일만 합니다. 실제 파싱·플래키 감지·휴리스틱과 같은 진짜 로직은 빠른 단위 테스트로 보호하고, 프로토콜 연결 부위는 별도의 종단 간 스모크 테스트(아래 참조)로 보호하는 방식입니다.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로 stdin/stdout을 통해 구동합니다.tools/list뒤에 각 도구별tools/call— 실제로는 그 뒤의 함수뿐 아니라 와이어 프로토콜이 잘 동작한다는 것을 CI에서 검증해 줍니다.
Related MCP server: playwright-fixer-mcp
도구
도구 | 기능 |
| Playwright JSON 리포터 출력을 파싱하여 통과/실패/제한시간 초과/스킵/플래키 개수, 기간, 전체 실패 상세 정보로 정리합니다. |
| 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"]
}
}
}get_repo_ci_status의 인증되지 않은 GitHub 요청 한계(토큰 없으면 시간당 60회, 있으면 5,000회)를 늘리려면 환경변수에 GITHUB_TOKEN을 설정하세요. 간헐적 사용에는 토큰이 없어도 정상 동작합니다.
CI
main 으로의 모든 푸시와 풀 리퀘스트는 하나의 잡으로 수행됩니다: 타입 검사(tsc --noEmit), 단위 테스트 스위트(vitest run), 프로덕션 빌드, 그리고 빌드된 결과를 대상한 프로토콜 수준 스모크 테스트(node smoke-test.mjs)를 실행합니다. 어떤 CI 환경에서도 네트워크 접근을 가정하거나 요구하지 않습니다. get_repo_ci_status 는 단위 테스트에서 FakeGitHubClient 대상으로만 검증되고, 스모오크 테스트는네트워크 없는 환경에서도 서버가 MCP의 isError 채널로 오류를 보고만 하면(크래시 없이) 통과로 처리합니다.
이것이 아닌 것
범용 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