MCP server providing knowledge document search, automation record management, and Notion synchronization capabilities with OAuth2 support and tenant isolation
Server has 6 tools with explicit schemas and descriptions. Naming follows verb_noun convention (search_, capture_, list_, update_, run_, get_). Descriptions are present but vary in quality (72-180 chars). All tools have typed input schemas with parameter descriptions. However, output schemas are not documented in the source, parameter constraints lack depth, and error handling guidance is minimal. No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications. Composition is reasonable but some tools combine multiple concerns (capture_conversation does classification + storage).
Capture and classify conversation messages into automation records (tasks, research, knowledge, incidents, etc.) with optional AI-powered classification
Retrieve the knowledge search widget HTML bundle for embedding in UI
List automation records with optional filtering by type, status, and search query
Process pending follow-up jobs scheduled for automation records
Search knowledge documents by query with optional tenant scoping and result limiting
Update the status of an automation record and optionally add a note
Output schemas not documented. Tools return results but LLMs cannot plan downstream calls without knowing response structure (e.g., what fields does search_knowledge return? Does list_records include pagination cursors?). Baseline: 100% of A+ tools document return types.
Tool annotations missing. capture_conversation and update_record_status are WRITE operations; run_follow_ups is WRITE. No destructiveHint or idempotentHint annotations present. Agents cannot distinguish safe-to-retry from irreversible operations.
capture_conversation combines classification + storage. Description says 'Capture and classify', two concerns. Should split into capture_conversation (storage) + classify_conversation (optional AI step) so agent can compose independently.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Parameter constraints lack depth. 'limit' params have no min/max bounds stated in descriptions (e.g., list_records says 'default 20, max 100' but run_follow_ups says 'default 20, max 100', inconsistent). No regex patterns for string IDs. Baseline: 94% of A+ tools include format/range guidance.
Error handling guidance absent. No recovery hints in tool descriptions (e.g., 'If search returns no results, try broader query' or 'If capture fails due to invalid provider, check OPENAI_API_KEY'). Baseline: pattern:recovery-guide requires actionable error messages.