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 buildUm die Verbindung zu testen, ohne einen MCP-Host zu konfigurieren:
npx @modelcontextprotocol/inspector node dist/src/index.jsDer 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 |
| Pfad zur Signal-SQLCipher-Datenbank |
|
| Pfad zur |
|
| Pfad zum |
|
| Expliziter 64-Zeichen-SQLCipher-Schlüssel | Mit DPAPI wiederhergestellt |
| Obergrenze für einen Nachrichten-/Suchaufruf |
|
| Obergrenze für die Auflistung von Unterhaltungen |
|
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:
Hebt den DPAPI-Schutz des OSCrypt-Master-Schlüssels für den aktuellen Windows-Benutzer auf.
Entschlüsselt den SQLCipher-Schlüssel von Signal im Speicher.
Öffnet die Datenbank mit SQLCipher-Kompatibilitätsstufe 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 buildDie 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.
This server cannot be deployed
Maintenance
Related MCP Connectors
Explore your Messages SQLite database to browse tables and inspect schemas with ease. Run flexible…
Read-only MCP access to authorized Vocci sessions, notes, files, and memory search.
Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only
Hosted MCP messaging across owners, tools, and machines, with readable transcripts.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables 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
- AlicenseBqualityBmaintenanceReads the local Microsoft Teams (v2) message cache and exposes it over MCP, enabling AI assistants to list accounts/conversations and search/read messages without Graph API or network.83MIT
- AlicenseAqualityCmaintenanceA 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.5MIT
- AlicenseNot gradedqualityCmaintenanceEnables 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