Skip to main content
Glama
NathanDai5287

signal-mcp

signal-mcp

Ein lokaler, schreibgeschützter Model Context Protocol-Server für Nachrichten von Signal Desktop.

Er bietet einem MCP-fähigen Agenten vier eng begrenzte Werkzeuge:

  • signal_list_conversations — findet aktuelle direkte und Gruppenunterhaltungen, ohne Nachrichtentexte zurückzugeben.

  • signal_get_messages — ruft ein begrenztes chronologisches Fenster aus genau einer Unterhaltung ab.

  • signal_search_messages — wörtliche Teilstringsuche, optional eingegrenzt auf Unterhaltung und Zeit.

  • signal_get_message — ruft genau eine Nachricht mit Zitat- und Anhangs-Metadaten ab.

Der Server sendet niemals Nachrichten und schreibt niemals in die Datenbank von Signal. Er läuft lokal über stdio und hat keinen HTTP-Listener.

Wichtiger Datenschutzhinweis

Dieser Server kann Ihre private Signal-Historie gegenüber dem jeweiligen MCP-Host und -Modell offenlegen, mit dem Sie ihn verbinden. Prüfen Sie die Datenverarbeitungsrichtlinie dieses Hosts, halten Sie Anfragen eng begrenzt und konfigurieren Sie diesen Server nicht für Agenten, denen Sie nicht vertrauen.

Die lokale Datenbank von Signal Desktop ist ein Implementierungsdetail und keine öffentliche API. Schema-Updates von Signal können dieses Projekt vorübergehend beschädigen. Dieses Projekt ist inoffiziell und weder mit Signal Messenger LLC verbunden noch von ihr unterstützt.

Related MCP server: msteams-local-mcp

Derzeitige Unterstützung

  • Windows

  • Signal Desktop für denselben Windows-Benutzer installiert

  • Node.js 20 oder neuer

  • Lokale stdio-MCP-Hosts

Windows ist derzeit für die automatische Schlüsselwiederherstellung erforderlich, da Signal seinen Chromium-OSCrypt-Master-Schlüssel mit den DPAPI-Anmeldedaten des aktuellen Benutzers schützt.

Installation

Standardmäßig findet der Server Signal unter %APPDATA%\Signal. Normalerweise ist keine Konfiguration erforderlich.

git clone https://github.com/NathanDai5287/signal-mcp.git
cd signal-mcp
npm install
npm run build

Um die Verbindung zu testen, ohne einen MCP-Host zu konfigurieren:

npx @modelcontextprotocol/inspector node dist/src/index.js

Der Inspector kann Werkzeuge aufrufen, die echte private Nachrichten zurückgeben. Behandeln Sie seine Browsersitzung entsprechend.

MCP-Host-Konfiguration

Erstellen Sie das Projekt und konfigurieren Sie dann Ihren Host so, dass er den kompilierten Einstiegspunkt mit einem absoluten Pfad startet:

{
  "mcpServers": {
    "signal": {
      "command": "node",
      "args": ["C:\\path\\to\\signal-mcp\\dist\\src\\index.js"]
    }
  }
}

Starten Sie den Host neu, nachdem Sie seine MCP-Konfiguration geändert haben. Der genaue Speicherort der Konfigurationsdatei hängt vom Host ab.

Optionale Konfiguration

Umgebungsvariablen werden über die Serverkonfiguration des MCP-Hosts durchgereicht:

Variable

Zweck

Standard

SIGNAL_MCP_DB

Pfad zur Signal-SQLCipher-Datenbank

%APPDATA%\Signal\sql\db.sqlite

SIGNAL_MCP_CONFIG

Pfad zur config.json von Signal

%APPDATA%\Signal\config.json

SIGNAL_MCP_LOCAL_STATE

Pfad zum Local State von Signal Chromium

%APPDATA%\Signal\Local State

SIGNAL_MCP_KEY

Expliziter 64-Zeichen-SQLCipher-Schlüssel

Mit DPAPI wiederhergestellt

SIGNAL_MCP_MAX_MESSAGES

Obergrenze für einen Nachrichten-/Suchaufruf

200

SIGNAL_MCP_MAX_CONVERSATIONS

Obergrenze für die Auflistung von Unterhaltungen

100

Vermeiden Sie es, SIGNAL_MCP_KEY in eine eingecheckte Datei zu schreiben. Unter Windows ist die automatische Wiederherstellung vorzuziehen.

So funktioniert der Datenbankzugriff

Signal Desktop speichert einen AES-256-GCM-verschlüsselten SQLCipher-Schlüssel in config.json. Sein Wrapping-Key befindet sich im Local State von Chromium, geschützt mit Windows-DPAPI. Beim Start führt dieser Server Folgendes aus:

  1. Hebt den DPAPI-Schutz des OSCrypt-Master-Schlüssels für den aktuellen Windows-Benutzer auf.

  2. Entschlüsselt den SQLCipher-Schlüssel von Signal im Speicher.

  3. Öffnet die Datenbank mit SQLCipher-Kompatibilitätsstufe 4.

  4. Aktiviert den SQLite-Modus query_only, bevor Werkzeugaufrufe bedient werden.

Der Schlüssel wird von diesem Projekt niemals ausgegeben, über MCP zurückgegeben oder dauerhaft gespeichert.

Alle Sucheingaben sind gebundene SQL-Parameter. %, _ und \ werden maskiert, sodass Suchbegriffe wörtliche Teilstrings und keine vom Aufrufer kontrollierten SQL-Muster sind. Jede Ergebnismenge ist begrenzt.

Zurückgegebene Daten

Nachrichtenergebnisse können enthalten:

  • Signal-Nachrichten- und Unterhaltungskennungen

  • Zeitstempel in Millisekunden

  • Richtung eingehend/ausgehend

  • Dienst-ID und Anzeigename des Absenders

  • Nachrichtentext

  • denormalisierter Text der zitierten Antwort

  • Anhangs-Metadaten und Verfügbarkeit des lokalen Downloads

Dieser Meilenstein entschlüsselt keine Anhangs-Bytes und gibt sie nicht zurück, erstellt kein dauerhaftes Archiv, führt keine semantische Suche durch und sendet keine Nachrichten. Verschwindende Nachrichten, die Signal bereits gelöscht hat, können nicht wiederhergestellt werden.

Entwicklung

npm test
npm run check
npm run build

Die Testsuite verwendet einen In-Memory-Fake-Reader und greift nicht auf Ihre Signal-Daten zu. Ein manueller lokaler Smoke-Test ist weiterhin erforderlich, um Änderungen am privaten Datenbankschema von Signal zu erkennen.

Die Betriebsprotokollierung erfolgt über stderr, da stdout für den MCP-JSON-RPC-Verkehr reserviert ist.

Sicherheit

Bitte erstellen Sie keine öffentlichen Issues mit Nachrichtentexten, Datenbankdateien, Schlüsseln, Dienst-IDs, Telefonnummern oder lokalen Pfaden. Hinweise zur privaten Meldung von Schwachstellen finden Sie in SECURITY.md.

Lizenz

Der Projektquellcode ist MIT-lizenziert. Abhängigkeiten behalten ihre eigenen Lizenzen; insbesondere wird @signalapp/sqlcipher unter AGPL-3.0-only vertrieben.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables querying Signal Desktop chats and messages by reading the encrypted SQLite database directly, providing tools for listing chats, searching messages, and running read-only SQL queries.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A read-only MCP server that lets AI search a user's own LINE Desktop chat history on macOS, providing tools to list chats, retrieve messages, and search conversations directly from the local encrypted database.
    5
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to read the entire Apple Messages (iMessage/SMS) history on a Mac through a read-only, batched tool that supports listing chats, retrieving transcripts, polling recent messages, and searching message bodies via REST or streamable HTTP MCP.
    MIT