PostgreSQL多模式服务器
一种模型上下文协议服务器,提供对 PostgreSQL 数据库的只读访问,具有增强的多模式支持,允许大型语言模型(LLM)跨多个命名空间检查数据库模式并执行只读查询,同时保持模式隔离。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"postgres": {
"args": [
"-y",
"mcp-server-postgres-multi-schema",
"postgresql://localhost/mydb",
"public,audit"
],
"command": "npx"
}
}
}
该服务需要配置环境变量:database-url、schemas
服务介绍
PostgreSQL 多模式 MCP 服务器
这是一个提供对 PostgreSQL 数据库只读访问的 Model Context Protocol 服务器,增强了多模式支持。此服务器使 LLM 能够检查多个命名空间中的数据库模式并执行只读查询,同时保持模式隔离。
主要功能
- 多模式支持:通过命令行配置明确指定要暴露哪些模式
- 模式隔离:严格控制仅访问启动服务器时列出的授权模式
- 跨模式发现:在保持模式边界的同时,统一查看多个模式中的表
- 元数据安全:过滤系统目录,仅暴露指定模式中的用户定义表
组件
工具
- query
- 对连接的数据库执行只读 SQL 查询
- 输入:
sql(字符串):要执行的 SQL 查询 - 所有查询都在 READ ONLY 事务中执行
- 通过限制 search_path 来维护模式上下文
资源
服务器为每个授权模式中的每个表提供模式信息:
- 表模式 (
postgres://<host>/<db_schema>/<table>/schema)- 每个表的 JSON 模式信息
- 包括列名、数据类型和类型修饰符
- 从数据库元数据中自动发现
- 支持多模式,并具有明确的模式允许列表
使用方法
服务器需要一个数据库 URL,并接受以逗号分隔的要暴露的模式列表:
npx -y mcp-server-postgres-multi-schema <database-url> [schemas]
- database-url: PostgreSQL 连接字符串(例如
postgresql://localhost/mydb) - schemas: 要暴露的模式的逗号分隔列表(如果未指定,默认为 '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 一起使用
在 claude_desktop_config.json 中配置 "mcpServers" 部分:
NPX
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": [
"-y",
"mcp-server-postgres-multi-schema",
"postgresql://localhost/mydb",
"public,audit"
]
}
}
}
许可证
此多模式 MCP 服务器根据 MIT 许可证许可。您可以根据 LICENSE 文件中的条款使用、修改和分发该软件。