PostgreSQL多模式MCP服务器

一个提供PostgreSQL数据库只读访问的模型上下文协议服务器,具有增强的多模式支持,使LLM能够检查跨多个命名空间的数据库模式并执行只读查询,同时保持模式隔离。

  • by HarjjotSinghh
  • JavaScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 harjjotsinghh/mcp-server-postgres-multi-schema

使用说明

PostgreSQL多模式MCP服务器

一种模型上下文协议服务器,提供对PostgreSQL数据库的只读访问,并支持增强的多模式。此服务器使LLM能够跨多个命名空间检查数据库模式,并在保持模式隔离的同时执行只读查询。

主要特点

  • 多模式支持:通过命令行配置明确指定要公开的架构
  • 架构隔离:仅对服务器启动期间列出的授权架构进行严格的访问控制
  • 跨模式发现:跨多个模式的表的统一视图,同时保持模式边界
  • 元数据安全:筛选系统目录,仅公开指定架构中的用户定义表

组件

工具

  • 怎么翻译
    • 对连接的数据库执行只读SQL查询
    • 输入: sql (string):要执行的SQL查询
    • 所有查询都在只读事务中执行
    • 通过search_path限制维护架构上下文

资源

服务器跨授权模式为每个表提供模式信息:

  • 持微软签名的表模式 (postgres://<host>/<db_schema>/<table>/schema)
    • 每个表的JSON模式信息
    • 包括列名、数据类型和类型修饰符
    • 从数据库元数据中自动发现
    • 具有显式模式允许列表的多模式支持

用法

服务器需要一个数据库URL,并接受一个逗号分隔的模式列表来公开:

npx -y mcp-server-postgres-multi-schema <database-url> [schemas]
  • 数据库urlPostgreSQL连接字符串(例如。, postgresql://localhost/mydb)
  • 模式:以逗号分隔的要公开的架构列表(如果未指定,则默认为“public”)

例子

# Connect with default public schema
npx -y mcp-server-postgres-multi-schema postgresql://localhost/mydb

# Connect with multiple schemas
npx -y mcp-server-postgres-multi-schema postgresql://localhost/mydb public,analytics,staging

使用Claude Desktop

在您的数据库中配置“mcpServers”部分 claude_desktop_config.json:

NPX

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-server-postgres-multi-schema",
        "postgresql://localhost/mydb",
        "public,audit"
      ]
    }
  }
}

许可证

此多模式MCP服务器根据MIT许可证获得许可。您可以根据许可文件中的条款使用、修改和分发软件。