sqlai.dev SQL Verifier

Executes SQL in a real ephemeral database: rows, typed errors with suggestions, plans, diffs.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
100%
이름 품질
92%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~1,218토큰 (도구 정의)
~1.8 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 0.95%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "sqlai-dev-sql-verifier": {
      "url": "https://mcp.sqlai.dev/mcp"
    }
  }
}

원격 엔드포인트

https://mcp.sqlai.dev/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (5)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢run_sql(schema, query, seed, engine)

Execute a SQL query against a fresh ephemeral in-memory database built from your schema (and optional seed rows). Returns real rows (max 500, truncation flagged), column names+types, row_count, and dialect notes. Errors come back as structured JSON with type/position/suggestion — a failed query is a useful answer, not a failure of this tool. Example: schema "CREATE TABLE t(id INTEGER, name TEXT);", query "SELECT name FROM t WHERE id=1", seed {"t":[{"id":1,"name":"ada"}]} → rows [["ada"]].

입력 스키마

{
  "type": "object",
  "properties": {
    "schema": {
      "type": "string",
      "description": "DDL statements (CREATE TABLE ...; multiple statements allowed)."
    },
    "query": {
      "type": "string",
      "description": "ONE SQL statement to execute. Stacked statements are rejected."
    },
    "seed": {
      "type": "object",
      "additionalProperties": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": {}
        }
      },
      "description": "Optional seed rows: {\"table_name\": [{\"col\": value, ...}, ...]}. Max 10MB total."
    },
    "engine": {
      "type": "string",
      "enum": [
        "sqlite",
        "duckdb"
      ],
      "description": "Engine. Server-side supports 'sqlite' (default). 'duckdb' runs in the browser demo at sqlai.dev only."
    }
  },
  "required": [
    "schema",
    "query"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢validate_sql(schema, query, engine)

Validate a SQL query against a schema WITHOUT executing it (parse + name/type binding via EXPLAIN). Returns ok with referenced tables, or a structured error: {type: unknown_column|unknown_table|syntax|..., message, position, suggestion}. The suggestion is rule-based (edit distance against your schema). Example: query "SELECT nmae FROM users" → error type unknown_column, suggestion 'did you mean "name"?'.

입력 스키마

{
  "type": "object",
  "properties": {
    "schema": {
      "type": "string",
      "description": "DDL statements."
    },
    "query": {
      "type": "string",
      "description": "ONE SQL statement to validate."
    },
    "engine": {
      "type": "string",
      "enum": [
        "sqlite",
        "duckdb"
      ],
      "description": "Engine. Server-side supports 'sqlite' (default). 'duckdb' runs in the browser demo at sqlai.dev only."
    }
  },
  "required": [
    "schema",
    "query"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢explain_plan(schema, query, engine)

Return the engine-native query plan for a query (SQLite: EXPLAIN QUERY PLAN) plus full-table-scan warnings. Use it to check whether an index would be used before recommending one. Example: "SELECT * FROM orders WHERE status=?" on an unindexed column → plan ["SCAN orders"], warning about the full scan.

입력 스키마

{
  "type": "object",
  "properties": {
    "schema": {
      "type": "string",
      "description": "DDL statements (include your indexes!)."
    },
    "query": {
      "type": "string",
      "description": "ONE SQL statement to explain."
    },
    "engine": {
      "type": "string",
      "enum": [
        "sqlite",
        "duckdb"
      ],
      "description": "Engine. Server-side supports 'sqlite' (default). 'duckdb' runs in the browser demo at sqlai.dev only."
    }
  },
  "required": [
    "schema",
    "query"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢run_sql_batch(schema, queries, seed, engine)

Run up to 10 queries against the same schema+seed. Each query executes in its OWN fresh database — writes in one query are NOT visible to the next (use this for testing variants, not for multi-statement transactions). Returns an array of run_sql results in order.

입력 스키마

{
  "type": "object",
  "properties": {
    "schema": {
      "type": "string",
      "description": "DDL statements."
    },
    "queries": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 10,
      "description": "Up to 10 statements, one per entry."
    },
    "seed": {
      "type": "object",
      "additionalProperties": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": {}
        }
      },
      "description": "Optional seed rows: {\"table_name\": [{\"col\": value, ...}, ...]}. Max 10MB total."
    },
    "engine": {
      "type": "string",
      "enum": [
        "sqlite",
        "duckdb"
      ],
      "description": "Engine. Server-side supports 'sqlite' (default). 'duckdb' runs in the browser demo at sqlai.dev only."
    }
  },
  "required": [
    "schema",
    "queries"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢diff_results(schema, seed, query_a, query_b, engine)

Answer "do these two queries return the same thing?" — the self-check for query refactors. Executes query_a and query_b against identical fresh databases and compares result multisets (order-insensitive; order divergence reported separately when ORDER BY is present). Returns equal:boolean, row counts, and capped row-level diffs (only_in_a / only_in_b).

입력 스키마

{
  "type": "object",
  "properties": {
    "schema": {
      "type": "string",
      "description": "DDL statements."
    },
    "seed": {
      "type": "object",
      "additionalProperties": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": {}
        }
      },
      "description": "Optional seed rows: {\"table_name\": [{\"col\": value, ...}, ...]}. Max 10MB total."
    },
    "query_a": {
      "type": "string",
      "description": "Original query."
    },
    "query_b": {
      "type": "string",
      "description": "Refactored/alternative query."
    },
    "engine": {
      "type": "string",
      "enum": [
        "sqlite",
        "duckdb"
      ],
      "description": "Engine. Server-side supports 'sqlite' (default). 'duckdb' runs in the browser demo at sqlai.dev only."
    }
  },
  "required": [
    "schema",
    "query_a",
    "query_b"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 5개
검증됨버전이 기록되지 않음도구 5개