Skip to main content
Glama
VAIBHAV7500

sqlpad-mcp

by VAIBHAV7500

SQLPad MCP Server

npm version License: MIT node

一个用于 SQLPad 的 MCP 服务器。将 AI 代理指向带有基础 URL 和服务令牌的 SQLPad 实例,代理即可发现连接、检查模式、运行 SQL 并管理已保存的查询。

要求

  • Node.js 20 或更高版本。

  • 一个可访问的 SQLPad 实例。

  • SQLPad 服务器必须配置 SQLPAD_SERVICE_TOKEN_SECRET。否则,每个 Bearer 认证请求都会返回 401 Unauthorized。

  • 在 SQLPad 管理界面中生成的服务令牌。

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 标志优先于相应的环境变量。批处理轮询间隔(250 毫秒)是内部的,不可配置。

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 被所有用户读取。

要启用受控工具组,请将 "SQLPAD_ALLOW_WRITES": "true" 或 "SQLPAD_ALLOW_ADMIN": "true" 添加到同一个 env 块中。

工具

始终注册十二个工具。另外六个工具受两个 SQLPAD_ALLOW_* 标志控制,默认关闭。

执行

工具

描述

run_sql

通过创建异步 SQLPad 批处理、轮询至完成并内联返回行来执行任意 SQL,包括 DDL 和 DML。不受沙箱保护。行数受 maxRows 限制,截断会明确报告。超时时返回 batchId,以便恢复执行而不是重新运行。当原因可识别时(例如需要 schema. 限定的表名),失败的语句会带有 error.hint。

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 执行任意 SQL,包括 DDL 和 DML,且不受沙箱保护。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
    -