MCP server for Matrix chat protocol integration, enabling message management, room operations, and member management
Server has 9 tools with consistent naming (verb_noun pattern) and descriptions present for all. However, descriptions are generic and lack LLM-optimization guidance. Parameter schemas are present but lack depth, no enums for constrained inputs (e.g., visibility in create_room), no min/max bounds on numeric parameters, and limited guidance on format/constraints. Output schemas are not documented. Error handling is minimal, no recovery guidance or actionable error messages visible in tool definitions. Security concerns: no evidence of permission gates on destructive operations (send_message, create_room, invite_user, leave_room). Tool composition is reasonable but lacks pagination support for list_rooms and search_messages.
Create a new Matrix room with customizable options
Get recent messages from a Matrix room. Will refuse and explain if the room is encrypted.
Get the list of members in a Matrix room, including their display name and membership status
Invite a user to a Matrix room
Join a Matrix room by its ID or alias
Leave a Matrix room by its ID
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., roomId from create_room, eventId from send_message). Responses are inferred from test code but not formally specified in tool definitions.
Constrained inputs lack enums. create_room visibility accepts 'public' or 'private' but is defined as free-form string, not enum. LLMs may hallucinate invalid values like 'unlisted' or 'protected'.
No pagination support. list_rooms and search_messages lack limit/offset or cursor parameters. Large result sets will blow context window and degrade LLM reasoning.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
List all Matrix rooms you are a member of, showing which are readable vs encrypted
Search for a keyword or phrase across all unencrypted Matrix rooms you are in
Send a message to a Matrix room. Supports optional HTML formatting via formattedBody.
Destructive operations (send_message, create_room, invite_user, leave_room) lack permission gates or confirmation steps. No evidence of access control checks in tool definitions. Agents can execute irreversible actions without safeguards.
Error handling is implicit. Tool descriptions mention 'will refuse and explain if encrypted' (get_messages) but no structured error response format is documented. LLMs cannot distinguish retryable vs fatal errors.