该项目提供了一种基于 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/
pg
库的 PostgreSQL 只读查询引擎.env
文件或环境变量轻松配置{
"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),并已与以下内容兼容: