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