Skip to main content
Glama

dev-tools-mcp

CI License: MIT

Claude Code — または任意のMCPクライアント — に5つの構造化された開発ツールを提供する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ツール用: psql がPATHにあり、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.jsonmcpServers キーにこれを追加します:

{
  "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 — フィルタするグロブまたはファイルパス(例: "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