inspection-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@inspection-mcp검수 실행해줘"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
inspection-mcp
개발 서버 화면 검수 자동화 MCP 서버. 검수 시트(자연어)를 Playwright 스크립트로 변환하고, 이후 반복 검수는 스크립트만 실행합니다.
설치
cd /유저경로/inspection-mcp
# 의존성 설치
npm install
# Playwright 브라우저 설치
npx playwright install chromium
# 빌드
npm run buildNode.js 18 이상이 필요합니다.
Related MCP server: Limetest MCP Server
MCP 서버 등록
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json 파일을 편집합니다.
{
"mcpServers": {
"inspection-mcp": {
"command": "/노드설치경로/node",
"args": ["/유저경로/inspection-mcp/dist/index.js"]
}
}
}Cursor
프로젝트 루트 또는 글로벌 .cursor/mcp.json 파일을 편집합니다.
{
"mcpServers": {
"inspection-mcp": {
"command": "/노드설치경로/node",
"args": ["/유저경로/inspection-mcp/dist/index.js"]
}
}
}nvm 환경에서 node 경로 찾기
nvm을 사용하는 경우 심볼릭 링크가 아닌 절대 경로를 사용해야 합니다.
# 현재 node 절대 경로 확인
which node
# 예시 결과: /Users/유저이름/.nvm/versions/node/v20.11.0/bin/node환경 설정
.env 파일
프로젝트 루트에 .env 파일을 생성합니다. .env.example을 참고하세요.
cp .env.example .env사이트 등록
QA_SITE_{사이트키}_URL 패턴으로 자동 인식됩니다. 사이트키는 영문 대문자로 작성합니다.
# 사이트 URL (필수)
QA_SITE_MARKET_URL="https://dev-market.example.com"
QA_SITE_MARKET_NAME=마켓
QA_SITE_BACKOFFICE_URL="https://dev-backoffice.example.com"
QA_SITE_BACKOFFICE_NAME=백오피스
# 외부 SSO 로그인 URL (선택 - SSO 리다이렉트 방식일 때만)
QA_SITE_BACKOFFICE_LOGIN_URL="https://sso.example.com/#/login"계정 등록
QA_ACCOUNT_{계정키}_ID / _PW 패턴으로 자동 인식됩니다.
QA_ACCOUNT_USER_ID=your-username
QA_ACCOUNT_USER_PW=your-password
QA_ACCOUNT_MANAGER_ID=your-manager-id
QA_ACCOUNT_MANAGER_PW=your-manager-pw실행 옵션
QA_HEADLESS=true # true: 백그라운드 실행, false: 브라우저 표시
QA_TIMEOUT=30000 # 스크립트 타임아웃 (ms)
QA_SCREENSHOT_ON_PASS=false # 성공 항목도 스크린샷 저장 여부
QA_MAX_CONCURRENCY=5 # 최대 동시 실행 수config.json
사이트별 로그인 셀렉터, 규칙 필터, 뷰포트를 설정합니다.
{
"sites": {
"market": {
"login": {
"path": "/login",
"spaWait": 2000,
"selectors": {
"idInput": "#loginId",
"pwInput": "#loginPw",
"submitButton": "button[type=submit]"
},
"successIndicator": "/main"
}
}
},
"ruleFilter": {
"maxPageLoadTime": 10000,
"minPageHeight": 200,
"ignoreConsolePatterns": ["Warning:", "[HMR]", "Failed to load resource"],
"ignoreNetworkPatterns": ["google-analytics.com", "googletagmanager.com"]
},
"viewport": {
"width": 1440,
"height": 900
}
}.env의 사이트키와 config.json의 사이트키는 소문자로 일치해야 합니다.
(예: QA_SITE_MARKET_URL → config.json에서 "market")
사용법
1단계: 검수 시트 준비
먼저 템플릿을 받아 검수 항목을 작성합니다.
"검수 시트 템플릿 받아줘"
AI가 get_qa_template 도구를 호출하여 엑셀 템플릿 경로를 알려줍니다.
템플릿을 복사하여 검수 항목을 작성합니다.
엑셀 컬럼 구조
컬럼 | 필수 | 설명 | 예시 |
id | O | 숫자 고유 ID | 1, 2, 3 |
site | O |
| market, backoffice |
path | 조건부 | 시작 페이지 경로 | /market, /product/list |
group | - | 여정 그룹명 (같으면 순차 실행) | purchase_flow |
description | O | 자연어 검수 내용 | 상품 검색 시 결과가 정확한지 확인 |
account | 조건부 |
| user, manager |
type | - | full(기본) 또는 rule_only | full |
login | - | yes(기본) 또는 no | yes |
독립 항목 (group 없음):
path필수여정 그룹: 첫 항목만
path필수, 이후 항목은 이전 스크립트 실행 후 이어서 진행login=yes:
account필수rule_only: 스크립트 없이 HTTP 상태, 콘솔 에러, 페이지 높이 등만 검사
2단계: 검수 시트 등록
작성한 엑셀 파일을 data/sheets/ 폴더에 넣습니다.
/유저경로/inspection-mcp/data/sheets/검수시트.xlsx그 다음 AI에게 말합니다:
"검수 항목 조회해줘"
list_qa_items 도구가 data/sheets/ 폴더를 자동 스캔하여 새 파일을 등록하고 결과를 보여줍니다.
여러 엑셀 파일 관리
파일 여러 개를 넣어도 됩니다 — 각각 독립적으로 관리됩니다
파일 수정 시 자동으로 변경 감지 후 재등록됩니다
파일 삭제 시 해당 항목들도 자동으로 삭제됩니다
3단계: 스크립트 생성
"검수 스크립트 만들어줘"
AI가 각 항목에 대해:
prepare_qa_item— 대상 페이지의 DOM 구조를 수집DOM 정보를 기반으로 Playwright 스크립트 작성
save_qa_script— 스크립트 검증 후 저장
저장된 스크립트는 data/scripts/item-001.ts (+ 컴파일된 .js) 형태입니다.
4단계: 검수 실행
"검수 실행해줘"
전체 실행: run_qa
특정 항목만: run_qa (items: [1, 2])
특정 사이트만: run_qa (sites: ["market"])
단일 디버깅: run_qa_single (item_id: 1)실행 결과:
성공/실패/에러/스킵 상태
실패 항목의 스크린샷 (AI 응답에 이미지로 포함)
HTML/JSON 리포트:
data/reports/{실행ID}/
이후 반복 검수
스크립트가 한 번 생성되면, 이후에는 "검수 실행해줘"만으로 반복 실행 가능합니다. AI 토큰 소모 없이 스크립트만 실행됩니다.
탐지 가능한 이슈 유형
이 MCP 서버는 두 가지 방식으로 이슈를 탐지합니다.
자동 규칙 검사 (rule_only / full 모드 공통)
모든 검수 항목에 자동으로 적용되며, 별도 스크립트 작성 없이 탐지됩니다.
검사 항목 | 판정 기준 | 탐지 예시 |
HTTP 상태 코드 | 400 이상이면 실패 | 404 Not Found, 500 Internal Server Error |
콘솔 에러 |
| JavaScript 런타임 에러, API 호출 실패 로그 |
깨진 이미지 |
| 삭제된 상품 이미지, 잘못된 이미지 경로 |
페이지 높이 | 200px 미만이면 실패 | 빈 페이지 렌더링, 데이터 로딩 실패로 컨텐츠 없음 |
네트워크 에러 | Fetch/XHR 요청 실패 | API 서버 다운, CORS 에러, 타임아웃 |
페이지 로드 시간 | 10초 초과 시 실패 | 서버 응답 지연, 무거운 리소스 로딩 |
config.json의ruleFilter에서 기준값과 무시 패턴을 설정할 수 있습니다. 예: HMR 경고, Google Analytics 에러 등 개발 환경 노이즈는 기본 제외됩니다.
AI 스크립트 검사 (full 모드)
자연어 검수 내용을 기반으로 AI가 Playwright 스크립트를 생성하여 검증합니다. 사용자 관점의 UI/UX 이슈를 탐지할 수 있습니다.
클릭/입력 인터랙션
버튼 클릭 후 예상 동작 확인 (팝업 열림, 페이지 이동 등)
폼 입력 후 제출 결과 검증
탭/메뉴 전환 시 콘텐츠 변경 확인
예시: "상품명 클릭 시 상세보기 팝업이 열리는지 확인"
텍스트/콘텐츠 검증
특정 텍스트가 페이지에 노출되는지 확인
글자 깨짐, 인코딩 오류 탐지
데이터가 올바르게 표시되는지 검증
예시: "상품정보제공고시 화면에서 모든 속성값에 깨진 글자가 없는지 확인"
검색/필터 기능
검색 입력 후 결과 목록 노출 확인
필터 조건 적용 후 목록 갱신 검증
자동완성/최근 검색어 기능 동작 확인
예시: "검색어 입력 후 Like 검색 결과가 정확한지 확인"
상태별 노출 제어
특정 상태의 항목이 노출/미노출되는지 확인
권한에 따른 메뉴/버튼 표시 검증
예시: "판매중지/판매종료 상품이 목록에 미노출되는지 확인"
페이지 네비게이션
다음/이전 버튼으로 페이지 이동 확인
URL 변경 패턴 검증
뒤로가기 후 상태 유지 확인
예시: "하단 '다음' 버튼을 눌러 다음 단계로 이동하는지 확인"
요소 존재/가시성
필수 UI 요소가 페이지에 존재하는지 확인
로딩 후 요소가 정상적으로 보이는지 검증
예시: "로그인 후 메인 페이지에 사용자 이름이 표시되는지 확인"
검수 유형 선택 가이드
상황 | 권장 유형 | 설명 |
페이지가 정상 로딩되는지만 확인 |
| 스크립트 없이 HTTP/콘솔/이미지 자동 검사 |
UI 동작을 구체적으로 검증 |
| 자동 규칙 검사 + AI 스크립트 검사 모두 적용 |
배포 후 전체 페이지 헬스체크 |
| 빠르게 전 페이지 상태 확인 |
특정 기능의 정상 동작 확인 |
| 클릭/입력/검증 시나리오 스크립트 생성 |
도구 목록
도구 | 설명 |
| 검수 시트 등록 (data/sheets/ 자동 스캔 또는 파일 경로 지정) |
| 등록된 항목 조회 (조회 전 자동 동기화) |
| 엑셀 템플릿 경로 반환 |
| 항목 메타데이터 수정 (sheets 폴더 항목은 엑셀에서 수정 안내) |
| 항목 삭제 (sheets 폴더 항목은 엑셀에서 관리) |
| 대상 페이지 DOM 수집 |
| Playwright 스크립트 검증+저장 |
| 전체/필터 검수 실행 |
| 단일 항목 디버깅 실행 |
주의사항
검수 시트 관리
data/sheets/폴더에 넣은 엑셀 파일이 단일 진실 원천입니다항목을 삭제하려면 엑셀에서 해당 행을 지운 뒤 저장하세요.
delete_qa_item으로는 삭제되지 않습니다항목을 수정하려면 엑셀을 직접 편집하세요.
update_qa_item은 시트 관리 항목의 수정을 차단하고 엑셀 수정을 안내합니다항목을 추가하려면 엑셀에 행을 추가하면 됩니다. 다음 도구 호출 시 자동으로 반영됩니다
엑셀 파일을 열어둔 상태에서 생기는
~$임시 파일은 자동으로 무시됩니다
스크립트 규약
AI가 생성하는 스크립트는 이 프로젝트만의 규약을 따릅니다:
module.exports = async (page) => { ... }형태 (CommonJS)page객체 하나만 인자로 받음 —({ page, expect })구조분해 사용 불가{ pass: boolean, message: string }객체를 반드시 반환@playwright/test,require()등 외부 모듈 사용 불가첫 페이지 이동은 실행기가 처리하므로, 스크립트는 추가 조작만 작성
환경 설정
.env에 민감한 정보(계정 비밀번호 등)가 포함됩니다. git에 커밋하지 마세요 (gitignore 적용됨)config.json의 사이트키는.env의QA_SITE_{키}_URL에서{키}를 소문자로 변환한 값과 일치해야 합니다nvm 환경에서는 MCP 등록 시
which node로 확인한 절대 경로를 사용하세요.node만 쓰면 PATH 문제로 실행이 안 될 수 있습니다
세션 및 인증
로그인 세션은
data/auth-states/에 저장됩니다. 세션 만료 시 자동으로 재로그인합니다WEHAGO 팝업 로그인 시 팝업 URL이
wehago.com을 포함하는지 검증합니다data/auth-states/디렉토리는0700권한으로 생성됩니다
실행 관련
QA_HEADLESS=false로 설정하면 브라우저가 화면에 표시됩니다. 디버깅에 유용합니다scriptStatus가ready가 아닌 항목은 실행 시 자동으로 건너뜁니다 (skip)여정 그룹은 같은 브라우저 페이지에서 순차 실행됩니다. 중간 항목의 선행 스크립트가 모두
ready여야 합니다실행 결과 폴더명은
날짜_시분초형식으로 생성됩니다:run_qa→data/screenshots/run-20260306_143025/run_qa_single→data/screenshots/single-20260306_143025/리포트도 동일한 ID:
data/reports/run-20260306_143025/
run_qa결과에는 스크린샷 이미지가 포함되지 않습니다 (용량 초과 방지). 실패 항목의 스크린샷을 확인하려면run_qa_single로 해당 항목을 재실행하세요
폴더 구조
inspection-mcp/
├── .env # 사이트 URL, 계정 정보 (git 제외)
├── .env.example # 환경변수 템플릿
├── config.json # 사이트별 로그인 셀렉터 설정
├── package.json
├── tsconfig.json
├── src/ # 소스 코드
│ ├── index.ts # MCP 서버 진입점
│ ├── types/index.ts # 타입 정의
│ ├── core/ # 핵심 모듈
│ │ ├── config-loader.ts # 환경변수/설정 로딩
│ │ ├── excel-parser.ts # 엑셀 파싱
│ │ ├── script-generator.ts # 스크립트 생성/저장
│ │ ├── script-runner.ts # 스크립트 실행
│ │ ├── rule-filter.ts # 규칙 필터 (HTTP, 콘솔, 이미지 등)
│ │ ├── report-generator.ts # HTML/JSON 리포트
│ │ └── auth-manager.ts # 로그인/세션 관리
│ ├── store/ # 데이터 저장소
│ │ ├── qa-store.ts # qa-items.json CRUD
│ │ └── sheet-registry.ts # 엑셀↔항목 매핑 + 동기화
│ └── tools/ # MCP 도구 핸들러 (9개)
├── dist/ # 빌드 결과물 (git 제외)
└── data/ # 런타임 데이터 (git 제외, 자동 생성)
├── sheets/ # 검수 시트 엑셀 파일 배치 폴더
├── scripts/ # 생성된 Playwright 스크립트
├── reports/ # 실행 리포트
├── screenshots/ # 실패 스크린샷
└── auth-states/ # 로그인 세션 파일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
- FlicenseAqualityDmaintenanceA server that allows using natural language to automate test flows with Playwright, leveraging MidScene's AI agent capabilities to interact with web elements and perform assertions.12
- Alicense-qualityCmaintenanceEnables automated end-to-end testing powered by Playwright where test cases are defined in natural language and executed by AI. Uses lightweight snapshot analysis with vision mode fallback for sophisticated testing scenarios.3Apache 2.0
- Flicense-qualityDmaintenanceA dual-track testing server that combines CLI test execution with Playwright-based browser testing and persistent SQLite logging. It enables automated test pipelines, Git integration, and evidence-based requirement generation to streamline the development lifecycle.
- Alicense-qualityDmaintenanceAutomates repository analysis, test planning, and generation of end-to-end tests with Playwright, acting as an intelligent quality assistant.15MIT
Related MCP Connectors
Capture screenshots, detect visual regressions between page versions, and analyze with AI.
AI QA tester — real browsers scan sites for bugs, SEO, perf, and accessibility issues via chat.
Browser-backed QA with evidence and fix-ready reports for coding agents.
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/dolrea77/inspection-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server