数据库MCP服务器
一个基于头部配置的、用于PostgreSQL和MySQL的安全MCP服务器。
快速入门
npm install
npm run dev服务器运行于 http://localhost:3000
配置
所有配置均通过MCP初始化时的HTTP头进行设置:
所需请求头
x-cfg-db-type: pg or mysql
x-cfg-db-host: localhost
x-cfg-db-port: 5432 or 3306
x-cfg-db-user: your_username
x-cfg-db-password: your_password
x-cfg-db-names: database1,database2可选头(或:可选头部)
x-cfg-db-schemas: public,other (PostgreSQL only, default: public)
x-cfg-db-ssl: true or false (default: false)
x-cfg-db-readonly: true or false (default: false)
x-cfg-db-pool: 1-20 (default: 1)
x-cfg-allow-raw-query: true or false (DANGEROUS - default: false)
x-cfg-session-timeout: milliseconds (default: 300000 = 5min)
x-cfg-tools-allowlist: tool1,tool2 (optional)MCP客户端配置
创建 .cursor/mcp.json 或者 .vscode/mcp.json:
{
"servers": {
"database": {
"url": "http://localhost:3000/mcp",
"type": "http",
"headers": {
"x-cfg-db-type": "mysql",
"x-cfg-db-host": "localhost",
"x-cfg-db-port": "3306",
"x-cfg-db-user": "root",
"x-cfg-db-password": "password",
"x-cfg-db-names": "mydb,testdb",
"x-cfg-db-readonly": "false",
"x-cfg-db-pool": "5"
}
}
}
}可用工具
查询工具
查询选择 - 执行SELECT查询
{
"database": "mydb",
"table": "users",
"columns": ["id", "name", "email"],
"where": [
{"column": "status", "op": "=", "value": "active"}
],
"limit": 10
}查询插入 - 插入单行
{
"database": "mydb",
"table": "users",
"data": {"name": "John", "email": "john@example.com"}
}查询更新 - 更新单行数据(需要指定WHERE条件)
{
"database": "mydb",
"table": "users",
"data": {"status": "inactive"},
"where": [{"column": "id", "op": "=", "value": 123}]
}查询删除 - 删除单行(需要WHERE条件)
{
"database": "mydb",
"table": "users",
"where": [{"column": "id", "op": "=", "value": 123}]
}query_raw ⚠️ 危险 - 执行原始SQL查询(必须显式启用)
{
"database": "mydb",
"query": "SELECT * FROM users WHERE status = ? AND age > ?",
"params": ["active", 18]
}警告这个工具绕过了所有的查询验证和安全防护。仅通过(特定方式)启用它 x-cfg-allow-raw-query: true 在受信任的环境中使用。切勿暴露给不受信任的用户。元数据工具
获取数据库 - 列出允许的数据库
获取表格 - 列出数据库中的表
{
"database": "mydb",
"schema": "public"
}获取表结构 - 显示包含外键的表结构
{
"database": "mydb",
"table": "users"
}获取序列 - 列出序列(PG)或 AUTO_INCREMENT(MySQL)
获取自定义类型 - 列出自定义类型(仅限 PostgreSQL)
功能工具
获取函数 - 列出函数和过程
获取函数源代码 - 查看函数/过程代码
{
"database": "mydb",
"name": "calculate_total"
}执行函数 - 执行函数或过程
{
"database": "mydb",
"name": "my_function",
"params": [100, "value"]
}查询操作符
=, !=, `, >=, in, not in, like, ilike, between, is, is not`
安全
- ✅ 默认不使用原始SQL(使用Knex查询构建器)
- ✅ 除非明确启用,否则阻止原始SQL查询
- ✅ UPDATE/DELETE 需要 WHERE 条件
- ✅ 仅限单行突变
- ✅ 数据库/模式允许列表
- ✅ 提供只读模式
- ✅ 会话级连接池
- ✅ 自动超时清理
- ⚠️ 可选的原始查询工具(默认禁用以保障安全)
健康检查
curl http://localhost:3000/health脚本
npm start # Run with ts-node
npm run dev # Development with nodemon
npm run build # Build to dist/
npm run serve # Run built version许可证
ISC(注:ISC是一个缩写,具体含义需根据上下文确定,此处仅为音译)
