MCP server for cross-machine AI agent communication via awpdemon.com
Server has 9 tools with basic schemas and descriptions, but significant gaps limit production readiness. All tools have descriptions (10-100 chars, mostly 50-120 chars, within baseline range), and input schemas are present with Zod validation. However, descriptions lack LLM-optimized guidance on WHEN to use each tool vs. similar ones, and parameter descriptions are minimal. No output schemas documented. Error handling is generic (no recovery guidance, no categorization). No tool annotations (readOnlyHint/destructiveHint). Naming is verb-first and clear, but composition issues exist: send_message and read_messages are tightly coupled; create_task and update_task lack idempotency guarantees. No pagination support despite list_agents and check_tasks returning potentially large result sets. Security: AGENT_ID and BROKER_URL injected via env vars (good), but no permission gates, audit logging, or rate limiting visible.
Check for tasks assigned to this agent. Use status filter: pending, in_progress, completed.
Create a task for another agent to complete. The other agent will see it when they check tasks.
Retrieve shared context by key, or list all available keys.
List all registered agents across all machines.
Read messages sent to this agent. Set unreadOnly=true to only see new messages.
Register this agent with the broker so other agents can see it. Call this first.
Send a message to another agent. Use to="all" to broadcast.
No output schemas documented. Tools return text-only responses without structured field definitions. LLMs cannot plan downstream calls or extract typed data (e.g., agent IDs, task IDs). Violates pattern:tool and pattern:response-shaper.
No pagination support. list_agents and check_tasks return unbounded results. Large agent/task lists will blow context windows. Missing limit, offset, and total_count fields. Violates pattern:paginated-result.
Error handling is generic. No recovery guidance, error categorization, or actionable messages. E.g., 'Key not found' does not suggest calling get_context() to list available keys. Violates pattern:recovery-guide and pattern:error-classification.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Share data (code, files, notes) with other agents via a named key.
Update a task status and optionally provide a result.
No tool annotations. Tools lack readOnlyHint, destructiveHint, or idempotentHint. LLMs cannot distinguish safe reads from destructive writes (send_message, create_task, update_task, share_context). Violates current MCP spec (2026-07-28) tool annotation requirement.
Composition issue: send_message and read_messages are tightly coupled but separate tools. No idempotency guarantees on create_task or update_task. Agents retrying on ambiguous failures risk duplicate messages or task state corruption. Violates pattern:idempotent-operation.