
PostgreSQL Multi-Schema MCP Server

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数据库连接信息。
安装教程
- 确保已安装Node.js和npm。
- 使用以下命令启动服务器:
npx -y mcp-server-postgres-multi-schema <database-url> [schemas]
其中:
- <database-url>
:PostgreSQL连接字符串(例如,postgresql://localhost/mydb
)。
- [schemas]
:逗号分隔的模式列表(如果不指定,默认为'public')。
调试方式
- 启动服务器后,可以通过发送SQL查询来测试连接和查询功能。
- 确保查询在指定的模式中执行,并且只返回预期的数据。
示例
# 使用默认的public模式连接
npx -y mcp-server-postgres-multi-schema postgresql://localhost/mydb
# 使用多个模式连接
npx -y mcp-server-postgres-multi-schema postgresql://localhost/mydb public,analytics,staging