MCP server for Claude Code: one unified book_skill tool with create | enrich | preview modes. Personal subscription library (full paid access to the global library) search/download + Gemini methodology extraction → audited SKILL.md (Anthropic Agent Skills standard).
Two tools with detailed descriptions and comprehensive input schemas. book_skill has excellent parameter coverage (mode enum, file/MD5/query flexibility, dry_run, temperature controls) and clear mode-specific behavior documentation. skill_audit is simpler but well-defined. However, output schemas are not explicitly documented in the code, responses are JSON-stringified without formal schema declarations. Parameter descriptions are strong (72-194 chars average), but tool names lack action verbs (book_skill, skill_audit are noun-heavy). Error handling guidance is minimal, no recovery hints or categorization. No tool annotations (readOnlyHint/destructiveHint) despite skill_audit being read-only and book_skill having write modes.
Unified pipeline. Search your personal subscription library (or accept md5) → download → extract text (epub/fb2/pdf/txt) → Gemini extracts methodology as strict JSON → render or patch SKILL.md → audit against the Claude Code skill-evaluation standard. mode='create' makes a new SKILL.md and optionally promotes to `promote_to` (gated by audit). mode='enrich' surgically inserts NEW additions into an existing SKILL.md at `skill_path` (auto-rollback if audit worsens). mode='preview' returns analysis + proposed additions or full SKILL.md preview WITHOUT writing — use for interactive review before deciding. Rejects non-methodology books (fiction/folklore) with an explicit reason instead of inventing.
Runs the embedded skill-evaluation audit on any SKILL.md file. Checks: description length 150-400 with trigger terms + SKIP edges, kebab-case name without -pro/-expert/-specialist suffix, required sections present (Use this skill when / Do not use this skill when / Purpose / Capabilities / Behavioral Traits / Important Constraints), SKILL.md ≤ 500 lines (else Pattern 2 warning), no placeholder prose (banned tokens listed in src/lib/skill-audit.ts), no time-sensitive phrases, ≥3 capability subsections with body, NEVER/ALWAYS markers in constraints. Returns issues (error|warning) + passes. Reusable beyond books — works for any hand-written or LLM-generated skill.
Tool names lack action verbs. 'book_skill' and 'skill_audit' are noun-centric; should be 'create_skill_from_book' or 'audit_skill' to signal intent clearly.
Output schemas not formally documented. Responses are JSON-stringified without explicit schema definitions. LLMs cannot plan downstream operations without knowing return field types.
No tool annotations. skill_audit is read-only but lacks readOnlyHint. book_skill has destructive modes (create/enrich write files) but no destructiveHint or idempotentHint.
Error handling lacks recovery guidance. No examples of what to do if book is not found, Gemini API fails, or audit fails. Errors should guide LLM to next step.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
skill_path parameter in book_skill is optional for mode=preview but required for mode=enrich. Dependency not enforced in schema, LLM could pass enrich without skill_path.