MCP server for Manus API - Create AI tasks and manage webhooks
The server defines 3 tools with explicit JSON schemas and basic descriptions. All tools have input schemas visible in the code with typed properties and required field declarations. Naming follows verb_noun convention (create_task, create_webhook, delete_webhook). However, descriptions are minimal (34-67 chars), parameter descriptions are sparse or missing, output schemas are undocumented, and error handling lacks recovery guidance. Schemas are present but lack depth in field constraints and validation rules. No tool annotations (destructiveHint, readOnlyHint, idempotentHint) despite delete_webhook being destructive.
Create a new AI task in Manus. Returns task_id, task_title, task_url, and optionally a shareable link.
Register a new webhook to receive real-time notifications from Manus. Returns webhook details.
Remove a previously registered webhook by its ID.
Descriptions are below recommended 50-200 char baseline and lack context for LLM tool selection. 'Create a new AI task in Manus. Returns task_id, task_title, task_url, and optionally a shareable link.' (67 chars) does not explain WHEN to use it or typical use cases.
Parameter descriptions are missing or extremely terse. 'attachments' lacks description of expected structure. 'events' in create_webhook has no guidance on valid event types (what events can be subscribed to?). 'connectors' is vague: 'List of connector IDs to enable for this task (only pre-configured connectors)', what connectors are available?
Output schemas are completely undocumented. LLM has no visibility into what fields create_task returns ('task_id', 'task_title', 'task_url', 'shareable_link', 'created_at'?). Tools downstream cannot be chained without guessing output structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 50 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 48 | - | v1 |
delete_webhook is destructive but has no confirmation pattern, dry-run option, or tool annotation (destructiveHint). Agents cannot reason about irreversibility.
Error handling returns raw API errors ('Manus API error (404): ...' or stack trace strings) without recovery guidance. LLM cannot determine if the error is retryable, user-fixable, or fatal, or what corrective action to take.
API_KEY is injected via environment variable but validated inside tool handlers. If missing, error is returned mid-execution rather than failing fast at server init. This wastes an LLM call and delays user feedback.
No pagination, result limits, or output pruning documented. If Manus API returns large response payloads, the tool will serialize and return entire JSON, potentially exhausting context window.
Parameter 'mode' in create_task uses enum ['speed', 'quality'] but no description explains the tradeoff or when to choose each. LLM must guess or pick randomly.