MCP skills server with BM25 retrieval, indexed Ed25519 status, and no external runtime packages
mcp-librarian demonstrates solid tool design with 14 well-named, verb-first tools (find_skill, load_skill, create_skill, etc.). All tools have descriptions (avg ~150 chars, within 10-1024 baseline). Input schemas are present and properly typed with required fields. However, output schemas are NOT documented, critical gap for an agent tool. Parameter descriptions are present but sometimes generic ('Skill name' lacks format/constraint details). Error handling is mentioned in code (McpError, ERROR_CODES) but recovery guidance is not visible in tool descriptions. Security features (content-guard, path-guard, ed25519 signing) are implemented but not surfaced in tool descriptions. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels (READ_ONLY vs WRITE). Composition is strong: tools chain well (find_skill → load_skill → create_skill), and naming is consistent and unambiguous.
Browse available skill packs from the community registry. Shows what packs can be installed with install_pack. Use this when the user asks what skills or packs are available, or when you want to suggest relevant packs.
Write a new skill to the skills directory after validating content. Used by AI agents to create skills from research.
Export installed skills as a shareable pack. Exports all skills or a specified subset.
Fetch a single web page and extract readable text. For broad research, prefer research_topic which searches and fetches multiple sources automatically.
Search the knowledge library and return the full content of the top matching skill. If no matching skill exists, automatically researches the topic from authoritative web sources and creates a new skill — so the user never hits a dead end. Use this when you need actionable patterns for any task.
Search your knowledge library for patterns and best practices. Use this BEFORE implementing features involving security, APIs, databases, testing, Docker, TypeScript, git workflows, or any domain where established patterns exist. Returns ranked results with relevance scores.
Output schemas not documented. Tools return data but LLMs cannot plan downstream calls or extract fields without trial-and-error. Critical for agent composition.
Tool annotations missing. Tools declare Risk levels (READ_ONLY, WRITE) in metadata but do not expose readOnlyHint/destructiveHint/idempotentHint in schema. Agents cannot infer safety properties.
Parameter descriptions lack format/constraint details. 'Skill name' does not specify valid characters, length, or case sensitivity. 'Query' lacks guidance on natural language vs keyword syntax. Agents cannot validate inputs before calling.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | <=2025-11-25 | v2 |
Install a skill pack from the community registry or a direct URL. Downloads, validates, and deduplicates skills.
List all installed skills with their names, descriptions, categories, and available sections. Use this to see what knowledge is available in the library.
Load a specific section from a skill by its slug path. Use when you only need one part of a skill (e.g. just the "error-handling" section).
Load the full content of a skill by exact name. Use when you already know which skill you need.
Research a topic by searching the web and fetching authoritative sources. Returns extracted content from multiple high-quality pages (official docs, RFCs, established guides). Use this before create_skill to ensure skills are built from current, authoritative information — not just training data.
Get server status: version, skill count, index stats, uptime, and config summary.
Get detailed integrity status for a single skill (hash, signature, signedAt).
Validate skill content: checks frontmatter, section headings, and content guard (prompt injection scan).
Error recovery guidance absent from tool descriptions. Code implements McpError and ERROR_CODES but descriptions do not tell LLMs what to do on failure (retry, ask user, try alternative tool).
Security features (content-guard, path-guard, ed25519 signing) implemented but not surfaced in tool descriptions. Agents cannot understand what validation/protection is applied.