MCP server for discovering, reading, and installing agent skills from curated GitHub repositories.
Server has well-structured tool definitions with proper Pydantic schemas and clear naming conventions. All 5 tools start with action verbs (github_skills_*). Descriptions are present and substantive (avg ~120 chars). Input schemas are complete with type constraints, min/max bounds, and enums. However, output schemas are not documented, responses are described only in prose. Parameter descriptions are good but some lack actionable format guidance. No tool annotations (readOnlyHint/destructiveHint) despite clear risk profiles. Error handling is minimal, no recovery guidance or categorization.
Retrieve the full content of a specific skill including all files from its directory.
Download and install a skill to the local filesystem.
List all configured skill repositories.
Search for skills across configured repositories using free-text query.
Suggest skills based on a user request by finding similar existing skills.
Output schemas not documented. Tool descriptions mention 'markdown' or 'json' format but do not specify field structure, types, or what data is returned. LLMs cannot plan downstream tool calls without knowing response shape.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). github_skills_install_skill is marked WRITE risk but tool definition lacks destructiveHint annotation. Agents cannot distinguish safe vs unsafe tools without explicit hints.
Error handling lacks recovery guidance. No error responses documented. If a skill_slug is invalid or a GitHub API call fails, the tool likely returns a raw exception. Agents need actionable error messages like 'Skill not found. Try search_skills() first.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Parameter descriptions lack format guidance. 'skill_slug' is described as 'Skill identifier from search results, for example public-skills:figma-implement-design' but the format (repo:skill-name) is not formally specified. LLMs may construct invalid slugs.
No pagination support documented. search_skills accepts 'limit' but no cursor/offset or total_count guidance. If results exceed limit, agents cannot fetch additional results without re-querying.