MCP server exposing the full Manus API v2 surface to Claude Code
Three tools with complete input/output schemas and descriptions. Naming follows verb_noun pattern (list, get, clear). Descriptions are adequate (80-180 chars) but lack actionable context for LLM selection. Parameters are typed and constrained (enums, patterns, min/max), but descriptions are minimal or missing for some fields. Output schemas are documented via Pydantic models. Error handling is absent, no recovery guidance or actionable error messages. Security concern: manus_webhook_events_clear is destructive but lacks confirmation/dry-run pattern.
Delete webhook events from the local store. Provide any combination of filters; no filters = delete everything.
Fetch a single webhook event by event_id.
List webhook events received by the local webhook receiver. Filter by event_type ('task_created' / 'task_stopped') and/or task_id. Requires the webhook receiver to be running (see manus-mcp-webhook).
Destructive tool lacks confirmation/dry-run pattern. manus_webhook_events_clear deletes data with no undo mechanism or confirmation step. Agents can accidentally wipe all events.
No error handling or recovery guidance. Tools do not document what happens on failure (e.g., webhook receiver not running, invalid event_id, storage errors). LLM has no guidance on retry or fallback.
Parameter descriptions are minimal or absent. 'event_type' and 'task_id' in list tool lack descriptions explaining valid values or format. 'order' parameter description does not explain what field is sorted.
Tool descriptions lack context for LLM selection. 'List webhook events' does not explain when to use this vs get, or what webhook events are. Descriptions should answer: what does it do, when to use it, what does it return.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | <=2025-11-25 | v2 |
No pagination guidance in list tool. Accepts limit (1-500) but no documentation of default behavior when limit is omitted, or how to iterate through large result sets. Response includes count but no next_cursor or offset.