modelscope·@crystaldba/postgres-mcp
Postgres Pro 是一个开源的模型上下文协议(MCP)服务器,旨在支持你和你的人工智能代理在整个开发过程中——从最初的编码,到测试和部署,再到生产调优和维护。
Postgres MCP Pro 是一个开源的模型上下文协议(MCP)服务器,旨在支持您和您的AI代理在整个开发过程中——从初始编码、测试和部署,到生产调优和维护。
Postgres MCP Pro 不仅仅是封装了一个数据库连接。
功能包括:
Postgres MCP Pro 支持 标准输入/输出 (stdio) 和 服务器发送事件 (SSE) 传输方式,以适应不同的环境。
有关我们为什么构建Postgres MCP Pro的更多背景,请参阅 我们的发布博客文章。
从不可用到闪电般快速
我们做了什么:
请观看下方视频或阅读 逐个步骤。
在开始之前,请确保您具备以下条件:
您可以使用 psql 或图形用户界面工具(例如 pgAdmin)来确认您的访问凭证是否有效。
选择使用 Docker 还是 Python 取决于您自己。 我们通常推荐使用 Docker,因为使用 Python 的用户可能会遇到更多与环境相关的问题。 然而,通常来说,使用您最熟悉的方法会更有意义。
请选择以下方法之一来安装 Postgres MCP Pro:
拉取 Postgres MCP Pro MCP 服务器的 Docker 镜像。 该镜像包含了所有必要的依赖项,提供了一种在各种环境中可靠运行 Postgres MCP Pro 的方式。
docker pull crystaldba/postgres-mcp
如果您已经安装了 pipx,可以使用以下命令安装 Postgres MCP Pro:
pipx install postgres-mcp
否则,可以使用 uv 来安装 Postgres MCP Pro:
uv pip install postgres-mcp
如果您需要安装 uv,请参阅 uv 安装说明。
我们提供了配置 Claude Desktop 与 Postgres MCP Pro 的完整说明。 许多 MCP 客户端具有类似的配置文件,您可以根据所选客户端调整这些步骤。
您需要编辑 Claude Desktop 的配置文件以添加 Postgres MCP Pro。 该文件的位置取决于您的操作系统:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%/Claude/claude_desktop_config.json您也可以通过 Claude Desktop 中的 Settings 菜单项找到配置文件。
接下来,您将编辑配置文件中的 mcpServers 部分。
{
"mcpServers": {
"postgres": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"DATABASE_URI",
"crystaldba/postgres-mcp",
"--access-mode=unrestricted"
],
"env": {
"DATABASE_URI": "postgresql://username:password@localhost:5432/dbname"
}
}
}
}
Postgres MCP Pro Docker 镜像会自动将主机名 localhost 映射为容器内部可用的形式。
host.docker.internal172.17.0.1 或适当的主机地址pipx{
"mcpServers": {
"postgres": {
"command": "postgres-mcp",
"args": [
"--access-mode=unrestricted"
],
"env": {
"DATABASE_URI": "postgresql://username:password@localhost:5432/dbname"
}
}
}
}
uv{
"mcpServers": {
"postgres": {
"command": "uv",
"args": [
"run",
"postgres-mcp",
"--access-mode=unrestricted"
],
"env": {
"DATABASE_URI": "postgresql://username:password@localhost:5432/dbname"
}
}
}
}
将 postgresql://... 替换为您自己的 Postgres 数据库连接 URI。
Postgres MCP Pro 支持多种 访问模式,以便您可以控制 AI 代理对数据库执行的操作:
要使用受限模式,请将上述配置示例中的 --access-mode=unrestricted 替换为 --access-mode=restricted。
许多 MCP 客户端的配置文件与 Claude Desktop 类似,您可以根据需要调整上面的示例以适应您选择的客户端。
命令面板 导航到 Cursor 设置,然后打开 MCP 选项卡来访问配置文件。命令面板 导航到 打开 Windsurf 设置页面 来访问配置文件。goose configure,然后选择 添加扩展。Postgres MCP Pro 支持 SSE 传输,这允许多个 MCP 客户端共享一个服务器,可能是远程服务器。要使用 SSE 传输,您需要使用 --transport=sse 选项启动服务器。
例如,使用 Docker 运行:
docker run -p 8000:8000 \
-e DATABASE_URI=postgresql://username:password@localhost:5432/dbname \
crystaldba/postgres-mcp --access-mode=unrestricted --transport=sse
然后更新您的 MCP 客户端配置以调用 MCP 服务器。例如,在 Cursor 的 mcp.json 或 Cline 的 cline_mcp_settings.json 中,您可以这样设置:
{
"mcpServers": {
"postgres": {
"type": "sse",
"url": "http://localhost:8000/sse"
}
}
}
对于 Windsurf,mcp_config.json 中的格式略有不同:
{
"mcpServers": {
"postgres": {
"type": "sse",
"serverUrl": "http://localhost:8000/sse"
}
}
}
为了启用索引调优和全面的性能分析,您需要在数据库上加载 pg_statements 和 hypopg 扩展。
pg_statements 扩展允许 Postgres MC…审计 npm 包依赖项以查找安全漏洞,提供详细的报告和修复建议,并集成 MCP。
通过API层将克劳德桌面版直接连接到数据库,使其能够探索数据库结构、编写SQL查询、分析数据集和创建报告。该API层还包含用于表探索和查询执行的工具。
DBCode 是一个 Visual Studio Code 扩展,允许你管理许多数据库,包括 PostgreSQL、MySQL、SQL Server、DuckDB、Redis、MongoDB 等更多数据库。 DBCode 提供了运行 MCP 服务器的选项,可以访问这些数据库、它们的模式以及执行查询的能力。
AI 首选的统一数据访问通道,支持30多种数据源(阿里云全系/主流数据库/数仓)的安全访问。
后端服务,实现了模型控制面板协议,可连接到 Apache Doris 数据库,允许用户执行 SQL 查询、管理元数据,并且有可能利用大语言模型(LLMs)完成自然语言到 SQL 的转换等任务。
提供对Excel文件的操纵功能。此服务器启用工作簿创建、数据操纵、格式设置和高级Excel功能。