Skip to main content
Glama
tools.py2.23 kB
from typing import Optional, List, Dict, Any from pydantic import BaseModel, Field class OperationItem(BaseModel): name: str summary: str | None = None category: str | None = None score: int inputType: str | None = None outputType: str | None = None args: Optional[List[Dict[str, Any]]] = None class SearchOpsOut(BaseModel): total: int items: list[OperationItem] truncated: bool | None = None class RecipeOp(BaseModel): op: str args: Dict[str, Any] = Field(default_factory=dict) class BakeRecipeRequest(BaseModel): input_data: str recipe: List[RecipeOp] class BakeRecipeResponse(BaseModel): ok: bool output: Optional[str] = None type: Optional[str] = None errors: List[str] = Field(default_factory=list) warnings: List[str] = Field(default_factory=list) class ArgItem(BaseModel): name: str type: str required: bool = False options: Optional[List[str]] = None options_total: Optional[int] = None class GetOperationArgsOut(BaseModel): ok: bool op: Optional[str] = None args: List[ArgItem] = Field(default_factory=list) error: Optional[str] = None class GetOperationArgsIn(BaseModel): op: str = Field(..., description="Exact operation name") compact: bool = Field(True, description="If true, return slugified options; otherwise full labels") class BatchBakeRecipeResponse(BaseModel): results: List[BakeRecipeResponse] class ProbeIn(BaseModel): raw_input: str = Field(..., description="Data to probe; plain text or base64/hex etc.") class ProbeOut(BaseModel): ok: bool output: Optional[str] = None recipe: Optional[List[RecipeOp]] = None error: Optional[str] = None class SuggestionItem(BaseModel): index: int op: str candidates: Optional[List[str]] = None missingArgs: Optional[List[str]] = None class ValidateRecipeIn(BaseModel): recipe: List[RecipeOp] = Field(..., description="Array of {op, args} steps to validate") class ValidateRecipeOut(BaseModel): ok: bool errors: List[str] = Field(default_factory=list) suggestions: List[SuggestionItem] = Field(default_factory=list) normalized: Optional[List[RecipeOp]] = None

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/christianwengert/mcp_cyberchef'

If you have feedback or need assistance with the MCP directory API, please join our Discord server