A local-first, plain-text activity tracker with a pluggable schema and an MCP server
Librarian has 12 well-named tools with consistent verb_noun patterns (librarian_search, librarian_add, librarian_delete). All tools have descriptions (avg ~80 chars, within baseline 34-392). Input schemas are present and typed for all tools. However, descriptions are terse and lack LLM-optimized guidance on WHEN to use each tool vs alternatives. Parameter descriptions are minimal (e.g., 'Entry title' vs 'A short, human-readable name for the activity (max 200 chars)'). Output schemas are not documented, agents cannot predict response structure. Error handling is absent from tool definitions. Write tools require session_label but lack confirmation/dry-run patterns for destructive operations (delete). No tool annotations (readOnlyHint, destructiveHint) despite clear risk stratification in metadata.
Create a new activity entry
Add tags to an existing entry
Delete an activity entry
Edit an existing activity entry
Retrieve a specific entry by ID
List all activity entries with optional filtering
Remove tags from an existing entry
Inspect the active schema for structured blocks and their fields
Output schemas not documented. Agents cannot predict response structure (fields, types, pagination). Forces agents to guess or fail on unexpected formats.
Descriptions lack LLM-optimized guidance. 'Search activity entries by free-text query' does not explain WHEN to use librarian_search vs librarian_similar vs librarian_list. Agents waste reasoning cycles deciding between similar tools.
Destructive tool (librarian_delete) lacks confirmation/dry-run pattern. No mechanism to prevent accidental deletion. Agents can delete entries without review.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Search activity entries by free-text query
Find similar entries to avoid duplicates before creating new ones
Generate statistics on entries carrying a specific block
List all tags in use across entries for consistent tagging
Tool annotations missing. librarian_delete and write tools lack destructiveHint=true; read tools lack readOnlyHint=true. Clients cannot infer safety properties without parsing descriptions.
Parameter descriptions are minimal. 'Entry title' lacks format/length constraints. 'Free-text search query' does not explain supported operators or limits. Agents cannot validate input before calling.