Skip to main content
Glama

dev-tools-mcp

CI License: MIT

Claude Code — 또는 모든 MCP 클라이언트 — 에게 다섯 가지 구조화된 개발 도구를 제공하는 MCP(Model Context Protocol) stdio 서버입니다:

#

도구

기능

1

run_e2e_tests

Playwright 테스트를 실행하고, 개발 서버를 시작하며, 테스트별 통과/실패를 반환합니다

2

execute_sql_as_role

JWT 클레임이 있는 Postgres 역할로 SQL을 실행합니다 — Supabase RLS를 검증합니다

3

typecheck

tsc --noEmit을 실행하고, 구조화된 오류(파일, 줄, 코드, 메시지)를 반환합니다

4

npm_run

모든 npm 스크립트를 실행하고, Vitest/Jest 출력을 구조화된 결과로 파싱합니다

5

nextjs_build

next build를 실행하고, 구조화된 오류와 크기가 포함된 페이지 목록을 반환합니다

사전 요구 사항

  • Node.js ≥ 18

  • Claude Code 설치

  • RLS 도구의 경우: PATH에 psql이 있고 실행 중인 Supabase/Postgres 인스턴스가 있어야 합니다

빠른 시작

# 1. Clone the repo
git clone https://github.com/briancox730/dev-tools-mcp.git
cd dev-tools-mcp

# 2. Install dependencies
npm install

# 3. Build
npm run build

# 4. Register with Claude Code (local scope — this project only)
claude mcp add --transport stdio dev-tools -- node /absolute/path/to/dev-tools-mcp/build/index.js

# OR register globally (available in all projects)
claude mcp add --transport stdio --scope user dev-tools -- node /absolute/path/to/dev-tools-mcp/build/index.js

대안: .claude.json 직접 편집

~/.claude.json(전역) 또는 프로젝트 루트의 .claude.json에 있는 mcpServers 키에 다음을 추가하세요:

{
  "mcpServers": {
    "dev-tools": {
      "type": "stdio",
      "command": "node",
      "args": ["/absolute/path/to/dev-tools-mcp/build/index.js"]
    }
  }
}

그런 다음 Claude Code를 다시 시작하세요.

작동 확인

Claude Code 내에서 /mcp를 실행하면 — dev-tools: connected와 함께 5개의 도구가 나열된 것을 볼 수 있습니다.

도구 세부 정보

1. run_e2e_tests — Playwright E2E 실행기

JSON 리포터로 Playwright를 실행하고 결과를 구조화된 출력으로 파싱합니다.

입력:

  • project_dir (필수) — 프로젝트의 절대 경로

  • test_pattern — 필터링할 glob 또는 파일 경로, 예: "tests/auth.spec.ts"

  • headed — 헤드 모드로 실행 (기본값: false)

  • start_server — Playwright의 webServer 구성을 사용 (기본값: true)

  • timeout_seconds — 이 시간(초) 후 종료 (기본값: 120)

반환되는 내용:

{
  "success": true,
  "summary": { "passed": 8, "failed": 1, "skipped": 0, "total": 9 },
  "tests": [
    { "name": "Auth > should redirect unauthenticated users", "status": "passed", "duration_ms": 1200 },
    { "name": "Auth > should show dashboard after login", "status": "failed", "duration_ms": 3400, "error": "Expected element to be visible..." }
  ]
}

팁: playwright.config.tswebServer 섹션이 있어야 Playwright가 개발 서버를 자동으로 시작합니다:

export default defineConfig({
  webServer: {
    command: 'npm run dev',
    port: 3000,
    reuseExistingServer: !process.env.CI,
  },
});

2. execute_sql_as_role — Supabase RLS 테스터

JWT 클레임이 있는 특정 Postgres 역할로 SQL을 실행한 다음 롤백합니다. 데이터를 변경하지 않습니다.

입력:

  • connection_string (필수) — 예: "postgresql://postgres:postgres@localhost:54322/postgres"

  • sql (필수) — 실행할 쿼리

  • role — Postgres 역할 (기본값: "authenticated")

  • user_idauth.uid()로 설정되는 UUID

  • claims — 추가 JWT 클레임, 예: { "app_role": "parent" }

Claude Code용 예시 프롬프트:

"SELECT * FROM children을 id가 abc-123인 인증된 부모 사용자로 실행하고 자신의 자식만 볼 수 있는지 확인하세요."

반환되는 내용:

{
  "success": true,
  "role": "authenticated",
  "user_id": "abc-123",
  "query": "SELECT * FROM children",
  "rows": [["id-1", "abc-123", "Alice"], ["id-2", "abc-123", "Bob"]],
  "row_count": 2
}

3. typecheck — TypeScript 검사기

tsc --noEmit을 실행하고 출력을 구조화된 오류로 파싱합니다.

입력:

  • project_dir (필수)

  • tsconfig — tsconfig의 상대 경로 (기본값: "tsconfig.json")

  • files — 특정 파일만 검사

반환되는 내용:

{
  "success": false,
  "error_count": 2,
  "errors": [
    { "file": "src/utils.ts", "line": 42, "column": 5, "code": "TS2345", "message": "Argument of type 'string' is not assignable..." },
    { "file": "src/api.ts", "line": 18, "column": 12, "code": "TS2339", "message": "Property 'foo' does not exist on type..." }
  ]
}

4. npm_run — 구조화된 npm 스크립트 실행기

CI=trueFORCE_COLOR=0으로 모든 npm 스크립트를 실행한 다음 Vitest/Jest 출력을 파싱합니다.

입력:

  • project_dir (필수)

  • script (필수) — 예: "test", "test:unit", "lint"

  • args-- 뒤에 전달되는 추가 인수

  • env — 추가 환경 변수

반환되는 내용:

{
  "success": false,
  "exit_code": 1,
  "script": "test",
  "summary": { "total_tests": 14, "passed_tests": 12, "failed_tests": 2 },
  "file_results": [
    { "file": "src/auth.test.ts", "status": "failed", "tests_failed": 2 },
    { "file": "src/utils.test.ts", "status": "passed", "tests_passed": 5 }
  ],
  "raw_stdout": "..."
}

5. nextjs_build — Next.js 빌드 검증기

프로덕션 모드에서 next build를 실행하고 오류와 페이지 출력을 파싱합니다.

입력:

  • project_dir (필수)

  • env — 빌드용 추가 환경 변수

  • timeout_seconds — (기본값: 180)

반환되는 내용:

{
  "success": true,
  "error_count": 0,
  "errors": [],
  "pages": [
    { "path": "/", "size_kb": 5.42, "type": "static" },
    { "path": "/dashboard", "size_kb": 12.1, "type": "dynamic" },
    { "path": "/api/auth", "size_kb": 0, "type": "ssr" }
  ],
  "build_duration_ms": 24500
}

개발

# Watch mode
npm run watch

# Run the unit tests (Vitest)
npm test

# Test interactively with the MCP Inspector
npm run inspect

테스트

출력 파서는 코드베이스에서 가장 까다롭고 회귀가 발생하기 쉬운 부분입니다 — 자유 형식의 Vitest/Jest/tsc/next build 콘솔 출력을 구조화된 JSON으로 변환합니다. 이러한 순수 함수는 test/ 아래에서 Vitest로 단위 테스트됩니다. npm test로 실행하세요. CI(.github/workflows/ci.yml 참조)는 모든 푸시 및 풀 리퀘스트에 대해 Node 20 및 22에서 npm ci, TypeScript 빌드, 테스트 스위트를 실행합니다.

사용자 지정 아이디어

  • lint 도구 추가 — ESLint JSON 출력 파싱

  • prisma_migrate 도구 추가 — 구조화된 마이그레이션 상태 확인

  • docker_compose 도구 추가 — 테스트 컨테이너 관리

  • RLS 도구를 Supabase CLI에 연결 (supabase db test) — 원시 psql 대신

라이선스

MIT © 2026 Brian Cox

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • A paid remote MCP for AI agent browser DevTools MCP, built to return verdicts, receipts, usage logs,

  • One PAT, any MCP agent: Vercel, GitHub, Cloudflare, Supabase, GCP — unified dev infra gateway.

  • OCR, transcription, file extraction, and image generation for AI agents via MCP.

View all MCP Connectors

Latest Blog Posts

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/briancox730/dev-tools-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server