Skip to main content
Glama
VAIBHAV7500

sqlpad-mcp

by VAIBHAV7500

SQLPad MCP Server

npm version License: MIT node

SQLPad용 MCP 서버입니다. AI 에이전트를 SQLPad 인스턴스에 기본 URL과 서비스 토큰으로 연결하면, 에이전트가 연결을 검색하고, 스키마를 검사하고, SQL을 실행하고, 저장된 쿼리를 관리할 수 있습니다.

요구 사항

  • Node.js 20 이상.

  • 접근 가능한 SQLPad 인스턴스.

  • SQLPad 서버에 SQLPAD_SERVICE_TOKEN_SECRET이 구성되어 있어야 합니다. 없으면 모든 Bearer 인증 요청이 401 Unauthorized를 반환합니다.

  • SQLPad 관리자 GUI에서 생성된 서비스 토큰.

Related MCP server: SQLite Database MCP Server

빠른 시작

설치 단계가 필요 없습니다 — npm에서 바로 실행하세요:

SQLPAD_SERVICE_TOKEN=... npx sqlpad-mcp --base-url https://sqlpad.example.com

또는 전역으로 설치하세요:

npm install -g sqlpad-mcp

서버는 stdio를 통해 MCP를 사용하므로, 보통 MCP 클라이언트에 의해 실행되며 수동으로 실행되지 않습니다. 직접 실행하는 것은 자격 증명을 확인하는 데 여전히 유용합니다: 성공 시 감지된 SQLPad 버전을 stderr에 기록합니다.

구성

환경 변수

CLI 플래그

기본값

의미

SQLPAD_BASE_URL

--base-url

(필수)

SQLPad 인스턴스의 기본 URL; 하위 경로 마운트가 지원됩니다.

SQLPAD_SERVICE_TOKEN

--token

(필수)

서비스 토큰, Authorization: Bearer로 전송됩니다.

SQLPAD_ALLOW_WRITES

--allow-writes

false

저장된 쿼리 쓰기 도구를 등록합니다.

SQLPAD_ALLOW_ADMIN

--allow-admin

false

관리자 전용 도구를 등록합니다.

SQLPAD_MAX_ROWS

--max-rows

500

문당 반환되는 행 수의 상한.

SQLPAD_TIMEOUT_MS

--timeout-ms

60000

재개 가능한 batchId를 반환하기 전에 배치를 폴링하는 시간.

CLI 플래그가 해당 환경 변수보다 우선합니다. 배치 폴링 간격(250ms)은 내부적이며 구성할 수 없습니다.

Claude Code 구성

Claude Code mcp.json에 서버를 추가하세요:

{
  "mcpServers": {
    "sqlpad": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "sqlpad-mcp",
        "--base-url",
        "https://sqlpad.example.com"
      ],
      "env": {
        "SQLPAD_SERVICE_TOKEN": "..."
      }
    }
  }
}

env를 통해 토큰을 제공하면 프로세스 인자 목록에서 토큰이 제외되며, 이 목록은 ps를 통해 모든 사용자가 읽을 수 있습니다.

게이트된 도구 그룹을 활성화하려면 동일한 env 블록에 "SQLPAD_ALLOW_WRITES": "true" 또는 "SQLPAD_ALLOW_ADMIN": "true"를 추가하세요.

도구

12개의 도구가 항상 등록됩니다. 6개는 두 SQLPAD_ALLOW_* 플래그 뒤에 게이트되어 기본적으로 꺼져 있습니다.

실행

도구

설명

run_sql

비동기 SQLPad 배치를 생성하고, 완료될 때까지 폴링하고, 행을 인라인으로 반환하여 DDL 및 DML을 포함한 임의의 SQL을 실행합니다. 샌드박스 처리되지 않습니다. 행은 maxRows로 제한되며 잘림은 명시적으로 보고됩니다. 시간 초과 시 batchId를 반환하여 실행을 다시 실행하는 대신 재개할 수 있습니다. 실패한 문은 원인을 인식할 수 있을 때 error.hint를 포함합니다(예: schema. 한정이 필요한 테이블 이름).

get_batch

배치와 현재 문 상태를 가져옵니다. run_sql이 시간 초과된 후 또는 배치가 아직 대기 중이거나 실행 중일 때 호출하세요.

get_statement_results

쿼리를 다시 실행하는 대신 큰 완료된 문 결과를 페이지 단위로 탐색합니다. 문의 열 이름을 사용하여 객체로 변환된 제한된 페이지를 반환합니다.

cancel_batch

비동기 배치의 취소를 요청합니다. SQLPad는 연결이 비동기 실행을 지원하지 않을 때 취소를 거부합니다.

검색

도구

설명

list_connections

서비스 토큰에 사용 가능한 연결을 나열합니다. get_connection과 달리 비관리자 토큰에서도 작동합니다.

