MCP server composition and orchestration platform with dashboard, task scheduling, and system management tools
mcp-compose defines 15 tools with complete input schemas and descriptions. However, quality varies significantly across tools. Naming follows verb_noun convention (task_scheduler_*, server_*) which is good. Descriptions range from adequate (50-100 chars) to excellent (task_scheduler_create_task at 289 chars). Most parameters have type definitions and descriptions, meeting baseline for C/B grade. Key gaps: (1) no output schemas documented for any tool, forcing LLMs to infer response structure; (2) descriptions lack specific context about when to use each tool vs alternatives (e.g., when to call server_restart vs server_stop+server_start); (3) error handling guidance absent, tools describe what they do but not what failures look like or how to recover; (4) no examples of parameter constraints or validation feedback. The task_scheduler tools are stronger (especially task_scheduler_create_task with detailed param descriptions) vs system tools which are more generic.
List all MCP servers and their current status
Get recent logs from a specific MCP server
Restart a specific MCP server
Start a specific MCP server
Stop a specific MCP server
Create a scheduled task that runs automatically at specified intervals. The task output will appear in this chat conversation. Use this when the user wants something done repeatedly, at specific times, or wants to set up an autonomous agent. Tasks inherit this session's AI provider, model, and MCP server access.
No output/response schemas documented for any tool. LLMs cannot infer what fields to expect in responses, forcing ad-hoc parsing and risking context loss when chaining tools.
Error handling guidance absent. Tool descriptions do not explain what failures look like, which errors are retryable, or how to recover. E.g., server_start does not describe: What happens if the server is already running? Does it return an error or succeed idempotently?
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 64 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 23 | - | v1 |
Permanently delete a scheduled task. This cannot be undone.
Get detailed information about a specific task, including recent execution history
List all scheduled tasks associated with this chat session. Shows task status, schedule, and last execution time.
Pause a scheduled task. The task will stop running but remain configured for later resumption.
Resume a paused task. It will start running on its configured schedule.
Start the task scheduler service
Get the current status of the task scheduler service
Stop the task scheduler service
Update the schedule, provider, and model of an existing task
Descriptions lack context about when to use each tool vs alternatives. E.g., server_restart vs (server_stop + server_start), what's the difference? When should an LLM choose one over the other? This forces the LLM to guess.
No idempotency hints or confirmation patterns for destructive operations. task_scheduler_delete_task and server_stop are irreversible but have no dry-run or confirmation step. Agents could accidentally execute destructive operations.
Missing per-tool annotation hints (readOnlyHint, destructiveHint, idempotentHint). Agents cannot determine from metadata which tools are safe to retry, which modify state, or which are read-only. This is especially important for write and destructive operations.
task_scheduler_create_task and task_scheduler_update_schedule have optional required fields with unclear semantics. task_scheduler_create_task requires 'name', 'task_type', 'schedule' but NOT 'prompt' or 'command', yet the description says 'For AI tasks: the instruction/prompt' and 'For shell tasks: the bash command'. It's unclear whether prompt/command become required based on task_type value. This dependency is undocumented.