MCP Server Postgres

MCP Server Postgres

🚀 PostgreSQL 服务器 MCP 的数据库功能描述

本项目提供了一系列与 PostgreSQL 数据库交互的功能,涵盖数据库连接管理、辅助函数以及主要的数据库操作功能,同时还暴露了一些 API 供外部调用。

✨ 主要特性

  • 提供数据库连接类,方便管理与 PostgreSQL 数据库的连接。
  • 包含辅助函数,用于特殊数据类型的 JSON 序列化和单例模式获取数据库连接。
  • 具备多个主要数据库功能函数,可列出表、获取表信息、查询表数据和执行自定义 SQL 查询。
  • 暴露了 MCP 工具 API,方便外部调用数据库操作功能。

📦 安装指南

原文档未提供安装步骤,故跳过此章节。

💻 使用示例

基础用法

# 导入必要的类和函数
from your_module import DatabaseConnection, get_db, list_tables

# 获取数据库连接
db = get_db()

# 列出数据库中的所有表
tables = list_tables(db)
print(tables)

高级用法

# 导入必要的类和函数
from your_module import DatabaseConnection, execute_query

# 创建数据库连接
db = DatabaseConnection()

# 执行自定义 SQL 查询
query = "SELECT * FROM your_table WHERE column = %s"
params = ("value",)
result = execute_query(db, query, params)
print(result)

📚 详细文档

数据库连接类

DatabaseConnection

  • 目的:管理与 PostgreSQL 数据库的连接。
  • 构造函数参数
    • host:数据库主机地址,字符串类型,默认值为 "localhost"。
    • database:数据库名称,字符串类型,默认值为 "postgres"。
    • user:数据库用户名,字符串类型,默认值为 "postgres"。
    • password:数据库密码,字符串类型,默认值为 "codenexus"。
  • 方法
    • close():关闭到数据库的连接。

辅助函数

json_serializer(obj: Any) -> Any

  • 目的:对特殊数据类型进行 JSON 序列化。
  • 处理
    • datetime/date 对象 → ISO 格式字符串。
    • Decimal 数字 → 浮点数。

get_db() -> DatabaseConnection

  • 目的:使用单例模式获取数据库连接。
  • 返回:全局数据库连接实例或 None(如果连接失败)。

主要数据库功能函数

list_tables(db: DatabaseConnection) -> str

  • 目的:列出数据库中的所有表。
  • 返回:格式化字符串,包含表名列表。

get_table_info(db: DatabaseConnection, table: str) -> str

  • 目的:获取特定表的详细信息。
  • 返回:格式化字符串,包含:
    • 列信息(名称、类型、长度、是否为空、默认值)。
    • 主键信息。
    • 行总数。

query_table(db: DatabaseConnection, table: str, limit: Optional[int] = 5) -> str

  • 目的:查询表中的数据。
  • 参数
    • table:要查询的表名。
    • limit:最大返回行数,默认值为 5。
  • 返回:格式化字符串,包含查询结果。

execute_query(db: DatabaseConnection, query: str, params: Optional[tuple] = None) -> str

  • 目的:执行自定义 SQL 查询。
  • 参数
    • query:要执行的 SQL 查询语句。
    • params:查询参数(可选)。
  • 返回:查询结果或受影响行数。

MCP 工具(暴露的 API)

@mcp.tool() list_tables_tool(args: dict) -> str

  • 目的:列表接口用于列出表格。
  • 返回:可用表格列表或错误信息。

@mcp.tool() get_table_info_tool(args: dict) -> str

  • 目的:表格信息接口用于获取详细信息。
  • 必需参数
    • table:要检查的表名。
  • 返回:表格的详细信息或错误信息。

@mcp.tool() query_table_tool(args: dict) -> str

  • 目的:查询表格数据的接口。
  • 必需参数
    • table:要查询的表名。
  • 可选参数
    • limit:最大返回行数,默认值为 5。
  • 返回:查询结果或错误信息。

@mcp.tool() execute_query_tool(args: dict) -> str

  • 目的:执行自定义 SQL 查询的接口。
  • 必需参数
    • query:要执行的查询语句。
  • 可选参数
    • params:查询参数。
  • 返回:查询结果或错误信息。

🔧 技术细节

原文档未提供具体的技术实现细节,故跳过此章节。

📄 许可证

原文档未提供许可证信息,故跳过此章节。

  • 0 关注
  • 0 收藏,16 浏览
  • system 提出于 2025-09-24 07:42

相似服务问题

相关AI产品