探索如何安全地通过 MCP 访问 PostgreSQL 数据库,实现只读查询与数据保护。核心内容:项目概述、核心功能、配置使用方法(Docker 和 NPX 两种方式)。

项目简介
提供对 PostgreSQL 数据库的只读访问功能。这套方案允许大型语言模型(LLM)检查数据库的模式结构,并执行只读查询操作,确保数据在交互过程中不会被意外修改或破坏。
核心功能
- 提供对 PostgreSQL 数据库的只读访问
- 允许 LLM 查看数据库架构并执行只读查询
- 确保数据安全性(仅支持读操作)
配置使用方法
配置方式不止一种,这里给出两种主流的选择:Docker 方式和 NPX 方式。你可以根据实际环境灵活选用。
Docker 方式
{
"mcpServers": {
"postgres": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"mcp/postgres",
"postgresql://host.docker.internal:5432/mydb"
]
}
}
}
特别说明
- 在 MacOS 上运行 Docker 时,如果服务器在主机网络上运行,请使用
host.docker.internal。 - 可以在 PostgreSQL URL 中添加用户名和密码,格式为
postgresql://user:password@host:port/db-name。
NPX 方式
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"postgresql://localhost/mydb"
]
}
}
}
构建说明
如果需要自行构建 Docker 镜像,可以使用以下命令:
docker build -t mcp/postgres -f src/postgres/Dockerfile .
