PostgreSQL数据库访问协议

一个为PostgreSQL数据库实现的模型上下文协议(MCP)服务器,为AI助手提供安全且结构化的数据库访问。

  • by atarkowska
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 atarkowska/mcp-sql-server

使用说明

MCP SQL Server

PostgreSQL数据库的模型上下文协议(MCP)服务器实现,为AI助手提供对PostgreSQL数据库的安全和结构化访问。

INFO:     Started server process [12345]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)

特性

  • 数据库反思:列出表并探索数据库模式
  • 表架构发现:获取有关表的详细信息,包括列、类型、约束、主键和外键
  • 安全查询执行:执行带有内置安全检查的只读SELECT查询
  • 完全查询支持:使用参数化查询支持执行INSERT、UPDATE、DELETE和SELECT查询
  • 类型安全:使用Pydantic模型构建,用于强大的输入验证
  • 综合录井:调试和监控的详细日志记录

可用工具

  • list_tables -列出指定数据库架构中的所有表。
  • get_table_schema -检索特定表的详细架构信息。
  • execute_safe_query -安全地执行只读SELECT查询。
  • execute_query -使用可选参数执行任何SQL查询(SELECT、INSERT、UPDATE、DELETE)。

MCP客户端配置

将服务器添加到MCP客户端配置中(例如,Claude Desktop):

测试

看 测试/README_TESTING.md 获取详细的测试信息。

安全注意事项

  • 环境变量:将数据库凭据存储在 .env 文件或环境变量,从不在代码中
  • 只读访问:考虑使用 execute_safe_query 对于不受信任的查询
  • 数据库权限:使用具有最低必要权限的数据库用户
  • 参数化查询:始终使用 params 用于防止SQL注入的用户提供值的参数
  • 网络安全:限制数据库访问受信任的网络

贡献

欢迎投稿!请随时提交拉取请求。

许可证

此项目根据GNU Affero通用公共许可证v3.0(AGPL-3.0)获得许可-请参阅 许可证 文件以获取详细信息。

支持

有关问题、疑问或贡献,请访问 GitHub 仓库.

相关项目