A local-first workspace for chat, private knowledge, artifacts, and isolated model-driven work with integrated tool server support
Four tools with clear verb-noun naming (web_search, search_documents, list_documents, read_document) and reasonable descriptions (60-120 chars). All tools have input schemas with required fields and type definitions. However, parameter descriptions are minimal or absent in several cases, and output schemas are not documented. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all being read-only operations. Error handling guidance is absent. Schemas are present but lack depth, no pagination support documented, no field-level descriptions in responses.
List the documents available to this chat: its uploads, attached knowledge collections, and standing uploads. Returns ids for read_document.
Read part of an available document by id. Returns up to 8000 characters from the requested offset with its source location.
Search the user's uploaded documents and knowledge collections; returns matching passages with their source document.
Search the web and return result titles, URLs, and snippets. Use for current events or facts outside the conversation.
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields (e.g., does web_search return 'url' or 'link'? Does list_documents return 'document_id' or 'id'?). Forces agents to guess field names.
Parameter descriptions incomplete or missing. 'max_results' and 'limit' lack guidance on valid ranges, defaults, or behavior when exceeded. 'offset' in read_document lacks description entirely.
No tool annotations despite all four tools being read-only. Missing readOnlyHint would help agents understand these are safe to call without side effects.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | 2026-07-28+ | v2 |
No error handling guidance. Tools lack descriptions of failure modes (e.g., 'If document not found, returns error code X. Try list_documents() first.'). Agents cannot recover from failures.
Pagination not documented. search_documents and web_search likely return truncated results but lack limit/offset/cursor parameters or total_count in response. Large result sets risk context window exhaustion.