| 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 |