首页/数据库/postgresql-mcp

postgresql-mcp

查看源码
2025-5-12
Words 719Read Time 2 min
Score:85

提供PostgreSQL数据库的CRUD操作,支持表级和列级访问控制,通过YAML文件配置数据库连接和操作权限。

Python

PostgreSQL MCP Server

一个提供 PostgreSQL 数据库表 CRUD 操作的 Model Context Protocol (MCP) 服务器。

概述

该 MCP 服务器允许您通过一系列工具与 PostgreSQL 数据库进行交互,这些工具提供了对指定表的创建、读取、更新和删除(CRUD)操作。服务器使用 FastMCP 库并以 stdio 模式运行,使其兼容各种 MCP 客户端。

功能

  • 连接到 PostgreSQL 数据库
  • 对指定表执行 CRUD 操作
  • 表和列级别的访问控制
  • 模式检查
  • 自定义 SQL 查询执行
  • 通过 YAML 文件进行配置

安装

  1. 克隆此仓库:
    1. 安装所需的依赖项:

      配置

      服务器使用 config.yaml 文件进行配置。该文件包含:
      1. 数据库连接详细信息
      1. 表配置,包括:
          • 哪些表是可访问的
          • 哪些列允许进行操作
          • 允许哪些操作(创建、读取、更新、删除)
      示例配置:

      使用

      运行 MCP 服务器:
      服务器将以 stdio 模式启动,准备接收来自 MCP 客户端的命令。

      可用的 MCP 工具

      list_tables

      列出配置中所有可用的表。

      create_record

      在指定表中创建新记录。

      read_records

      从指定表中读取记录,可选过滤。

      update_record

      更新指定表中的记录。

      delete_record

      删除指定表中的记录。

      execute_query

      执行自定义 SQL 查询。

      get_table_schema

      获取指定表的模式信息。

      响应格式

      所有工具都以标准格式返回响应:
      或在发生错误时:

      安全注意事项

      • execute_query 工具允许执行任意 SQL 查询,可能存在安全风险。考虑限制其使用或实施额外的验证。
      • 数据库凭据以明文形式存储在 config.yaml 文件中。在生产环境中,考虑使用环境变量或安全的密钥管理解决方案。
      • 服务器根据配置验证表和列的访问权限,但确保配置本身的安全非常重要。

      许可证

      MIT 许可证
      上一篇
      mcp-playwright-test
      下一篇
      ai-docs-mcp