SQL MCP Server (TypeScript)

SQL MCP Server (TypeScript)

site icon
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 测试框架和模拟功能

适用场景

  1. AI 系统需要查询数据库的场景
  2. 开发工具需要安全访问远程数据库的环境
  3. 需要与 PostgreSQL 数据库交互的 MCP 兼容系统

工具列表

  1. query:执行 SQL 查询的工具
  2. 能力:接收 SQL 语句并返回查询结果
  3. 示例:SELECT * FROM users LIMIT 10

常见问题解答

  1. 兼容性问题:已测试与 memory-bank-mcp-server、Claude Desktop、Cursor IDE 和 Supabase 兼容
  2. 配置问题:可通过 .env 文件或环境变量灵活配置连接参数
  3. 安全问题:支持通过 SSH 隧道安全访问私有数据库实例

使用教程

使用依赖

  1. 确保已安装 Node.js 和 npm
  2. 确保已安装 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>

调试方式

  1. 检查环境变量是否正确设置
  2. 验证 SSH 隧道是否建立成功
  3. 使用测试 SQL 查询验证服务是否正常运行
{
  "type": "call_tool",
  "params": {
    "name": "query",
    "arguments": {
      "sql": "SELECT * FROM users LIMIT 10"
    }
  }
}

预期输出:

{
  "content": [
    {
      "type": "text",
      "text": "[{\"id\":1,\"name\":\"Alice\"}]"
    }
  ],
  "isError": false
}

许可证

该项目遵循 MIT 开源许可条款。