Local MCP server: shared skills and personality rules across AI harnesses.
SkillsMCP has 8 tools with basic descriptions and parameter schemas, but significant gaps prevent higher scores. All tools have descriptions (10-200+ chars), and most parameters have type definitions and descriptions. However, output schemas are not documented, error handling lacks recovery guidance, and several tools combine multiple concerns. The server is STDIO-only, which caps protocol readiness at 50. Tool naming is generally clear (verify_setup, list_skills, read_skill) but some tools like learn_run_script and learn_stamp lack clarity on side effects.
Resolve LearnSkill output paths from skillmcp.toml [learn] section. Returns JSON: project_root, output_dir, inbox_dir, stamp_file, scripts_dir.
Run a bundled learn skill script (detectors or collect-cursor). script: e.g. detect-thrashing.py or collect-cursor.py session_path: required for detect-* scripts (path to JSONL session file) since: optional Unix timestamp for collect-cursor.py Returns JSON with stdout (stderr appended if present).
Ensure .learn output dirs exist and update lean.stamp after a learn run.
List files under a skill's references/scripts/assets directory. Returns JSON rows with relative path, byte size, and modified timestamp.
Return JSON list of skill metadata — global skills merged with local project skills. Pass ``project_path`` (absolute path of the project you are working in) to include skills from that project's skill folders. Local skills take precedence over global on name collision.
Output schemas not documented. Tools return JSON strings but LLMs cannot infer field structure (e.g., verify_setup returns a report object, list_skills returns metadata array). Without documented schemas, agents cannot reliably extract and chain results.
Error handling lacks recovery guidance. No tool documents what errors are possible, whether they are retryable, or what the LLM should do next. E.g., learn_run_script can raise ValueError or FileNotFoundError but provides no actionable error messages.
learn_run_script and learn_stamp combine multiple concerns and lack clarity on side effects. learn_run_script both executes scripts AND returns output; learn_stamp both ensures directories AND updates timestamps. Descriptions do not explicitly state these are WRITE operations with irreversible consequences.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Return the full Markdown for a skill by name. Checks the local project's skill folders first (if ``project_path`` given), then falls back to global skills.
Read one UTF-8 text file from a skill's references/scripts/assets directory.
One-call health snapshot: paths, skill counts, and registration status.
Parameter 'kind' in list_skill_files and read_skill_file accepts enum values (references, scripts, assets) but no enum constraint is visible in schema. Descriptions mention the values but LLMs cannot validate against a formal constraint.
Tool descriptions lack dependency hints and prerequisites. E.g., read_skill_file requires a valid skill name but does not guide the LLM to call list_skills first if the name is unknown. This forces wasteful discovery calls.