Enables AI personas to communicate directly with other node personas in real-time. Provides tools for sending chat messages to other nodes, viewing conversation history, managing active conversations, and real-time inter-node AI communication.
Node Chat MCP has reasonable naming conventions (verb_noun pattern) and some tools with adequate descriptions, but significant gaps in schema completeness, parameter documentation, and error handling. 5 of 7 tools have descriptions, but many lack detailed parameter descriptions and output schema documentation. The enum for cluster node IDs is dynamic (CLUSTER_NODE_IDS), which is good, but parameter type definitions are incomplete. No explicit error handling guidance or recovery patterns visible. Output schemas are entirely undocumented, LLMs cannot plan downstream calls or extract required data. Tools operate on a well-scoped domain (inter-node communication) but lack the rigor expected for production agentic use.
Send a message to all nodes in the cluster. Use for announcements, status updates, or cluster-wide coordination. Messages delivered to all nodes except self.
Check if other nodes have sent messages to this node. Returns unread messages from other node personas. Use this periodically to stay responsive to cluster communication.
Get awareness of the entire cluster state, including other nodes' status and capabilities.
Get chat history with another node. View past conversations to maintain context and continuity. Returns messages in chronological order with timestamps.
Get all active conversations this node is participating in. Shows ongoing chats with other nodes, message counts, and last activity. Useful for maintaining awareness of cluster communication state.
Get complete self-awareness of this node's identity, capabilities, and current state. Returns: - Node identity and role - Current environmental status (CPU, memory, storage, health) - Capabilities and specialties - Situational awareness (cluster state, active tasks, communications) Use this to understand your own current state and capabilities.
Output schemas entirely undocumented. No tool specifies what fields are returned, their types, or how to chain results to downstream calls. LLMs cannot plan multi-step workflows or extract IDs needed for follow-up actions.
Parameter descriptions incomplete or absent. 'mark_as_read' in check_for_new_messages has a description, but 'with_node' and 'limit' in get_conversation_history lack detail on expected format or constraints. Parameters like 'priority' in broadcast_to_cluster document the enum but not why priority matters or typical values.
Tool descriptions for 'get_my_awareness' and 'get_cluster_awareness' are vague. 'Get awareness of the entire cluster state, including other nodes' status and capabilities' does not explain WHEN to call this vs other discovery tools, WHAT structure is returned, or what the agent should do with the result.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 58 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 50 | - | v1 |
Send a chat message to another node's AI persona. Use this to communicate directly with other nodes in the cluster. Messages are delivered via multiple channels (HTTP, database, file) for reliability. Example: Send strategic coordination to orchestrator, request analysis from researcher, or notify builder of compilation tasks.
No error handling documentation. Tools accept user-supplied node IDs and messages but no visible validation, error responses, or recovery guidance. If 'to_node' is invalid or a message fails to deliver, LLM receives no actionable error, no retry guidance, no list of valid node IDs, no fallback.
Dynamic enum CLUSTER_NODE_IDS is runtime-computed from configuration. While flexible, the description does not explain what values are populated or how an LLM can discover them. If the enum is empty or misconfigured, LLM receives no guidance.
Pagination and result limits undocumented. get_conversation_history accepts a 'limit' parameter (default 50) but does not document max values, offset support, or whether more results are available. get_my_active_conversations does not mention pagination at all, no way for LLM to page through large conversation lists.