from abc import ABC, abstractmethod
from typing import Any, Dict, List, Optional
from mcp.types import Tool
class BaseTool(ABC):
"""MCP工具基础类"""
def __init__(self):
self.api_helper = None # 将在子类中初始化
def get_tool_definition(self) -> Optional[Tool]:
"""获取工具定义(可选实现)"""
return None
async def execute(self, arguments: Dict[str, Any]) -> Dict[str, Any]:
"""执行工具(默认实现)"""
return self.format_error_response("工具未实现")
def validate_arguments(self, arguments: Dict[str, Any]) -> bool:
"""验证参数"""
return True
def format_error_response(self, error: str) -> Dict[str, Any]:
"""格式化错误响应"""
return {
"success": False,
"error": error,
"data": None
}
def format_success_response(self, data: Any, message: str = None) -> Dict[str, Any]:
"""格式化成功响应"""
return {
"success": True,
"data": data,
"message": message
}