matrix-mcp-server
@guan-tends/matrix-mcp-server
Ein eigenständiger MCP-Toolserver (Model Context Protocol), der Matrix-Chat-Operationen als aufrufbare Tools bereitstellt. Jeder MCP-kompatible Client – KI-Agenten, Automatisierungspipelines, Entwicklerwerkzeuge – kann diese Tools nutzen, um Nachrichten zu senden, Räume zu verwalten, Namen aufzulösen und mit dem Matrix-Protokoll zu interagieren.
Basiert auf @vector-im/matrix-bot-sdk mit vollständiger E2EE-Unterstützung (Ende-zu-Ende-Verschlüsselung).
Funktionen
15 MCP-Tools – Nachrichtenübermittlung, Raumverwaltung, Benutzerverwaltung und intelligente ID-Auflösung
E2EE-Unterstützung – Vollständige Megolm-Verschlüsselung über das Rust-Krypto-Backend
Benutzerfreundliche Namensauflösung – Räume und Benutzer per Name referenzieren, nicht über undurchsichtige IDs
Alias-System – Dem Server benutzerdefinierte Verknüpfungen beibringen (z. B.
"eng"→"!abc123:matrix.org")Eigenständiger HTTP-Server – Läuft unabhängig, verbinden Sie jeden MCP-Client über HTTP
Kein Cron, kein LLM – Reiner Toolserver. Planung und Intelligenz liegen in der Agentenebene
Related MCP server: ottoauthMCP
Installation
npm install @guan-tends/matrix-mcp-serverVoraussetzungen
Node.js >= 22.0.0
Ein Matrix-Konto mit einem Zugriffstoken
Schnellstart
1. Klonen und konfigurieren
git clone https://github.com/guan-tends/matrix-mcp-server.git
cd matrix-mcp-server
npm install
cp config.example.json5 config.json5Bearbeiten Sie config.json5 mit Ihren Matrix-Anmeldedaten:
{
homeserverUrl: "https://matrix.org",
accessToken: "syt_...",
serverName: "matrix.org",
port: 3456,
host: "0.0.0.0",
storePath: "./data/store.json",
cryptoPath: "./data/crypto",
}2. Ausführen
npm startDer Server lauscht auf http://0.0.0.0:3456 und akzeptiert MCP-Protokollanfragen über HTTP.
3. MCP-Client verbinden
Richten Sie einen beliebigen MCP-kompatiblen Client auf den Server aus:
{
"mcpServers": {
"matrix": {
"url": "http://localhost:3456"
}
}
}Oder verwenden Sie den @guan-tends/mcp-ai-Aggregator für die Multi-Server-Toolkomposition.
Konfiguration
Dateibasiert
Bearbeiten Sie config.json5 (siehe config.example.json5 für alle Optionen).
Umgebungsvariablen
Alle Konfigurationswerte können über Umgebungsvariablen gesetzt werden (höchste Priorität):
Variable | Konfigurationsschlüssel |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Tools (15)
Nachrichtenübermittlung
Tool | Beschreibung |
| Text an einen Raum senden (per ID oder aufgelöstem Namen) |
| HTML-formatierte Nachricht senden |
| Auf eine Nachricht mit Emoji reagieren |
| Direktnachricht senden (erstellt bei Bedarf verschlüsselte DM) |
Raumverwaltung
Tool | Beschreibung |
| Einem Raum per ID oder Alias beitreten |
| Einen Raum verlassen |
| Alle beigetretenen Räume auflisten |
| Aktuelle Nachrichten aus einem Raum abrufen |
Benutzerverwaltung
Tool | Beschreibung |
| Präsenzstatus für einen Benutzer abrufen |
| Einen Benutzer zu einem Raum einladen |
| Einen Benutzer aus einem Raum entfernen |
ID-Auflösung
Tool | Beschreibung |
| Dem Server einen Raum-Alias beibringen (z. B. |
| Dem Server einen Benutzer-Alias beibringen (z. B. |
| Einen Raumnamen in seine Matrix-ID mit Konfidenzwert auflösen |
| Einen Benutzernamen in seine Matrix-ID mit Konfidenzwert auflösen |
Auflösungsstrategie
Der Resolver verwendet einen hybriden Ansatz mit Konfidenzbewertung:
Benutzer-Aliase (Konfidenz: 1.0) – Benutzerdefinierte Zuordnungen
Exakte Übereinstimmung (Konfidenz: 0.9) – Exakter Anzeigename oder kanonischer Alias
Teilweise Übereinstimmung (Konfidenz: 0.7) – Teilweise Namensübereinstimmung
Mehrdeutigkeit (Konfidenz: 0.5) – Mehrere Übereinstimmungen, gibt Kandidaten zurück
Architektur
┌─────────────────────────┐
│ index.js │
│ (composition root) │
└──────────┬──────────────┘
│ wires
┌────────────────┼────────────────┐
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ MatrixClient │ │ AliasStore │ │ McpDataStore │
│ (bot-sdk) │ │ (aliases) │ │ (DM cache) │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ │ │
└────────┬────────┘ │
▼ │
┌──────────────────┐ │
│ MatrixIdResolver │◄────────────────┘
└────────┬─────────┘
│
▼
┌──────────────────┐
│ mcp-server.js │── MCP SDK SimpleServer
│ (15 tools) │── HTTP transport
└──────────────────┘Composition-Root-IoC: index.js verdrahtet alle Abhängigkeiten. Kein Modul importiert die Abhängigkeiten eines anderen. Jedes Modul ist unabhängig testbar.
Designentscheidungen
Composition-Root-IoC –
index.jsverdrahtet alle Abhängigkeiten. Module importieren sich nicht gegenseitig.Minimaler AliasStore – Nur 4 Methoden für die Raum-/Benutzer-Aliasverwaltung erforderlich.
Einfache JSON-Persistenz –
persist.jsübernimmt Laden/Speichern. Zwei Datendateien.withErrorHandling-Wrapper – DRY-Prinzip für das wiederholte try/catch in jedem Tool.Kein Cron, kein LLM, kein Bot – Reiner MCP-Toolserver. Agenten übernehmen ihre eigene Planung.
Testen
# All tests (unit + E2E)
npm test
# Watch mode
npm run test:watch
# With coverage
npm run test:coverage65 Tests in 6 Dateien (5 Unit, 1 E2E).
Projektstruktur
src/
├── index.js — Composition root: config → Matrix client → wire → start
├── mcp-server.js — 15 MCP tools + helpers (withErrorHandling, resolveRoomInput, etc.)
├── matrix-id-resolver.js — Room/user name → Matrix ID resolution
├── alias-store.js — Minimal per-user alias storage
├── mcp-data-store.js — DM room ID cache
└── persist.js — Simple JSON load/save utility
__tests__/
├── unit/ — Unit tests (alias-store, mcp-data-store, resolver, mcp-server, persist)
├── e2e/ — E2E test (full server start → MCP client → tool calls)
├── mocks/ — Mock MatrixClient for testing
└── vitest.config.jsSponsoren
Wenn dieses Projekt für Sie nützlich ist, erwägen Sie bitte, seine Entwicklung zu unterstützen:
Solana:
Eu8wQcW68TKMs1a6eqzZu8znzU52QLqQugAMG8uCD6y6EVM (Ethereum / Base / Arbitrum / Optimism / Polygon):
0x2733ff7c865C56d565a99BE1DC11B81cc76850A5XRP Ledger:
r4X6e7McAQj7e8vBCeued1RYu4mCJrREDG
Lizenz
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceA self-hostable MCP server that turns a folder of skills into callable tools via MCP and REST APIs.2MIT
- FlicenseNot gradedqualityDmaintenanceStandalone MCP server that proxies tool calls to Ottoauth HTTP endpoints, enabling account creation and dynamic service interaction.
- FlicenseNot gradedqualityDmaintenanceMCP server for Rocket.Chat, enabling AI agents to interact with Rocket.Chat workspaces via tools like listing users, sending messages, and managing channels.2
- AlicenseNot gradedqualityCmaintenanceMCP server for Matrix that lets Claude list rooms, search/read messages, send messages and files, react, create rooms, and invite users, with multi-homeserver support and safe-by-default writes; no end-to-end encryption.MIT
Related MCP Connectors
Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.
MCP server exposing the Backtest360 engine API as tools for AI agents.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/guan-tends/matrix-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server