
PostgreSQL

2025.04.12
0
JavaScript数据库中间件PostgreSQL 访问数据库
mcp-server-postgres 是一个基于 Model Context Protocol 的服务,提供对 PostgreSQL 数据库的只读访问能力。该服务允许 LLMs(大型语言模型)检查数据库模式并执行只读查询。
View on GitHub
Overview
基本能力
产品定位
mcp-server-postgres 是一个数据库访问中间件,专注于为 LLMs 提供安全、只读的 PostgreSQL 数据库访问能力。
核心功能
- 只读查询:通过
query
工具执行只读 SQL 查询 - 模式发现:自动发现并暴露数据库表结构信息
- 事务隔离:所有查询都在 READ ONLY 事务中执行
适用场景
- LLMs 需要访问数据库信息进行数据分析
- 需要安全地暴露数据库结构给 AI 系统
- 开发基于数据库信息的 AI 应用
工具列表
- query 工具
- 能力:执行只读 SQL 查询
- 输入参数:
sql
(字符串类型的 SQL 查询) -
限制:所有查询都在 READ ONLY 事务中执行
-
表模式资源
- 提供格式:
postgres://<host>/<table>/schema
- 内容:包含列名和数据类型的 JSON 模式信息
- 特点:自动从数据库元数据中发现
常见问题
- 在 macOS 上使用 Docker 时,如果服务运行在主机网络上,需要使用
host.docker.internal
代替localhost
- 用户名和密码可以通过 URL 传递:
postgresql://user:password@host:port/db-name
使用教程
使用依赖
- 确保已安装 Docker 或 Node.js (用于 NPX 方式)
- 需要有可访问的 PostgreSQL 数据库实例
安装教程
Docker 方式
docker build -t mcp/postgres -f src/postgres/Dockerfile .
NPX 方式
无需安装,直接通过 npx 运行
调试方式
- 检查 Docker 容器是否正常运行
- 验证数据库连接字符串是否正确
- 测试简单查询是否返回预期结果
配置示例
Docker 配置
{
"mcpServers": {
"postgres": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"mcp/postgres",
"postgresql://host.docker.internal:5432/mydb"]
}
}
}
NPX 配置
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"postgresql://localhost/mydb"
]
}
}
}