Skip to main content
Glama
by fkesheh
models.pyโ€ข4.35 kB
"""Pydantic models for skill-mcp MCP tools.""" from typing import Any, Dict, List, Optional from pydantic import BaseModel, Field # Input Models class ListSkillsInput(BaseModel): """Input for listing all skills.""" pass class GetSkillDetailsInput(BaseModel): """Input for getting detailed skill information.""" skill_name: str = Field(description="Name of the skill") class ReadSkillFileInput(BaseModel): """Input for reading a skill file.""" skill_name: str = Field(description="Name of the skill") file_path: str = Field( description="Relative path to the file within the skill directory (e.g., 'SKILL.md' or 'scripts/process.py')" ) class CreateSkillFileInput(BaseModel): """Input for creating a new skill file.""" skill_name: str = Field(description="Name of the skill") file_path: str = Field(description="Relative path for the new file within the skill directory") content: str = Field(description="Content to write to the file") class UpdateSkillFileInput(BaseModel): """Input for updating an existing skill file.""" skill_name: str = Field(description="Name of the skill") file_path: str = Field(description="Relative path to the file within the skill directory") content: str = Field(description="New file content") class DeleteSkillFileInput(BaseModel): """Input for deleting a skill file.""" skill_name: str = Field(description="Name of the skill") file_path: str = Field( description="Relative path to the file to delete within the skill directory" ) class RunSkillScriptInput(BaseModel): """Input for running a skill script.""" skill_name: str = Field(description="Name of the skill") script_path: str = Field(description="Relative path to the script within the skill directory") args: Optional[List[str]] = Field( default=None, description="Optional command-line arguments to pass to the script" ) working_dir: Optional[str] = Field( default=None, description="Optional working directory for script execution" ) timeout: Optional[int] = Field( default=None, description="Optional timeout in seconds (defaults to 30 seconds if not specified)", ) class ExecutePythonCodeInput(BaseModel): """Input for executing Python code directly.""" code: str = Field(description="Python code to execute (can include PEP 723 dependencies)") skill_references: Optional[List[str]] = Field( default=None, description="Optional list of skill files to import using namespace format (e.g., 'calculator:utils.py')", ) timeout: Optional[int] = Field( default=None, description="Optional timeout in seconds (defaults to 30 seconds if not specified)", ) class ReadSkillEnvInput(BaseModel): """Input for reading skill .env file.""" skill_name: str = Field(description="Name of the skill") class UpdateSkillEnvInput(BaseModel): """Input for updating skill .env file.""" skill_name: str = Field(description="Name of the skill") content: str = Field(description=".env file content") # Output Models class FileInfo(BaseModel): """Information about a file.""" path: str size: int type: str # 'python', 'shell', 'markdown', 'unknown' is_executable: bool = False has_uv_deps: Optional[bool] = None # Only for Python scripts modified: Optional[float] = None # Unix timestamp (from st_mtime) class ScriptInfo(BaseModel): """Information about an executable script.""" path: str type: str # 'python', 'shell' has_uv_deps: bool = False class SkillMetadata(BaseModel): """Metadata extracted from SKILL.md YAML frontmatter.""" name: Optional[str] = None description: Optional[str] = None extra: Dict[str, Any] = Field(default_factory=dict) class SkillDetails(BaseModel): """Comprehensive skill information.""" name: str description: str metadata: SkillMetadata files: List[FileInfo] scripts: List[ScriptInfo] env_vars: List[str] # Environment variable names only has_env_file: bool skill_md_content: Optional[str] = None # Full SKILL.md content class SkillSummary(BaseModel): """Lightweight skill summary for listing.""" name: str description: str has_skill_md: bool

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/fkesheh/skill-mcp'

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