| skill_server_infoA | function_purpose: Return server-level documentation including purpose and usage. Description: Provides an overview of the ClaudeSkills MCP Server, its transport mode, and where skills are loaded from. Useful for clients to show contextual info and help users understand capabilities and configuration.
Returns: name: str Server name description: str High-level description of server purpose and capabilities skills_dir: str Absolute path to the skills directory in use transport: str Transport used by the server (e.g., "stdio")
Usage: |
| skill_list_allA | function_purpose: List available skills with brief metadata (excluding body). Description: Args: Returns: If markdown_output=False: List of dict entries with name, description, license, allowed_tools, metadata, path If markdown_output=True: formatted markdown string with skill catalog
Usage: |
| skill_get_detailA | function_purpose: Get full parsed details for a specific skill by name (frontmatter + body + notes). Description: Returns the complete parsed skill including frontmatter fields and the markdown body content. By default, appends all notes from the _notes/ directory to provide complete context including
learnings, improvements, corrections, and examples discovered while using the skill.
Args: name: str The hyphen-case name of the skill (must match the skill directory name) include_notes: bool If True (default), append notes from _notes/ to the body for complete context markdown_output: bool If True, return formatted markdown string instead of JSON dict (default: False)
Returns: If markdown_output=False: dict containing name, description, license?, allowed_tools?, metadata?, path, body If markdown_output=True: formatted markdown string with frontmatter and body
Usage: Use this when the agent needs the full guidance text and metadata for a skill. Notes are included by default to ensure the agent sees all relevant context, corrections, and examples. Set include_notes=False only if you want just the core SKILL.md content without historical notes. Set markdown_output=True to get a readable markdown document instead of JSON structure.
|
| skill_search_indexA | function_purpose: Search skills by case-insensitive substring across name, description, and body. Description: Args: query: str Case-insensitive substring markdown_output: bool If True, return formatted markdown string instead of JSON list (default: False)
Returns: If markdown_output=False: List of dicts with name, description, path If markdown_output=True: formatted markdown string with search results
Usage: |
| skill_list_assetsA | function_purpose: List non-SKILL.md files within a skill folder (recursive). Description: Enumerates files inside a specific skill directory, excluding SKILL.md, recursively. Useful for discovering supporting artifacts, reference materials, templates, and helper scripts that belong to a skill.
Args: name: str The hyphen-case name of the skill whose assets to list markdown_output: bool If True, return formatted markdown string instead of JSON list (default: False)
Returns: If markdown_output=False: list of dicts with path, size, mime_type If markdown_output=True: formatted markdown string with asset listing
Usage: Call before reading assets to present available files to the agent or user. For reading actual content, use skill_read_asset() with the returned path. Set markdown_output=True for a more readable format.
|
| skill_read_assetA | function_purpose: Read a specific asset file within a skill (returns text or base64 data). Description: Safely reads an asset inside a skill directory, preventing path traversal and limiting size via max_bytes. Returns UTF-8 text when possible, otherwise base64-encoded bytes, including a MIME type guess and truncation flag.
Args: name: str The hyphen-case skill name (must match skill directory) path: str Relative file path within the skill directory max_bytes: int Maximum number of bytes to read (default: 8_388_608)
Returns: dict[str, Any] with: encoding: "text" | "base64" data: str UTF-8 text or base64 string mime_type: str | None Best-effort MIME type guess truncated: bool True if content was cut at max_bytes
Usage: Use after listing assets to fetch the content of a specific file for analysis or display. If the asset is large, consider increasing max_bytes or reading only required portions.
|
| skill_createA | function_purpose: Create a new skill directory containing a SKILL.md per Agent Skills Spec. Description: Creates a new directory under the skills root whose name matches the skill 'name' frontmatter. Writes a SKILL.md file with YAML frontmatter (name, description, optional license, allowed_tools, metadata)
followed by the markdown body. Fails if a skill with that name already exists or if the name is invalid.
Constraints: Additive only; will not overwrite existing skills. Name must be hyphen-case or simple alphanumeric with dashes/underscores. Body may be empty; if empty a placeholder is inserted.
Args: name: str Skill directory and frontmatter name (hyphen-case recommended) description: str Concise description of the skill body: str Markdown guidance content (optional) license: str | None Optional license identifier/text allowed_tools: list[str] Optional list of tool names this skill permits metadata: dict[str, Any] Optional arbitrary metadata mapping
Returns: |
| skill_add_assetA | function_purpose: Add (or optionally overwrite) a single asset file inside an existing skill directory. Description: Writes a new file under the skill folder (creating parent directories) while enforcing path safety. Supports text (UTF-8) or base64 content for binary assets (e.g. PDFs, images). Will not overwrite existing files unless overwrite=True.
IMPORTANT: After adding an asset, you should ALWAYS create a note (via skill_store_note) documenting: What the asset contains and its purpose When and why an agent should load/use it Any context needed to understand it Example usage patterns if applicable
This ensures the asset remains discoverable and properly documented for future use. Args: name: str Skill name (directory must already exist) path: str Relative path inside the skill (e.g. "examples/foo.py") content: str Text content or base64 string encoding: str "text" (default) or "base64" overwrite: bool Allow overwriting when True (default False)
Returns: |
| skill_add_assetsA | function_purpose: Bulk add multiple assets to a skill. Description: IMPORTANT: After adding assets, you should ALWAYS create a note (via skill_store_note) documenting: What each asset contains and its purpose When and why an agent should load/use them Any context needed to understand them Example usage patterns if applicable
Args: name: str Skill name assets: list[dict] Each: {path: str, content: str, encoding?: "text"|"base64"} overwrite: bool Allow overwriting existing files
Returns: |
| skill_store_noteA | function_purpose: Append a new note to a skill capturing learnings, improvements, and scripts. Description: Safely stores additive notes related to a skill (no edits to existing files). Use this to record
observations, corrections, suggested improvements, and example scripts discovered while using the skill. Encourages iterative refinement: if documentation turns out inaccurate or incomplete, add a note that
clarifies, extends, or proposes better approaches. Over time, these notes can guide maintainers to
improve the canonical SKILL.md.
Constraints: Args: name: str The hyphen-case skill name (must match skill directory) title: str A short, descriptive title for the note content: str The body of the note (Markdown supported)
Returns: dict[str, Any] with: path: str Relative path to the created note within the skill directory created: bool True on success message: str Status message
|
| skill_list_notesA | function_purpose: List notes created under a skill's _notes directory. Description: Enumerates note files stored under a skill's '_notes' and 'notes' directories. Notes are additive records of
learnings, improvements, and scripts created via store_skill_note() or manually, intended to refine or clarify
skills over time without editing existing files.
Args: name: str The hyphen-case skill name (must match the skill directory) markdown_output: bool If True, return formatted markdown string instead of JSON list (default: False)
Returns: If markdown_output=False: list of dicts with path, size, title, created_at, kind If markdown_output=True: formatted markdown string with note listing
Usage: |
| skill_trash_user_skillA | function_purpose: Move a user-created skill directory into a trash location instead of hard deleting it. Policy: Only user-created skills may be trashed. Bundled/Anthropic skills are rejected. The skill directory is moved under a trash/skills subdirectory with a timestamped folder name. All operations are logged to an operations log file.
Args: name: str Skill name to trash force: bool Require explicit confirmation flag (default True). If False, the call is a dry refusal.
Returns: dict[str, Any] with: trashed: bool name: str trash_path: str | None message: str
|
| skill_trash_user_assetA | function_purpose: Move a user-created asset or note into trash instead of deleting it. Policy: For bundled/Anthropic skills: For user-created skills: The target file is moved under trash/assets//__. Operations are logged in an operations log.
Args: Returns: dict[str, Any] with: trashed: bool name: str path: str trash_path: str | None message: str
|