Agent Skills Manager MCP presents a specialized domain (skill library management) with 6 tools, all explicitly registered with schemas. However, critical gaps in parameter descriptions, output schema documentation, and error handling limit production readiness. The server demonstrates basic competence in naming and structural compliance, but falls short on LLM-optimization patterns. Average tool score: 52/100.
Delete a skill permanently from the central skill library.
pull_skill_to_globalwritesource verified53/100
Pull skill from central library and write to user's global tool dictionary. If the AI doesn't know its environment, you should manually specify ide_name.
pull_skill_to_projectwritesource verified53/100
Pull skill from central library and write to local project's tool dictionary. If the AI doesn't know its environment, you should manually specify ide_name.
push_skill_from_globalwritesource verified57/100
Push skill from your global tool/IDE dictionary (e.g. ~/.trae/skills) into the central library. If the AI doesn't know its environment, you should manually specify ide_name.
push_skill_to_librarywritesource verified55/100
Push local project rule file to central skill library.
Add NULL descriptions for pull_skill_to_project.skill_name and pull_skill_to_global.skill_name. Example: 'The name of the skill to pull from the central library (e.g., typescript-optimizations).'
Convert ide_name to an enum constraint. Change type from 'string' to enum with values ['cursor', 'trae', 'windsurf', 'cline', 'aider', 'qoder', 'custom']. Update description to: 'The IDE or CLI tool to target. Must be one of: cursor, trae, windsurf, cline, aider, qoder, custom.'
Document output schemas for all 6 tools. For example, push_skill_to_library should document: 'Returns {success: boolean, skill_id: string, message: string, timestamp: string (ISO 8601)}.'
Add explicit idempotence and side-effect statements to all WRITE tool descriptions. Example: 'Idempotent. If skill already exists, it is overwritten. Safe to retry on transient failures.'
Implement confirmation pattern for delete_skill_from_library. Add optional parameter confirm_delete: bool (default false). Return 'Dry run: would delete skill X. Call again with confirm_delete=true to proceed.' This prevents accidental deletions.
Add error recovery hints to all descriptions. Example for query_library_skills: 'If skill_name is not found, call with empty skill_name to see available options. Returns error code 404 with list of similar-named skills for correction.'
Document file format and path constraints. For push_skill_to_library.project_file_path: 'Absolute or relative path to a markdown file (.md) containing skill definition. Relative paths resolved from current working directory.'
Score history
Overall score trend
↓ 5 points across a rubric change (v1 → v2)
46/100
Scored
Grade
Overall
Spec posture
Rubric
2026-09-22
F
46
2026-07-28+
v2
2026-03-09
D
51
-
v1
Descriptions do not clarify side effects, idempotence, or ordering constraints
No mention of pagination or result limits for query_library_skills
query_library_skills
Add pagination support to query_library_skills. Introduce optional parameters: limit (int, 1-100, default 50) and offset (int, default 0). Response includes total_count (int) and has_more (bool) to guide agent iteration.
Add parameter validation descriptions. For skill_name: 'Alphanumeric and hyphens only, 3-64 characters.' For project_path: 'Absolute path to existing directory.' For project_file_path: 'Path to markdown or JSON file; can be relative or absolute.'
Create a composition improvement plan. Currently, pulling a skill requires knowing the IDE name (manual parameter). Add a separate discovery tool: get_current_environment() → {ide_name: string, project_path: string} to allow agents to auto-detect and reduce manual parameter entry.
Document what 'global tool dictionary' means per IDE. Add clarification in pull_skill_to_global description: 'Writes skill to platform-specific location: ~/.cursor/tools (cursor), ~/.trae/skills (trae), etc. Exact path depends on ide_name.'
Add rate limiting and quota guidance (if applicable). If the central library has write limits or rate limits, document them in push_skill_to_library and push_skill_from_global: 'Rate limited to 10 pushes per minute. Pushes beyond limit return 429 Too Many Requests; wait 60 seconds before retrying.'