A Matrix MCP server for connecting coding agents to Matrix and MindRoom conversations.
Project description
Matrix MCP
Local-first Matrix access for MCP clients.
Matrix MCP lets Claude Code and other MCP clients read and write Matrix rooms. It is intended to make MindRoom conversations available to local coding agents without giving hosted agents access to the local filesystem.
Install
uv tool install matrix-mcp
For local development:
uv sync --extra dev
Login
Matrix SSO:
matrix-mcp auth sso https://matrix.example.com
If the homeserver advertises multiple SSO providers, list their provider IDs:
matrix-mcp auth providers https://matrix.example.com
Then pass the provider ID explicitly:
matrix-mcp auth sso https://matrix.example.com --idp-id github
If your homeserver is behind an access gateway that requires extra request headers, pass them during login. They are stored with the Matrix credentials and reused by MCP tools:
matrix-mcp auth sso https://matrix.example.com \
--header "X-Access-Client-Id: ..." \
--header "X-Access-Client-Secret: ..."
If the gateway header is short-lived, store a command that prints the current header value instead. The command is re-run when Matrix MCP creates a client for tool calls:
matrix-mcp auth sso https://matrix.example.com \
--header-command "X-Access-Token: access-gateway-cli token --app https://matrix.example.com"
Existing Matrix access token:
matrix-mcp auth token https://matrix.example.com @alice:example.com "$MATRIX_ACCESS_TOKEN" --device-id DEVICEID
Password auth, when enabled by the homeserver:
matrix-mcp auth password https://matrix.example.com @alice:example.com
Credentials are stored in the user config directory reported by:
matrix-mcp config-path
Remove stored credentials:
matrix-mcp auth logout
Claude Code
Add the local MCP server:
claude mcp add matrix -- matrix-mcp serve
The server runs over stdio. It does not expose a local HTTP port during normal MCP operation.
Tools
matrix_whoami: show the configured Matrix user/device.matrix_list_rooms: list rooms joined by the authenticated user.matrix_read_room_recent: read recent text events from a room.matrix_read_thread: read a Matrix thread root and its recent text replies.matrix_send_message: send a text message or local file, optionally as a Matrix thread reply.
Rooms and events returned by read/list tools include stable numeric id fields.
Thread replies also include thread_ref, which is the numeric event ref of the thread root.
Use these integers in later tool calls instead of copying raw Matrix IDs:
matrix_read_room_recent(room_id=1)
matrix_read_thread(room_id=1, thread_id=42)
matrix_send_message(room_id=1, body="reply", thread_id=42)
The tool instructions tell clients to prefer read tools first and only send messages when the user explicitly asks.
Development
uv run --extra dev pytest
uv run --extra dev ruff check .
uv run --extra dev ruff format --check .
uv run --extra dev mypy src tests
uv run --extra dev ty check
uv build
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file matrix_mcp-0.4.2.tar.gz.
File metadata
- Download URL: matrix_mcp-0.4.2.tar.gz
- Upload date:
- Size: 150.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fa658d7eb5f47b86c84f9381b11b5bf7e9b6a182009583776aa2ed8c713a044c
|
|
| MD5 |
ad514c1131e46d10f857f16abe47d226
|
|
| BLAKE2b-256 |
a61ac7b5c5ddbe027ceb9c9476abe68b44db6a369f38922aaf20fecba021b723
|
Provenance
The following attestation bundles were made for matrix_mcp-0.4.2.tar.gz:
Publisher:
release.yml on mindroom-ai/matrix-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
matrix_mcp-0.4.2.tar.gz -
Subject digest:
fa658d7eb5f47b86c84f9381b11b5bf7e9b6a182009583776aa2ed8c713a044c - Sigstore transparency entry: 1441164650
- Sigstore integration time:
-
Permalink:
mindroom-ai/matrix-mcp@05191f5dc7c3121d0443d47081561b8ec3f863d3 -
Branch / Tag:
refs/tags/v0.4.2 - Owner: https://github.com/mindroom-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@05191f5dc7c3121d0443d47081561b8ec3f863d3 -
Trigger Event:
release
-
Statement type:
File details
Details for the file matrix_mcp-0.4.2-py3-none-any.whl.
File metadata
- Download URL: matrix_mcp-0.4.2-py3-none-any.whl
- Upload date:
- Size: 15.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69a96bd5fb0d545a18c2fe29f29acb6004176aad44e53b09bca028625b678065
|
|
| MD5 |
38556a29f6de08f392f117cfc7f21782
|
|
| BLAKE2b-256 |
acbfc428c9b29a94456add4e7a7c1807e42602912b81d1bcf1e11f56acc33530
|
Provenance
The following attestation bundles were made for matrix_mcp-0.4.2-py3-none-any.whl:
Publisher:
release.yml on mindroom-ai/matrix-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
matrix_mcp-0.4.2-py3-none-any.whl -
Subject digest:
69a96bd5fb0d545a18c2fe29f29acb6004176aad44e53b09bca028625b678065 - Sigstore transparency entry: 1441164712
- Sigstore integration time:
-
Permalink:
mindroom-ai/matrix-mcp@05191f5dc7c3121d0443d47081561b8ec3f863d3 -
Branch / Tag:
refs/tags/v0.4.2 - Owner: https://github.com/mindroom-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@05191f5dc7c3121d0443d47081561b8ec3f863d3 -
Trigger Event:
release
-
Statement type: