Skill discovery for AI agents - search and retrieve agent skills on demand. Provides REST API and MCP server endpoints for discovering and fetching SKILL.md files from skills.sh ecosystem.
Skyll has solid tool descriptions (150-200 chars) and well-named tools with clear action verbs (search_, get_, add_). However, input schemas lack critical details: parameters are described but many are missing type constraints (enums, min/max for integers), and output schemas are entirely undocumented. All four tools are read-only, reducing complexity, but descriptions could be more action-oriented. No evidence of error handling guidance or recovery patterns. The server is built on fastmcp (current framework) and exposes HTTP transport, placing it in the 'fair to good' range.
Fetch the latest version of a skill by name or full path. Similar to `npx skills add <name>`. Supports simple names or full GitHub paths. Always fetches fresh content from GitHub.
Get cache statistics including hit count, miss count, and size metrics. Returns cache performance data for monitoring.
Retrieve a specific agent skill by source repository and skill ID. Returns complete skill data including full SKILL.md content and optional reference files.
Search for agent skills by natural language query. Returns a list of skills matching the query, sorted by popularity (install count). Each skill includes full markdown content ready for context injection.
Output schemas not documented. Tools return skill data, cache stats, etc., but the response structure is never specified in code. LLMs cannot plan downstream calls or extract the right fields.
Input schema constraints missing. 'limit' parameter in search_skills declares min=1, max=20, default=5 in description but not as JSON Schema minValue/maxValue. 'query' has no max length constraint despite MAX_QUERY_LENGTH=500 defined in code but not enforced in schema.
'add_skill' description says 'Fetch the latest version of a skill by name or full path' but also 'Similar to npx skills add <name>'. The description conflates fetch (read-only) with add (which in npm means install/modify). No clarity on what 'add' does, does it modify local state, return installation instructions, or just fetch?
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 66 | 2026-07-28+ | v2 |
| 2026-03-09 | C | 68 | - | v1 |
'get_cache_stats' has an empty input schema (no parameters) but description is vague: 'Get cache statistics including hit count, miss count, and size metrics.' What metrics exactly? What are the units? Without output schema, LLM cannot interpret the response.
No error handling guidance. Tools accept 'source' (GitHub owner/repo) and 'skill_id' in get_skill, but no description of how to handle invalid sources, missing skills, or API rate limits. LLM receives errors with no recovery path.
Parameter type inconsistency: 'source' in get_skill is described as 'GitHub owner/repo (e.g., "vercel-labs/agent-skills")' but the parameter type in the schema is just 'string', no pattern constraint, no validation rule visible. LLM could pass 'invalid/source/format' and tool would silently fail.