PostgreSQL Multi-Schema MCP Server

PostgreSQL Multi-Schema MCP Server

site icon
2025.02.25 2
JavaScript数据库服务数据查询数据库
PostgreSQL Multi-Schema MCP Server 是一个基于模型上下文协议(Model Context Protocol)的服务,提供对PostgreSQL数据库的只读访问,并增强了对多模式(schema)的支持。该服务使LLMs能够检查跨多个命名空间的数据库模式,并在保持模式隔离的同时执行只读查询。
View on GitHub

Overview

基本能力

产品定位

PostgreSQL Multi-Schema MCP Server 是一个专门为PostgreSQL数据库设计的只读访问服务,特别适用于需要跨多个模式进行数据查询和分析的场景。

核心功能

  • 多模式支持:通过命令行配置明确指定要暴露的模式。
  • 模式隔离:严格限制只访问在服务器启动时列出的授权模式。
  • 跨模式发现:在保持模式边界的同时,提供跨多个模式的表的统一视图。
  • 元数据安全:过滤系统目录,只暴露指定模式中用户定义的表。

适用场景

  • 需要跨多个PostgreSQL模式进行数据查询和分析的场景。
  • 需要保持模式隔离的同时提供统一数据视图的场景。
  • 需要限制对数据库的访问权限,只允许只读操作的场景。

工具列表

  • query
  • 执行对连接数据库的只读SQL查询。
  • 输入:sql(字符串):要执行的SQL查询。
  • 所有查询都在只读事务中执行。
  • 通过限制search_path来维护模式上下文。

常见问题解答

  • 如何指定多个模式?
  • 在启动服务器时,通过逗号分隔的模式列表来指定。
  • 默认模式是什么?
  • 如果没有指定模式,默认使用'public'模式。

使用教程

使用依赖

  • 需要安装Node.js和npm。
  • 需要PostgreSQL数据库连接信息。

安装教程

  1. 确保已安装Node.js和npm。
  2. 使用以下命令启动服务器:
npx -y mcp-server-postgres-multi-schema <database-url> [schemas]

其中: - <database-url>:PostgreSQL连接字符串(例如,postgresql://localhost/mydb)。 - [schemas]:逗号分隔的模式列表(如果不指定,默认为'public')。

调试方式

  1. 启动服务器后,可以通过发送SQL查询来测试连接和查询功能。
  2. 确保查询在指定的模式中执行,并且只返回预期的数据。

示例

# 使用默认的public模式连接
npx -y mcp-server-postgres-multi-schema postgresql://localhost/mydb

# 使用多个模式连接
npx -y mcp-server-postgres-multi-schema postgresql://localhost/mydb public,analytics,staging

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。