MCP server providing access to Open Notebook API for managing notebooks, sources, notes, search, chat sessions, and AI models
This server exposes 25 tools across notebook, source, note, model, and search management. Tool definitions are consistently structured with descriptions and input schemas via the mark3labs/mcp-go framework. However, there are significant quality gaps: (1) Output schemas are entirely undocumented, the code registers tools with input definitions but provides no structured response documentation for LLMs to plan downstream calls; (2) Descriptions are sparse (10-80 chars typically) and lack actionable context about when to use each tool, prerequisites, or error recovery; (3) Parameters lack constraints, numeric 'limit' fields accept 1-100 but have no min/max validation in schema; (4) No error handling guidance for LLMs, failed API calls return raw HTTP errors rather than recovery hints; (5) Two tools (ask_question and ask_simple) are nearly identical, violating single-responsibility and creating LLM confusion. Naming is consistent (verb_noun), but schema completeness and description depth lag production standards. The server would benefit from response type documentation, richer descriptions, enum constraints for open fields, and error classification.
Ask a question about your content with detailed control.
Ask a question about your content with simplified interface.
Create a new AI model configuration.
Create a new note.
Create a new notebook.
Create a new source (link, upload, or text).
Delete a model configuration.
Output schemas are completely undocumented. No tool defines what it returns (field names, types, structure). LLMs cannot plan downstream calls or extract required fields for chaining.
Descriptions are too sparse (most 50-65 chars). Current descriptions lack actionable context ('Get a specific notebook by ID' tells LLM nothing about when to call it vs list_notebooks).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 53 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 31 | - | v1 |
Delete a note.
Delete a notebook.
Delete a source.
Get default model configurations.
Get a specific model by ID.
Get a specific note by ID.
Get a specific notebook by ID.
Get a specific source by ID.
Get all chat sessions with optional filtering.
Get all configured AI models.
Get all notebooks with optional filtering and ordering.
Get all notes with optional filtering.
Get all sources with optional filtering.
Search content using vector or text search.
Search tools exposed by this server with progressive detail levels.
Update a note.
Update a notebook.
Update a source.
Numeric parameters (limit, offset) lack explicit min/max constraints in schema. Code checks clamp(1, 100) but LLMs cannot see this validation, they may pass negative or zero values, causing errors with no recovery guidance.
ask_question and ask_simple are nearly identical (same input params, same descriptions). This violates single-responsibility and forces LLM to reason about subtle differences. Should consolidate to one canonical tool or clearly document when to use each.
No error handling guidance. When API calls fail, LLMs receive raw HTTP errors. Try search_users() first.'). Currently there is no such guidance.
Parameters with limited valid values lack enums. For example, create_source 'type' field accepts 'link', 'upload', or 'text' but has no enum constraint, only a bare description. Similarly, search 'type' field should enforce 'vector' or 'text' via JSON Schema enum, not just description.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) visible in the tool definitions. These annotations help agents reason about safety and side effects. DELETE tools should be marked destructive; READ-only tools should be marked as such.
No documented idempotency guarantees. Tools like create_notebook, create_source, create_note, create_model do not document whether repeated calls with the same input produce the same result or duplicate entries. Agents retry on failures, ambiguity risks duplicate side effects.