MCP server for DotAgents desktop application providing agent routing, delegation, task management, and shell command execution tools
Server has 7 tools with schemas and descriptions present, but significant quality gaps limit usability. Tool naming is generally verb-first and clear. Descriptions are adequate but often lack WHEN/WHY guidance and actionable recovery hints. All tools have documented input schemas with typed parameters. However, output schemas are not explicitly documented anywhere in the source, making downstream chaining difficult. Error handling is minimal, no guidance on retryability, user-fixable vs fatal, or recovery steps. The tools are well-intentioned (delegation, status checks, user interaction) but lack the polish and completeness expected of production-grade agent tools. Parameter validation is present but underdocumented. Security concerns: execute_command is a high-risk tool with no explicit sandboxing or permission gates mentioned. STDIO transport limits remoteness. Average per-tool score: 62.
Check the status of a delegated agent task. If runId is omitted, checks the most recent delegated run (or filters by agentName if provided). When the run is completed, the response includes the task and completed output on every poll.
Delegate a sub-task to a specialized ACP agent. The agent will work autonomously and return results. Use this when a task is better suited for a specialist.
Execute any shell command. This is the primary tool for filesystem operations, running scripts, and automation. Use for: searching files (rg/find), reading files in targeted ranges (wc/sed/head/tail/cat), editing files, listing directories (ls), creating directories (mkdir -p), git operations, package-manager/python/node commands, and any shell command. Respect the repo's lockfile/package-manager conventions: pnpm-lock.yaml => pnpm, package-lock.json => npm, yarn.lock => yarn, bun.lock/bun.lockb => bun. Prefer read-only inspection commands first for planning/context tasks. Only run package-manager install/test/build/lint/typecheck commands when the user explicitly asks for verification/package work, or when validating code changes you already made.
Signal explicit completion for the current task. Call this only when all requested work is actually finished and ready for final delivery.
Output schemas not documented. No tool explicitly documents what it returns or which fields are available for downstream chaining. Downstream agent calls cannot plan field extraction.
execute_command is extremely high-risk (IRREVERSIBLE with risk=WRITE) but lacks explicit permission gates, sandboxing notes, or audit trail documentation. No mention of role-based access control or command filtering.
Error handling completely absent across all tools. No guidance on retryability, user-fixable vs fatal errors, recovery steps, or invalid-input self-correction hints. LLM will not know what to do on failure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 60 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 38 | - | v1 |
Read a specific slice of earlier compacted context using a Context ref shown in truncated or summarized messages. Acts as a scoped document navigator over the full underlying payload (not just the inline excerpt). Start with mode='overview' to see what the ref covers and get suggested next calls. Use mode='search' for case-, punctuation-, and underscore-insensitive lookup; each match is labeled with matchType and includes an expandCall for fetching surrounding text. head/tail/window results include nextWindow/previousWindow hints so you can keep paging without guessing offsets.
Send a response through DotAgents' explicit delivery channel. Normal assistant text is valid for ordinary chat and simple final answers; use this tool when you specifically need voice/TTS or messaging-channel delivery semantics, or when sending images/videos. Provide at least one of: non-empty text, one/more images, or one/more videos.
Set or update the current session title. Use this once the task is clear, early enough to make the UI useful, or later if the conversation topic shifts. Keep the title short, specific, and ideally under 10 words.
Parameter descriptions lack actionable constraints. 'command' in execute_command says it accepts shell commands but does NOT specify allowed/forbidden commands, timeout defaults, or sandboxing rules. 'agentName' in delegate_to_agent lacks examples of valid agent names.
read_more_context has complex input semantics (mode='overview'|'head'|'tail'|'window'|'search' with different required fields per mode) but parameter relationships are not documented. LLM cannot infer which params apply to which mode.
Descriptions do not explain WHEN to call each tool or how they compose. E.g., mark_work_complete says 'Signal explicit completion' but does not say whether calling it is mandatory, what happens if omitted, or whether it triggers a response back to the user.