MCP server for receiving and sending Signal messages. Allows Claude to communicate via Signal messenger through a linked device.
Signal Channel is a two-tool STDIO server with moderate definition quality. Both tools (reply, send) have clear action verb naming and are properly described. However, critical gaps exist: (1) reply's input schema lacks descriptions for the 'recipient' parameter (phone number format, validation requirements not specified), (2) send's description is functional but verbose and includes implementation detail ('No phone number needed') that could confuse LLMs about when to use reply vs send, (3) no output schemas are documented for either tool, LLMs cannot plan downstream actions or understand what data is returned, (4) no error handling guidance, LLMs will have no recovery path if a message fails to send. The parameter schemas themselves are present and typed (string types are visible), which prevents a lower score, but the lack of parameter descriptions and missing output documentation are critical gaps for production readiness.
Send a Signal message back to a sender
Send a Signal message to the channel owner's phone. Use this when the user asks to send a message to their phone or to Signal. No phone number needed.
Missing parameter descriptions: 'recipient' in reply tool has no guidance on format (phone number, international format, etc.) or validation rules. LLMs cannot infer whether to pass '+1-555-0123', '5550123', or a Signal username.
No output schemas documented for either tool. LLMs cannot determine what data is returned from send or reply (success boolean? message ID? delivery status? timestamp?). This blocks downstream tool chaining and forces LLMs to guess.
No error handling guidance. Tools are marked with WRITE risk but provide no recovery hints if message delivery fails (network down, invalid recipient, Signal service error). LLMs have no actionable next step on failure.
send tool description includes implementation detail 'No phone number needed' which is confusing. The distinction between send and reply should be clarified by explaining when each is appropriate (send = to owner, reply = to a specific sender from the allowlist).
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | <=2025-11-25 | v2 |
Parameter 'recipient' in reply tool has no format constraint or description. A regex pattern (e.g. '^\+?[1-9]\d{1,14}$' for E.164 format) or explicit format guidance in the description is needed to prevent LLMs from passing invalid phone numbers.