Token导航 LogoToken导航TokenDH.com
MCP Safesql logo
AI代理stdio官方级别未说明来源级核验

MCP Safesql

MCP Server

tsx

一个最小化的MCP服务器,提供安全的只读SQL查询工具,并带有基本的PII屏蔽功能,适用于将LLM连接到数据库而不授予完整SQL访问权限的场景。

工具数

2

提示词数

0

GitHub Stars

0

资源数

0
数据库连接TypeScriptAI代理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

lakshjethani

提供方

lakshjethani

最后核验

2026/5/17 20:21

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx tsx src/server.ts

详细介绍

mcp安全sql

暴露的最小MCP服务器 安全的只读SQL 具有基本PII掩码的工具。

它旨在作为将LLM连接到数据库的起点,而不授予其完全的SQL访问权限。

它做什么

  • 跑动 只读 SELECT 查询 只有。
  • 限制访问 视图白名单 (没有直接访问表)。
  • 应用简单 PII屏蔽 到常见字段(电子邮件、电话、SSN等)。
  • 限制返回的行数。
  • 提供基本的、, 已编辑的查询计划 教学/调试工具(sql.explain_safe).

服务器公开了两个MCP工具:

  • sql.query –运行一个保险箱 SELECT 与白名单视图进行对比。
  • sql.explain_safe –为查询返回一个通用的、经过编辑的运算符大纲。

需求

  • Node.js 18+(推荐)。
  • 什么之中的一个:

- SQLite数据库文件。 - 服务器可以连接到的PostgreSQL数据库。

安装

git clone 
cd mcp-safesql
npm install

运行服务器

这个项目是用TypeScript编写的,使用 tsx 直接从 src/.

SQLite(默认)

默认情况下,服务器需要SQLite数据库:

  • DB_TYPE=sqlite (默认)
  • SQLITE_PATH=./example.db (默认路径,根据需要更改)
  • SAFE_VIEWS=safe_users_v (以逗号分隔的允许视图列表)
  • MAX_ROWS=200 (行帽;可选)

例子:

export DB_TYPE=sqlite
export SQLITE_PATH=/path/to/your.db
export SAFE_VIEWS="safe_users_v,report_active_users_v"

npx tsx src/server.ts

确保中列出的视图 SAFE_VIEWS 存在于您的数据库中。只能查询这些视图。

PostgreSQL

要改用PostgreSQL:

  • DB_TYPE=postgres
  • PG_CONNECTION_STRING=postgres://user:pass@host:5432/dbname
  • SAFE_VIEWS –逗号分隔的允许视图列表(如果需要,可以进行模式限定,例如。 public.safe_users_v)
  • MAX_ROWS –可选行上限(默认值 200)

例子:

export DB_TYPE=postgres
export PG_CONNECTION_STRING="postgres://user:pass@localhost:5432/mydb"
export SAFE_VIEWS="public.safe_users_v,public.safe_orders_v"

npx tsx src/server.ts

环境配置

服务器读取这些环境变量:

变量默认值描述
DB_TYPEsqlitesqlitepostgres.
SQLITE_PATH./example.dbSQLite数据库文件的路径。
PG_CONNECTION_STRING_空_PostgreSQL连接字符串(如果 DB_TYPE=postgres).
SAFE_VIEWSsafe_users_v以逗号分隔的白名单视图列表。
MAX_ROWS200任何查询返回的最大行数。

MCP工具

sql.query

  • 说明: 运行只读模式 SELECT 在白名单视图上;掩盖个人身份信息;大写行。
  • 输入架构:
  {
    "sql": "SELECT * FROM safe_users_v"
  }
  • 行为:

- 拒绝任何不是单一的东西 SELECT 声明。 - 拒绝引用不在中的表/视图的查询 SAFE_VIEWS. - 将查询包裹在子选择中并应用 LIMIT 如果不存在。 - 屏蔽看起来像电子邮件/电话/SSN或来自可疑名称列的值。

sql.explain_safe

  • 说明: 显示编辑后的查询计划(通用运算符树+粗略估计),但不显示表/索引名称。
  • 输入架构:
  {
    "sql": "SELECT * FROM safe_users_v WHERE email LIKE '%@example.com'"
  }
  • 行为:

- 应用相同 SELECT-仅限白名单检查 sql.query. - 返回一个简单的运算符文本树(例如,Select→ 扫描)适用于教学或快速检查。

与MCP客户端一起使用

确切的配置取决于您的MCP感知客户端。一般来说,您将:

  1. 确保已设置上述环境变量。
  1. 配置您的客户端,使用以下命令启动服务器:
   npx tsx src/server.ts
  1. 以该名称注册服务器 mcp-safesql 在客户的MCP配置中。

有关精确的配置文件格式和放置位置,请参阅MCP客户端的文档。

发展

  • 主要入口: src/server.ts
  • TypeScript配置: tsconfig.json

如果你愿意,你也可以编译成JavaScript:

npx tsc
node dist/server.js

此仓库有意最小化,旨在作为一个安全的起点,您可以根据自己的模式和策略进行调整。

目录标签

目录标签

数据库连接TypeScriptAI代理安全查询本地部署只读SQLPII屏蔽LLM集成

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

tsx

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP