SQL Tunnel

SQL Tunnel

🚀 SQL MCP 服务器(TypeScript)

该项目提供了一种基于 TypeScript 的模型上下文协议(MCP)服务器,支持语言模型和其他 MCP 兼容客户端通过 SSH 跳板隧道安全查询 PostgreSQL 数据库。它专为灵活且安全的数据库访问而设计,支持 AWS RDS 只读事务,采用基于 stdin/stdout 的通信方式,适用于本地、容器化或 AI 驱动等多种场景。

🚀 快速开始

克隆仓库并安装依赖项:

git clone https://github.com/your-org/sql-mcp-server.git
cd sql-mcp-server
npm install
npm run build

配置(可选 .env 文件)

在项目根目录中创建一个 .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 运行服务器:

npx -y @modelcontextprotocol/server-postgres postgresql://:@localhost:5433/

无需 SSH 隧道直接连接时,请设置适当的环境变量:

DB_HOST=rds-host.amazonaws.com DB_PORT=5432 npx -y @modelcontextprotocol/server-postgres postgresql://:@rds-host.amazonaws.com/

✨ 主要特性

  • 🔒 通过 SSH 跳板实现对私有 RDS 实例的安全访问
  • 🐘 使用 pg 库的 PostgreSQL 只读查询引擎
  • 📡 基于 STDIO 的 MCP 协议传输
  • 🧠 与 memory-bank-mcp-server 兼容
  • ⚙️ 通过 .env 文件或环境变量轻松配置
  • 🧪 使用 Jest 和模拟进行全面测试

💻 使用示例

基础用法

示例输入

{
"type": "call_tool",
"params": {
"name": "query",
"arguments": {
"sql": "SELECT * FROM users LIMIT 10"
}
}
}

示例输出

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

📚 详细文档

  • 架构
  • 领域模型
  • 术语表
  • 编码标准
  • 技术栈
  • 用户指南

📄 许可证

本项目采用 MIT 许可证。

贡献指南

我们欢迎社区贡献!请查看 CONTRIBUTING.md 以获取详细信息。

兼容性

此实现遵循模型上下文协议(MCP),并已与以下内容兼容:

  • memory-bank-mcp-server
  • Claude Desktop(通过 STDIO)
  • Cursor IDE
  • Supabase + MCP 集成
  • 0 关注
  • 0 收藏,10 浏览
  • system 提出于 2025-09-24 22:39

相似服务问题