matrix-mcp-server
About
MCP Server for a Matrix home server integration; chat, manage rooms, etc.
Details
- License
- MIT
Explore
- π OAuth 2.0 Authentication with token exchange support
- π± 15 Matrix Tools organized by functionality tiers
- π Multi-homeserver Support with configurable endpoints
- π Real-time Operations with ephemeral client management
- π Production Ready with comprehensive error handling
- π Rich Responses with detailed Matrix data
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
matrix-mcp-serverCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Prerequisites
- Node.js 20+ and npm
- Matrix homeserver access (Synapse, Dendrite, etc.)
- MCP client (Claude Desktop, VS Code with MCP extension, etc.)
roomId
(string): Matrix room ID (e.g., `!roomid:domain.com`)
limit
(number, default: 20): Maximum messages to retrieve
startDate
(string): ISO 8601 format (e.g., `2024-01-01T00:00:00Z`)
endDate
(string): ISO 8601 format
targetUserId
(string): Target user's Matrix ID (e.g., `@user:domain.com`)
searchTerm
(string, optional): Filter by name or topic
server
(string, optional): Specific server to search
roomFilter
(string, optional): Specific room ID to check
includeEmpty
(boolean, default: false): Include DMs with no recent messages
message
(string): Message content
messageType
(enum: "text" | "html" | "emote", default: "text"): Message formatting
replyToEventId
(string, optional): Event ID to reply to
roomName
(string): Name for the new room
isPrivate
(boolean, default: false): Room privacy setting
topic
(string, optional): Room topic/description
inviteUsers
(array, optional): User IDs to invite initially
roomAlias
(string, optional): Human-readable room alias
roomIdOrAlias
(string): Room ID or alias to join
reason
(string, optional): Reason for leaving
- list-joined-rooms - Get all rooms the user has joined
- _No parameters required_
- Returns room names, IDs, and member counts
- get-room-info - Get detailed room information
- roomId (string): Matrix room ID (e.g., !roomid:domain.com)
- Returns name, topic, settings, creator, and member count
- get-room-members - List all members in a room
- roomId (string): Matrix room ID
- Returns display names and user IDs of joined members
- get-room-messages - Retrieve recent messages from a room
- roomId (string): Matrix room ID
- limit (number, default: 20): Maximum messages to retrieve
- Returns formatted message content including text and images
- get-messages-by-date - Filter messages by date range
- roomId (string): Matrix room ID
- startDate (string): ISO 8601 format (e.g., 2024-01-01T00:00:00Z)
- endDate (string): ISO 8601 format
- Returns messages within the specified timeframe
- identify-active-users - Find most active users by message count
- roomId (string): Matrix room ID
- limit (number, default: 10): Maximum users to return
- Returns users ranked by message activity
- get-user-profile - Get profile information for any user
- targetUserId (string): Target user's Matrix ID (e.g., @user:domain.com)
- Returns display name, avatar, presence, and shared rooms
- get-my-profile - Get your own profile information
- _No parameters required_
- Returns your profile, device info, and room statistics
- get-all-users - List all users known to your client
- _No parameters required_
- Returns display names and user IDs from client cache
- search-public-rooms - Discover public rooms to join
- searchTerm (string, optional): Filter by name or topic
- server (string, optional): Specific server to search
- limit (number, default: 20): Maximum rooms to return
- Returns room details, topics, and member counts
- get-notification-counts - Check unread messages and mentions
- roomFilter (string, optional): Specific room ID to check
- Returns unread counts, mentions, and recent activity
- get-direct-messages - List all DM conversations
- includeEmpty (boolean, default: false): Include DMs with no recent messages
- Returns DM partners, last messages, and unread status
- send-message - Send messages to rooms
- roomId (string): Matrix room ID
- message (string): Message content
- messageType (enum: "text" | "html" | "emote", default: "text"): Message formatting
- replyToEventId (string, optional): Event ID to reply to
- Supports plain text, HTML formatting, and emote actions
- send-direct-message - Send private messages to users
- targetUserId (string): Target user's Matrix ID
- message (string): Message content
- Automatically creates DM rooms if needed
- create-room - Create new Matrix rooms
- roomName (string): Name for the new room
- isPrivate (boolean, default: false): Room privacy setting
- topic (string, optional): Room topic/description
- inviteUsers (array, optional): User IDs to invite initially
- roomAlias (string, optional): Human-readable room alias
- Creates rooms with appropriate security settings
- join-room - Join rooms by ID or alias
- roomIdOrAlias (string): Room ID or alias to join
- Works with invitations and public rooms
- leave-room - Leave Matrix rooms
- roomId (string): Room ID to leave
- reason (string, optional): Reason for leaving
- Cleanly exits rooms with optional reason
- invite-user - Invite users to rooms
- roomId (string): Room to invite user to
- targetUserId (string): User ID to invite
- Respects room permissions and power levels
- set-room-name - Update room display names
- roomId (string): Room to modify
- roomName (string): New room name
- Requires appropriate room permissions
- set-room-topic - Update room topics/descriptions
- roomId (string): Room to modify
- topic (string): New room topic
- Requires appropriate room permissions
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"matrix-mcp-server": {
"matrix-mcp-server": {
"command": "npx",
"args": [
"@modelcontextprotocol/inspector"
]
}
}
}
}
McpServers
{
"matrix-mcp-server": {
"command": "npx",
"args": [
"@modelcontextprotocol/inspector"
]
}
}
A comprehensive Model Context Protocol (MCP) server that provides secure access to Matrix homeserver functionality. Built with TypeScript, this server enables MCP clients to interact with Matrix rooms, messages, users, and more through a standardized interface.
Features
- π OAuth 2.0 Authentication with token exchange support
- π± 15 Matrix Tools organized by functionality tiers
- π Multi-homeserver Support with configurable endpoints
- π Real-time Operations with ephemeral client management
- π Production Ready with comprehensive error handling
- π Rich Responses with detailed Matrix data
Quick Start
Prerequisites
- Node.js 20+ and npm
- Matrix homeserver access (Synapse, Dendrite, etc.)
- MCP client (Claude Desktop, VS Code with MCP extension, etc.)
Installation
```bash
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



