Skip to main content
Glama
guan-tends

matrix-mcp-server

by guan-tends

@guan-tends/matrix-mcp-server

npm version License: MIT Node.js Version

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-server

Voraussetzungen

  • 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.json5

Bearbeiten 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 start

Der 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

MATRIX_MCP_HOMESERVER_URL

homeserverUrl

MATRIX_MCP_ACCESS_TOKEN

accessToken

MATRIX_MCP_PORT

port

MATRIX_MCP_HOST

host

MATRIX_MCP_SERVER_NAME

serverName

MATRIX_MCP_STORE_PATH

storePath

MATRIX_MCP_CRYPTO_PATH

cryptoPath

Tools (15)

Nachrichtenübermittlung

Tool

Beschreibung

send_message

Text an einen Raum senden (per ID oder aufgelöstem Namen)

send_html_message

HTML-formatierte Nachricht senden

send_reaction

Auf eine Nachricht mit Emoji reagieren

send_dm

Direktnachricht senden (erstellt bei Bedarf verschlüsselte DM)

Raumverwaltung

Tool

Beschreibung

join_room

Einem Raum per ID oder Alias beitreten

leave_room

Einen Raum verlassen

get_joined_rooms

Alle beigetretenen Räume auflisten

get_room_messages

Aktuelle Nachrichten aus einem Raum abrufen

Benutzerverwaltung

Tool

Beschreibung

get_presence

Präsenzstatus für einen Benutzer abrufen

invite_user

Einen Benutzer zu einem Raum einladen

kick_user

Einen Benutzer aus einem Raum entfernen

ID-Auflösung

Tool

Beschreibung

set_room_alias

Dem Server einen Raum-Alias beibringen (z. B. "eng""!abc:matrix.org")

set_user_alias

Dem Server einen Benutzer-Alias beibringen (z. B. "alice""@alice:matrix.org")

resolve_room

Einen Raumnamen in seine Matrix-ID mit Konfidenzwert auflösen

resolve_user

Einen Benutzernamen in seine Matrix-ID mit Konfidenzwert auflösen

Auflösungsstrategie

Der Resolver verwendet einen hybriden Ansatz mit Konfidenzbewertung:

  1. Benutzer-Aliase (Konfidenz: 1.0) – Benutzerdefinierte Zuordnungen

  2. Exakte Übereinstimmung (Konfidenz: 0.9) – Exakter Anzeigename oder kanonischer Alias

  3. Teilweise Übereinstimmung (Konfidenz: 0.7) – Teilweise Namensübereinstimmung

  4. 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

  1. Composition-Root-IoCindex.js verdrahtet alle Abhängigkeiten. Module importieren sich nicht gegenseitig.

  2. Minimaler AliasStore – Nur 4 Methoden für die Raum-/Benutzer-Aliasverwaltung erforderlich.

  3. Einfache JSON-Persistenzpersist.js übernimmt Laden/Speichern. Zwei Datendateien.

  4. withErrorHandling-Wrapper – DRY-Prinzip für das wiederholte try/catch in jedem Tool.

  5. 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:coverage

65 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.js

Sponsoren

Wenn dieses Projekt für Sie nützlich ist, erwägen Sie bitte, seine Entwicklung zu unterstützen:

  • GitHub Sponsors

  • Solana: Eu8wQcW68TKMs1a6eqzZu8znzU52QLqQugAMG8uCD6y6

  • EVM (Ethereum / Base / Arbitrum / Optimism / Polygon): 0x2733ff7c865C56d565a99BE1DC11B81cc76850A5

  • XRP Ledger: r4X6e7McAQj7e8vBCeued1RYu4mCJrREDG

Lizenz

MIT © 2026 Guan

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
2Releases (12mo)
Commit activity

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

  • F
    license
    Not graded
    quality
    D
    maintenance
    Standalone MCP server that proxies tool calls to Ottoauth HTTP endpoints, enabling account creation and dynamic service interaction.
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server for Rocket.Chat, enabling AI agents to interact with Rocket.Chat workspaces via tools like listing users, sending messages, and managing channels.
    2
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP 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

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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