Auf macOS kann Calíope als Model-Context-Protocol-Server (MCP) arbeiten: Ein KI-Client, der auf demselben Mac läuft — Cursor, Claude Desktop, alles, was MCP spricht —, bittet Calíope, Datenbanken aufzulisten, Tabellen zu beschreiben und nur lesende Abfragen gegen die Verbindungen auszuführen, die du freigibst. Diese Seite sagt, was dieser Server ist, was ein Client darüber tun kann, was gelten muss, bevor er antwortet, und wie man einen Client anbindet. Die Werkzeugtabelle wird aus dem Code erzeugt, der sie ausliefert.
Was es ist
Ein HTTP-Server in Calíope, der JSON-RPC 2.0 spricht, Protokollversion 2025-06-18, angekündigt im Header MCP-Protocol-Version. Er lauscht nur auf 127.0.0.1 — auf diesem Mac und nirgends sonst — auf Port 41500, sofern du ihn nicht änderst. Den Port wählst du; die Adresse ist nicht konfigurierbar. Eine einzelne Route, POST /mcp, beantwortet initialize, ping, tools/list und tools/call; ein DELETE auf derselben Route beendet die Sitzung.
Es gibt ihn nur auf macOS, er ist ab Werk aus, und er antwortet nur, solange Calíope offen ist: Schließt du die App, hören die Werkzeuge auf zu antworten, bis du sie wieder öffnest. Ist der gewählte Port schon von einem anderen Programm belegt, sagt Calíope es dir und startet ihn nicht.
Was der Client tun kann
Fünf Werkzeuge, und sonst nichts. Die Tabelle unten schreibt ein Skript aus dem Array, das der Server in tools/list ausliefert, und die Beschreibungen sind die, die der Client bekommt, wörtlich — auf Englisch, in welcher Sprache diese Seite auch ist —, denn dieser Text ist das, was das Modell auf der anderen Seite liest, um zu entscheiden, welches Werkzeug es aufruft. Jeder Parameter ist eine Zeichenkette.
| Werkzeug | Parameter | Beschreibung |
|---|---|---|
list_connections | — | Connections the user exposed to MCP. Returns id, name, engine, host. |
list_databases | connection | Databases visible on a connection. |
list_tables | connection, database | Tables and views in a database. |
describe_table | connection, database, table | Columns, primary key, foreign keys and indexes of a table. |
run_query | connection, sql | Run ONE read-only SQL statement (SELECT/SHOW/EXPLAIN/DESCRIBE) on a connection. Rows are capped at 200. |
Hinter dem Werkzeug, das SQL ausführt, steht ein Nur-Lese-Gate, das die Anweisung prüft, bevor sie den Datenbankserver erreicht:
- Eine Anweisung pro Aufruf. Zwei Anweisungen, oder keine, werden abgelehnt.
- Nur Lesen:
SELECT,SHOW,EXPLAINoderDESCRIBE. EinINSERT, einUPDATE, einDROP, einWITH, das in einem Schreiben endet, oder ein Lesen, das eine Datei auf dem Server schreibt, werden abgelehnt. - Nichts, was Sperren nimmt.
SELECT … FOR UPDATEundLOCK IN SHARE MODElesen zwar, halten aber Sperren bis zum Ende der Transaktion, also werden sie ebenfalls abgelehnt. - Höchstens 200 Zeilen. Die Antwort trägt die Spalten, die Zeilen, den echten
rowCountundtruncated: true, wenn die Obergrenze etwas abgeschnitten hat. Die Obergrenze ist nicht konfigurierbar. - MongoDB-Verbindungen werden nicht freigegeben. Sie werden unter den Verbindungen, die du anhaken kannst, nicht angeboten, und die Werkzeuge antworten, dass sie über MCP nicht verfügbar sind.
Alles, was über MCP läuft, landet im Abfrageprotokoll von Calíope, mit Verbindung und Ergebnis, genau wie das, was du selbst tippst. Was das Gate ablehnt, erreicht den Server nie und hinterlässt keine Zeile.
Einwilligung, Verbindung für Verbindung
Drei Dinge müssen gelten, bevor ein Client irgendetwas sieht, und jedes ist eine eigene Entscheidung.
- Der Hauptschalter. In Einstellungen › KI-Assistent › MCP-Server ist »Einem KI-Client auf diesem Mac erlauben, Calíope abzufragen« aus, bis du ihn einschaltest.
- Die Liste der freigegebenen Verbindungen. Sie beginnt leer. Nur die Verbindungen, die du anhakst, existieren für den Client; was du nicht anhakst, taucht nicht einmal in
list_connectionsauf. - Der Zugriffsschlüssel. Jede Anfrage trägt ein Bearer-Token, das Calíope erzeugt (32 zufällige Bytes) und im Schlüsselbund dieses Macs aufbewahrt. Ohne ihn antwortet der Server mit
401und sonst nichts — nicht einmal mit der Liste der Methoden. »Neuen Schlüssel erzeugen« macht den alten sofort ungültig, und du fügst die Konfiguration im Client erneut ein.
Weder der Schalter noch die freigegebene Liste reisen mit: Sie werden nicht über iCloud auf einen anderen Mac synchronisiert und sind nicht Teil des Einstellungs-Backups, sodass das Wiederherstellen deiner Einstellungen anderswo den Server nie einschaltet. Der Schlüssel reist ebenfalls nicht mit. Der Port ist eine gewöhnliche Einstellung.
Eines solltest du wissen, bevor du eine Verbindung anhakst: Zeilen reisen über MCP sehr wohl, denn die Antwort auf eine Abfrage sind die Daten. Sie gehen an den Client, den du konfiguriert hast, auf derselben Maschine; Calíope schickt nichts ins Internet. Was dieser Client danach damit macht — sie etwa an sein Cloud-Modell schicken —, entscheiden dieser Client und seine Datenschutzrichtlinie, nicht Calíope.
Einen Client anbinden
Schalter einschalten, Verbindungen anhaken, Konfiguration kopieren drücken, den Block, den dein Client braucht, in seine Datei einfügen und den Client neu starten. In die Zwischenablage kommen zwei Blöcke mit deinem echten Port und Schlüssel schon drin — dieselben zwei wie hier, mit <port> und <token> als Platzhaltern.
Cursor liest einen HTTP-Server direkt. Sein Block kommt in ~/.cursor/mcp.json:
// Cursor — ~/.cursor/mcp.json
{
"mcpServers": {
"caliope": {
"url": "http://127.0.0.1:<port>/mcp",
"headers": { "Authorization": "Bearer <token>" }
}
}
}
Claude Desktop spricht nur über Standardein- und -ausgabe, nicht HTTP, deshalb nutzt sein Block mcp-remote als Brücke — das ist es, was npx dort tut. Er kommt in ~/Library/Application Support/Claude/claude_desktop_config.json:
// Claude Desktop — claude_desktop_config.json
{
"mcpServers": {
"caliope": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://127.0.0.1:<port>/mcp",
"--header", "Authorization:${AUTH}"],
"env": { "AUTH": "Bearer <token>" }
}
}
}
Clients lesen ihre Konfiguration beim Start, also heißt ein neuer Schlüssel oder ein neuer Port: erneut einfügen und neu starten.
Mehr dazu
Die Hilfe hat drei Themen dazu, und es ist derselbe Text, den die App zeigt:
- MCP-Server: deinen KI-Client Calíope abfragen lassen
- Deinen KI-Client für Calíope einrichten
- Was dein KI-Client sieht — und was er danach damit macht
Und So ist Calíope gebaut stellt den Server neben den Rest der Architektur.