dev-tools
dev-tools-mcp
Ein MCP-(Model Context Protocol)-stdio-Server, der Claude Code – oder jedem anderen MCP-Client – fünf strukturierte Entwicklungswerkzeuge bereitstellt:
# | Tool | Funktion |
1 |
| Führt Playwright-Tests aus, startet den Dev-Server, liefert bestanden/nicht bestanden pro Test |
2 |
| Führt SQL als Postgres-Rolle mit JWT-Ansprüchen aus – verifiziert Supabase RLS |
3 |
| Führt |
4 |
| Führt beliebige npm-Skripte aus, parst Vitest/Jest-Ausgabe in strukturierte Ergebnisse |
5 |
| Führt |
Voraussetzungen
Node.js ≥ 18
Claude Code installiert
Für das RLS-Tool: psql im PATH und eine laufende Supabase/Postgres-Instanz
Schnellstart
# 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.jsAlternative: .claude.json direkt bearbeiten
Fügen Sie dies zum Schlüssel mcpServers in ~/.claude.json (global) oder .claude.json im Projektstamm hinzu:
{
"mcpServers": {
"dev-tools": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/dev-tools-mcp/build/index.js"]
}
}
}Starten Sie dann Claude Code neu.
Überprüfen, dass es funktioniert
Führen Sie in Claude Code /mcp aus – Sie sollten dev-tools: connected mit 5 aufgelisteten Tools sehen.
Tool-Details
1. run_e2e_tests – Playwright-E2E-Ausführer
Führt Playwright mit dem JSON-Reporter aus und parst die Ergebnisse in strukturierte Ausgabe.
Eingaben:
project_dir(erforderlich) – absoluter Pfad zu Ihrem Projekttest_pattern– Glob oder Dateipfad zum Filtern, z. B."tests/auth.spec.ts"headed– im beheadeten Modus ausführen (Standard: false)start_server– Playwrights webServer-Konfiguration verwenden (Standard: true)timeout_seconds– nach dieser Anzahl Sekunden beenden (Standard: 120)
Was Sie zurückbekommen:
{
"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..." }
]
}Tipp: Stellen Sie sicher, dass Ihre playwright.config.ts einen webServer-Abschnitt enthält, damit Playwright Ihren Dev-Server automatisch startet:
export default defineConfig({
webServer: {
command: 'npm run dev',
port: 3000,
reuseExistingServer: !process.env.CI,
},
});2. execute_sql_as_role – Supabase-RLS-Tester
Führt SQL als bestimmte Postgres-Rolle mit JWT-Ansprüchen aus und führt dann einen Rollback durch. Ändert niemals Daten.
Eingaben:
connection_string(erforderlich) – z. B."postgresql://postgres:postgres@localhost:54322/postgres"sql(erforderlich) – die auszuführende Abfragerole– Postgres-Rolle (Standard:"authenticated")user_id– UUID, die alsauth.uid()gesetzt wirdclaims– zusätzliche JWT-Ansprüche, z. B.{ "app_role": "parent" }
Beispiel-Prompt für Claude Code:
„Führen Sie
SELECT * FROM childrenals authentifizierter Eltern-Benutzer mit der IDabc-123aus und bestätigen Sie, dass sie nur ihre eigenen Kinder sehen können."
Was Sie zurückbekommen:
{
"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-Prüfer
Führt tsc --noEmit aus und parst die Ausgabe in strukturierte Fehler.
Eingaben:
project_dir(erforderlich)tsconfig– relativer Pfad zu tsconfig (Standard:"tsconfig.json")files– nur bestimmte Dateien prüfen
Was Sie zurückbekommen:
{
"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 – Strukturierter npm-Skript-Ausführer
Führt beliebige npm-Skripte mit CI=true und FORCE_COLOR=0 aus und parst dann Vitest/Jest-Ausgabe.
Eingaben:
project_dir(erforderlich)script(erforderlich) – z. B."test","test:unit","lint"args– zusätzliche Argumente, die nach--übergeben werdenenv– zusätzliche Umgebungsvariablen
Was Sie zurückbekommen:
{
"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-Build-Validator
Führt next build im Produktionsmodus aus und parst Fehler und Seitenausgabe.
Eingaben:
project_dir(erforderlich)env– zusätzliche Umgebungsvariablen für den Buildtimeout_seconds– (Standard: 180)
Was Sie zurückbekommen:
{
"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
}Entwicklung
# Watch mode
npm run watch
# Run the unit tests (Vitest)
npm test
# Test interactively with the MCP Inspector
npm run inspectTests
Die Ausgabeparser sind der kniffligste und fehleranfälligste Teil des Codes – sie wandeln freie Vitest/Jest/tsc/next build-Konsolenausgabe in strukturiertes JSON um. Diese reinen Funktionen werden mit Vitest unter test/ unit-getestet; führen Sie sie mit npm test aus. CI (siehe .github/workflows/ci.yml) führt npm ci, den TypeScript-Build und die Testsuite auf Node 20 und 22 für jeden Push und Pull Request aus.
Anpassungsideen
Ein
lint-Tool hinzufügen, das ESLint-JSON-Ausgabe parstEin
prisma_migrate-Tool für strukturierten Migrationsstatus hinzufügenEin
docker_compose-Tool zur Verwaltung von Testcontainern hinzufügenDas RLS-Tool an die Supabase-CLI anbinden (
supabase db test) statt an rohes psql
Lizenz
MIT © 2026 Brian Cox
This server cannot be installed
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 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.
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/briancox730/dev-tools-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server