简单的 PostgreSQL MCP 服务器

keyon008/simple-psql-mcp
0 Stars 26 次浏览 更新于 2026-08-23

这是一个用于构建MCP(模型上下文协议)服务器的模板项目,特别设计为简单且易于适应。它包括运行SQL查询的工具、访问数据库模式信息的资源以及生成一致LLM指令的提示。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

简单的 PostgreSQL MCP 服务器

这是一个模板项目,适用于那些希望构建自己的 MCP 服务器的人。我设计它的目的是使其易于理解和适应——代码非常直接,并附有 MCP 文档,以便您可以快速上手。

什么是 MCP?

TL;DR - 它是一种为 AI 编写插件的方法

模型上下文协议 (MCP) 是 LLM 与外部工具和数据交互的标准方式。简而言之:

  • 工具 允许 LLM 执行命令(如运行数据库查询)
  • 资源 是可以附加到对话中的数据(如将文件附加到提示中)
  • 提示 是生成一致 LLM 指令的模板

功能

这个 PostgreSQL MCP 服务器实现了以下功能:

  1. 工具

    • execute_query - 对您的数据库执行 SQL 查询
    • test_connection - 验证数据库连接是否正常工作
  2. 资源

    • db://tables - 架构中所有表的列表
    • db://tables/{table_name} - 特定表的架构信息
    • db://schema - 数据库中所有表的完整架构信息
  3. 提示

    • 查询生成模板
    • 分析查询构建器
    • 基于此仓库中的模板

前提条件

  • Python 3.8+
  • uv - 现代 Python 包管理器和安装程序
  • npx(包含在 Node.js 中)
  • 可以连接的 PostgreSQL 数据库

快速设置

  1. 创建虚拟环境并安装依赖项:

    # Create a virtual environment with uv
    uv venv
    
    # Activate the virtual environment
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
    # Install dependencies
    uv pip install -r requirements.txt
    
  2. 使用 MCP Inspector 运行服务器:

    # Replace with YOUR actual database credentials
    npx @modelcontextprotocol/inspector uv --directory . run postgres -e DSN=postgresql://username:password@hostname:port/database -e SCHEMA=public
    

    注意:如果您是第一次运行 npx,系统会提示您批准安装。输入 'y' 继续。

    运行此命令后,您将在浏览器中看到 MCP Inspector 界面启动。您应该会看到类似以下的消息:

    MCP Inspector is up and running at http://localhost:5173
    

    如果浏览器没有自动打开,请将 URL 复制并粘贴到浏览器中。您应该会看到类似以下的内容:
    MCP Inspector 界面

  3. 使用 Inspector:

    • 单击界面中的“连接”按钮(除非左下角控制台中有错误消息)
    • 探索“工具”、“资源”和“提示”选项卡以查看可用功能
    • 尝试单击列出的命令或键入资源名称以检索资源和提示
    • 该界面允许您测试查询并查看 MCP 服务器如何响应
  4. 查看官方文档

    官方服务器开发者指南: https://modelcontextprotocol.io/quickstart/server

    关于 Inspector 的更多信息: https://modelcontextprotocol.io/docs/tools/inspector

将您的 AI 工具连接到服务器

您可以通过创建 MCP 配置文件来配置您的 AI 助手的 MCP 服务器:


{

   "mcpServers": {

      "postgres": {

         "command": "/path/to/uv",

         "args": [

            "--directory",

            "/path/to/simple-psql-mcp",

            "run",

            "postgres"

         ],

         "env": {

            "DSN": "postgresql://username:password@localhost:5432/my-db",

            "SCHEMA": "public"

         }

      }

   }

}

或者,您可以使用包含的脚本来生成此配置文件:


# Make the script executable

chmod +x generate_mcp_config.sh



# Run the configuration generator

./generate_mcp_config.sh

当提示时,输入您的 PostgreSQL DSN 和架构名称。

如何使用它

现在,您可以用自然语言询问 LLM 关于您的数据的问题:

  • “我的数据库中有哪些表?”
  • “按创建日期显示前 5 名用户”
  • “按州统计地址数量”

对于测试,Claude Desktop 本机支持 MCP,并且开箱即用支持所有功能(工具、资源和提示)。

示例数据库(可选)

如果您还没有准备好数据库或遇到连接问题,可以使用包含的示例数据库:


# Make the script executable

chmod +x example-db/create-db.sh



# Run the database setup script

./example-db/create-db.sh

此脚本创建一个带有预填充样本用户和地址表的 PostgreSQL 数据库的 Docker 容器。运行后,您可以使用以下方式连接:


npx @modelcontextprotocol/inspector uv --directory . run postgres -e DSN=postgresql://postgres:postgres@localhost:5432/user_database -e SCHEMA=public

后续步骤

要扩展此项目并添加您自己的 MCP 服务器:

  1. /src 下创建一个新目录(例如 /src/my-new-mcp
  2. 按照 PostgreSQL 示例实现您的 MCP 服务器
  3. 将您的新 MCP 添加到 pyproject.toml 中:

[project.scripts]

postgres = "src.postgres:main"

my-new-mcp = "src.my-new-mcp:main"

然后,您可以运行您的新 MCP:


npx @modelcontextprotocol/inspector uv --directory . run my-new-mcp

文档

  • 包含 MCP 文档,方便 LLM 开发- 基于以下方法:https://modelcontextprotocol.io/tutorials/building-mcp-with-llms

安全性

这是一个实验性项目,旨在帮助开发者创建自己的MCP服务器。我做了最小限度的处理以确保你在尝试时它不会立即崩溃,但请小心——使用这个工具非常容易执行SQL注入攻击。服务器会检查查询是否以SELECT开头,但除此之外没有任何保证。简而言之——除非你是创始人且没有付费客户,否则不要在生产环境中运行。

许可证

MIT

相关 MCP 服务