from pydantic import BaseModel from typing import Any, Dict, List, Optional class ToolCallRequest(BaseModel): """Request for calling an MCP tool""" tool_name: str arguments: Dict[str, Any] = {} class ToolCallResponse(BaseModel): """Response from MCP tool call""" success: bool result: Optional[Dict[str, Any]] = None error: Optional[str] = None tool_name: str class ResourceInfo(BaseModel): """Information about an MCP resource""" uri: str name: str description: Optional[str] = None mime_type: str class ToolInfo(BaseModel): """Information about an MCP tool""" name: str description: str input_schema: Dict[str, Any] class ResourceListResponse(BaseModel): """Response for listing resources""" resources: List[ResourceInfo] count: int class ToolListResponse(BaseModel): """Response for listing tools""" tools: List[ToolInfo] count: int