2025-12-04 14:48:38 +08:00
|
|
|
|
"""PostgreSQL MCP工具全局管理器"""
|
2025-12-16 13:55:16 +08:00
|
|
|
|
from loguru import logger
|
2025-12-04 14:48:38 +08:00
|
|
|
|
from typing import Optional
|
2025-12-16 13:55:16 +08:00
|
|
|
|
from th_agenter.services.mcp.postgresql_mcp import PostgreSQLMCPTool
|
2025-12-04 14:48:38 +08:00
|
|
|
|
|
|
|
|
|
|
class PostgreSQLToolManager:
|
|
|
|
|
|
"""PostgreSQL工具全局单例管理器"""
|
|
|
|
|
|
|
|
|
|
|
|
_instance: Optional['PostgreSQLToolManager'] = None
|
|
|
|
|
|
_postgresql_tool: Optional[PostgreSQLMCPTool] = None
|
|
|
|
|
|
|
|
|
|
|
|
def __new__(cls):
|
|
|
|
|
|
if cls._instance is None:
|
|
|
|
|
|
cls._instance = super().__new__(cls)
|
|
|
|
|
|
return cls._instance
|
|
|
|
|
|
|
|
|
|
|
|
@property
|
2025-12-16 13:55:16 +08:00
|
|
|
|
def postgresql_tool(self) -> PostgreSQLMCPTool:
|
2025-12-04 14:48:38 +08:00
|
|
|
|
"""获取PostgreSQL工具实例"""
|
|
|
|
|
|
if self._postgresql_tool is None:
|
|
|
|
|
|
self._postgresql_tool = PostgreSQLMCPTool()
|
|
|
|
|
|
logger.info("创建全局PostgreSQL工具实例")
|
|
|
|
|
|
return self._postgresql_tool
|
|
|
|
|
|
|
2025-12-16 13:55:16 +08:00
|
|
|
|
def get_tool(self) -> PostgreSQLMCPTool:
|
2025-12-04 14:48:38 +08:00
|
|
|
|
"""获取PostgreSQL工具实例(别名方法)"""
|
|
|
|
|
|
return self.postgresql_tool
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 全局实例
|
|
|
|
|
|
postgresql_tool_manager = PostgreSQLToolManager()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_postgresql_tool() -> PostgreSQLMCPTool:
|
|
|
|
|
|
"""获取全局PostgreSQL工具实例"""
|
|
|
|
|
|
return postgresql_tool_manager.get_tool()
|