Multi-plugin MCP server repository with tools for knowledge management, OmniFocus automation, marketplace management, and AI risk analysis
This MCP server has only 2 tools, both from an attache-analyst plugin. Both tools are visible in source with schemas and descriptions. However, the descriptions are excessively long (far beyond the 194-char baseline average), parameter descriptions lack clarity about constraints and type validation, and there is no visible evidence of proper error handling, recovery guidance, or confirmation patterns for state-modifying operations. The tools appear to be UI/form manipulation helpers (confirmApply, anyAccepted) rather than substantive agent tools with the expected breadth of functionality. Tool naming is reasonable but descriptions are verbose and lack the concise, LLM-optimized style preferred by production tools.
Convenience function: returns true iff at least one key in the apply map is true. Useful for the caller's 'user accepted nothing, skip dispatch' guard
Show a per-item confirmation Form with per-change checkboxes. Returns immediately with cancelled=true if the proposal has no changes. Otherwise renders a Form whose checkbox values become the boolean entries in decision.apply.
Descriptions are excessively verbose (100+ chars each) and lack LLM-optimized concision. 'Show a per-item confirmation Form with per-change checkboxes. Returns immediately with cancelled=true if the proposal has no changes...' is nearly 200 chars and buries the core intent.
Parameter 'changes' in confirmApply has array items with nested object properties (key, label, enabled) but the 'enabled' property description lacks guidance on what happens when it defaults, is 'enabled: false' respected, or does it default to true unconditionally?
No error handling or recovery guidance visible. What happens if 'changes' is an empty array or null? What error messages are returned if the form is cancelled? How should the LLM handle a user rejection?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 41 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 23 | - | v1 |
Parameter descriptions are minimal or missing context. 'Stable key returned in decision.apply map' assumes the LLM knows what decision.apply is; no explanation of the return type structure or how this key is used downstream.
Tool naming is simple but the semantic relationship between confirmApply and anyAcceeded is not discoverable. These are form/UI helpers, not actions on a domain resource. No business context explaining when an agent would invoke these.