
SQL MCP Server (TypeScript)

2025.04.07
0
TypeScript数据库查询服务PostgreSQL 接口数据库
SQL MCP Server 是一个基于 TypeScript 实现的 Model Context Protocol (MCP) 服务器,旨在为语言模型和其他 MCP 兼容客户端提供查询 PostgreSQL 数据库的能力。该服务器支持通过 SSH 堡垒隧道安全访问私有 RDS 实例,采用 stdin/stdout 通信协议,适用于本地、容器化或 AI 驱动的使用场景。
View on GitHub
Overview
基本能力
产品定位
SQL MCP Server 是一个数据库查询服务,专注于为 AI 和开发工具提供安全、灵活的 PostgreSQL 数据库访问能力。
核心功能
- SSH 堡垒支持:通过 SSH 隧道安全访问私有 RDS 实例
- PostgreSQL 查询引擎:使用
pg
库实现只读查询 - STDIO 通信协议:基于标准输入输出的 MCP 协议传输
- 兼容性:与 memory-bank-mcp-server 等 MCP 兼容系统协同工作
- 灵活配置:支持通过
.env
文件或环境变量配置 - 测试支持:提供 Jest 测试框架和模拟功能
适用场景
- AI 系统需要查询数据库的场景
- 开发工具需要安全访问远程数据库的环境
- 需要与 PostgreSQL 数据库交互的 MCP 兼容系统
工具列表
- query:执行 SQL 查询的工具
- 能力:接收 SQL 语句并返回查询结果
- 示例:
SELECT * FROM users LIMIT 10
常见问题解答
- 兼容性问题:已测试与 memory-bank-mcp-server、Claude Desktop、Cursor IDE 和 Supabase 兼容
- 配置问题:可通过
.env
文件或环境变量灵活配置连接参数 - 安全问题:支持通过 SSH 隧道安全访问私有数据库实例
使用教程
使用依赖
- 确保已安装 Node.js 和 npm
- 确保已安装 Git
安装教程
git clone https://github.com/your-org/sql-mcp-server.git
cd sql-mcp-server
npm install
npm run build
配置环境变量
创建 .env
文件并配置以下参数:
DB_USER=postgres
DB_PASS=yourpassword
DB_HOST=localhost
DB_PORT=5432
DB_NAME=mydatabase
USE_SSH_TUNNEL=true
SSH_BASTION_HOST=bastion.example.com
SSH_BASTION_USER=ec2-user
SSH_PRIVATE_KEY_PATH=~/.ssh/id_rsa
运行服务器
npx -y @modelcontextprotocol/server-postgres postgresql://<user>:<pass>@localhost:5433/<dbname>
直接连接(无 SSH 隧道)
DB_HOST=rds-host.amazonaws.com DB_PORT=5432 npx -y @modelcontextprotocol/server-postgres postgresql://<user>:<pass>@rds-host.amazonaws.com/<dbname>
调试方式
- 检查环境变量是否正确设置
- 验证 SSH 隧道是否建立成功
- 使用测试 SQL 查询验证服务是否正常运行
{
"type": "call_tool",
"params": {
"name": "query",
"arguments": {
"sql": "SELECT * FROM users LIMIT 10"
}
}
}
预期输出:
{
"content": [
{
"type": "text",
"text": "[{\"id\":1,\"name\":\"Alice\"}]"
}
],
"isError": false
}