get_connection_schema

연결에 대한 제한된 데이터베이스 스키마를 가져옵니다. 필터링되지 않은 전체 스키마 출력은 엄청날 수 있습니다 — schemaFilter 또는 tableFilter를 선호하고, 열 세부 정보가 필요하지 않으면 요약 모드를 사용하세요.

list_drivers

요청된 제한으로 제한된 SQLPad 데이터베이스 드라이버를 나열합니다.

저장된 쿼리

도구

설명

list_queries

선택적 연결, 텍스트, 태그, 소유권, 작성자 및 정렬 필터를 사용하여 저장된 쿼리를 나열합니다.

get_query

ID로 저장된 쿼리 하나를 가져옵니다.

list_tags

제한된 로컬 페이지네이션으로 고유한 저장된 쿼리 태그를 나열합니다.

list_query_history

호출 사용자의 쿼리 기록을 최신순으로 나열하며, 제한된 로컬 페이지네이션을 사용합니다.

format_sql

SQLPad를 사용하여 SQL 텍스트의 형식을 지정합니다. 이전 SQLPad 서버는 이 엔드포인트를 제공하지 않을 수 있습니다.

저장된 쿼리 쓰기 — SQLPAD_ALLOW_WRITES=true 필요

도구

설명

create_query

저장된 쿼리를 생성합니다.

update_query

기존 저장된 쿼리의 편집 가능한 필드를 교체합니다.

delete_query

저장된 쿼리를 영구적으로 삭제합니다.

관리자 — SQLPAD_ALLOW_ADMIN=true 필요

이들은 자체적으로 관리자 서비스 토큰이 필요한 SQLPad 엔드포인트를 호출합니다.

도구

설명

get_connection

ID로 연결 하나를 가져옵니다.

test_connection

저장하지 않고 연결 구성을 테스트합니다.

list_users

명시적 출력 제한으로 SQLPad 사용자를 나열합니다.

SQL 실행 방식

SQLPad는 비동기 배치를 통해 SQL을 실행합니다. 배치 생성은 즉시 반환됩니다. 각 문은 queued에서 started로 이동한 다음 finished 또는 error로 이동합니다. 결과는 각 문에 대해 별도로 가져오며 해당 문이 완료될 때까지 사용할 수 없습니다.

run_sql 도구는 전체 프로토콜(생성, 폴링, 가져오기, 행 반환)을 흡수하므로 에이전트는 한 번의 호출만 하면 됩니다. 폴링이 구성된 시간 초과에 도달하면 도구는 에이전트가 멈추는 대신 재개할 수 있는 batchId를 반환합니다.

연결에는 기본 데이터베이스가 없을 수 있습니다. 테이블 이름을 schema.table로 한정하고, get_connection_schema를 사용하여 사용 가능한 스키마를 검색하세요.

보안

  • run_sql은 DDL 및 DML을 포함한 임의의 SQL을 실행하며 샌드박스 처리되지 않습니다. SQLPAD_ALLOW_WRITES는 SQLPad 자체의 저장된 쿼리 객체의 변경만 게이트합니다. SQL 내용을 제한하지 않습니다. SQLPad 연결 자체에서 읽기 전용 데이터베이스 자격 증명을 사용하세요. 그것이 유일한 실제 강제 수단입니다.

  • SQLPad의 /api/service-tokens 엔드포인트는 의도적으로 노출되지 않습니다. 자격 증명을 발급하는 도구는 권한 상승 프리미티브입니다.

  • 관리자 도구는 기본적으로 꺼져 있습니다.

  • 서비스 토큰은 모든 오류와 로그에서 삭제됩니다. 모든 로깅은 stderr로 이동합니다. stdout은 JSON-RPC 채널이기 때문입니다.

  • 배치는 토큰 자체의 사용자로 범위가 지정되므로 서버는 자체 쿼리 기록만 볼 수 있습니다.

기여

저장소를 클론하고 종속성을 설치하세요:

git clone https://github.com/VAIBHAV7500/sqlpad-mcp.git
cd sqlpad-mcp
npm install
npm run build

변경 사항에 대한 브랜치를 만드세요. 풀 리퀘스트를 열기 전에 다음을 실행하세요:

npm run typecheck && npm run lint && npm test

CI는 Node 20 및 22에서 동일한 세 가지 명령을 실행합니다.

라이선스

MIT

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to query databases via natural language using the Model Context Protocol, with automatic schema discovery, SQL query execution, and read-only safety checks.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to connect to and query an SQLite database through the Model Context Protocol, allowing natural language interaction with database tables and data.
    -
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to search and read Metabase dashboards and cards, explore database schema, and run read-only query previews through the Model Context Protocol.
    17
    15 npm
    2
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to query, analyze, and manage SQL Server databases through natural language via the Model Context Protocol.
    6
    1
    -