Auf X posten aus Gemini CLI
Die Gemini CLI ist Googles Agent fürs Terminal. Fügen Sie den MCP-Server von calmposts für X (Twitter) hinzu, und sie macht aus Ihren Notizen, Ihrer Doku oder Ihrer Release-Historie Beiträge und Threads für X und Bluesky, als Entwürfe oder in der Warteschlange zu Ihrer Freigabe.
- Verbindung
- Entfernter MCP-Server über Streamable HTTP: nichts zu installieren
- Anmeldung
- API-Schlüssel im Authorization-Header
- Serveradresse
https://calmposts.com/mcp- Wo Sie es einrichten
- ~/.gemini/settings.json oder .gemini/settings.json
Was Gemini CLI mit calmposts kann
Die Gemini CLI liest Dateien, führt Befehle aus und sucht im Web, direkt aus Ihrem Terminal. Mit calmposts als MCP-Server entwirft sie einen Launch-Thread aus Ihrer README, Beiträge für eine Woche aus einem Planungsdokument oder eine Fortsetzung dessen, was Sie gestern geplant haben, und speichert jeden Beitrag in calmposts.
Gemini fragt vor jedem MCP-Tool, solange Sie dem Server nicht vertrauen, Sie sehen also jeden create_post-Aufruf und seinen Text vorab. Der Befehl /mcp zeigt den Verbindungsstatus von calmposts und seine Tools.
Der MCP-Server für X (Twitter) gibt Gemini CLI 11 Tools, dieselben wie jedem anderen Client:
| Tool | Macht |
|---|---|
list_accounts | Ihre Kanäle und die Regeln jedes Netzwerks; customer_id: die eines Kunden |
list_customers | die Kunden einer Agentur mit den IDs ihrer Kanäle |
get_limits | Tarifverbrauch, Zeitzone des Arbeitsbereichs, Netzwerk-Limits |
create_post | einen Beitrag oder Thread für gewählte Konten, Text je Konto, Bilder per URL; when: draft, queue, at oder now |
list_posts | Beiträge nach Status, Konto, Kunde und Zeitraum |
get_post | einen Beitrag mit Kanälen, Status und Version |
update_post | bearbeiten oder verschieben; was fehlt, bleibt |
delete_post | stornieren und entfernen |
get_next_slot | wohin when=queue einen Beitrag legen würde |
retry_post | die gescheiterten Kanäle erneut senden |
get_post_metrics | die Zahlen eines erschienenen Beitrags pro Kanal nach 1 Std., 24 Std. und 7 Tagen (Tarife mit Statistiken); nur lesen |
calmposts in Gemini CLI einrichten
Zuerst den Schlüssel prüfen
Legen Sie in calmposts unter „API & MCP“ einen Schlüssel an (er wird einmal angezeigt) und fragen Sie den Server nach seinen Tools. Eine Liste mit 11 Tools heißt: Adresse und Schlüssel stimmen; 401 heißt: Der Schlüssel ist falsch oder ging ohne „Bearer “ hinaus.
curl -s https://calmposts.com/mcp \
-H "Authorization: Bearer cp_live_…" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
# 200 {"jsonrpc":"2.0","id":1,"result":{"tools":[…]}}Weg 1: Ein Befehl für alle Projekte
gemini mcp add schreibt in die .gemini/settings.json des aktuellen Projekts, außer Sie übergeben -s user; dann landet calmposts in ~/.gemini/settings.json.
Legen Sie in calmposts unter „API & MCP“ einen Schlüssel an und exportieren Sie ihn, etwa in ~/.zshrc:
export CALMPOSTS_API_KEY=cp_live_…Fügen Sie den Server hinzu. Die einfachen Anführungszeichen behalten den Namen der Variablen in settings.json, und Gemini setzt ihren Wert beim Laden der Einstellungen aus Ihrer Umgebung ein:
gemini mcp add -s user --transport http \ --header 'Authorization: Bearer ${CALMPOSTS_API_KEY}' calmposts https://calmposts.com/mcpPrüfen Sie: Die Liste zeigt calmposts als Connected.
gemini mcp list
Weg 2: settings.json von Hand
Nutzen Sie httpUrl: In der Gemini CLI bedeutet url den älteren SSE-Transport, und calmposts spricht nur Streamable HTTP.
Fügen Sie calmposts unter mcpServers in ~/.gemini/settings.json oder in der .gemini/settings.json eines Projekts hinzu:
{ "mcpServers": { "calmposts": { "httpUrl": "https://calmposts.com/mcp", "headers": {"Authorization": "Bearer ${CALMPOSTS_API_KEY}"} } } }Starten Sie gemini und führen Sie /mcp aus: calmposts ist CONNECTED, mit seinen 11 Tools.
Anmelden: Schlüssel oder OAuth
Die Gemini CLI sendet die gesetzten Header bei jeder Anfrage. Jeder String in settings.json darf eine Umgebungsvariable nennen ($VAR_NAME oder ${VAR_NAME}, auch aus .env-Dateien), die Datei muss den Schlüssel also nie enthalten.
Die Gemini CLI kann sich auch selbst anmelden: Antwortet ein Server mit 401, ermittelt sie die OAuth-Adressen, registriert sich und öffnet Ihren Browser; die Token liegen in ~/.gemini/mcp-oauth-tokens.json. Dafür braucht es einen lokalen Browser und eine Rückleitung auf localhost, über eine einfache SSH-Sitzung geht das nicht. Mit calmposts wurde diese Seite mit dem Schlüssel geprüft.
Lassen Sie trust für calmposts aus: Es überspringt jede Bestätigung für die Tools des Servers, auch für delete_post.
Prüfen, ob es funktioniert
- gemini mcp list zeigt calmposts, seine URL und Connected.
- /mcp in einer Sitzung zeigt calmposts als CONNECTED und listet seine 11 Tools.
- Fragen Sie „Wie sind heute meine calmposts-Limits?“: Gemini bittet darum, get_limits auszuführen, und antwortet.
- Bitten Sie um einen Entwurf und finden Sie ihn in calmposts unter „Beiträge“, mit der Quelle mcp.
Prompts zum Ausprobieren
Fragen Sie in eigenen Worten; der Agent wählt die Tools. Gut funktionieren etwa:
- „Lies README.md und schreib einen Launch-Thread für X. Speichere ihn in calmposts als Entwurf.“
- „Mach aus docs/roadmap.md fünf Beiträge, einen pro Punkt, und leg sie in die calmposts-Warteschlange.“
- „Such im Web nach den Nachrichten der Woche in unserer Produktkategorie und entwirf zwei Beiträge mit einem neuen Blickwinkel; lass sie als Entwürfe liegen.“
- „Zeig mir die calmposts-Warteschlange für morgen und verschieb den Beitrag von 9 Uhr auf 12 Uhr.“
Netzwerke, Threads und Freigabe
Beiträge gehen an X und Bluesky. Auf X und Bluesky erscheint ein Thread als Antwortkette. Bald dabei: Threads und LinkedIn.
Einmal schreiben, überall posten: Der Agent schickt einen Text für alle Konten, die er wählt. Ist der Text länger, als ein Netzwerk erlaubt, veröffentlicht calmposts ihn dort als Thread aus Beiträgen, die jeweils passen, geteilt an einem Absatz, dann an einem Satzende, dann an einem Leerzeichen; nichts wird nummeriert oder ergänzt. Die Regeln jedes Netzwerks und die Kontingente des Tarifs werden vor dem Speichern geprüft, und ein Problem kommt mit dem Feld zurück, damit der Agent den Text korrigieren und es erneut versuchen kann.
Standardmäßig warten die Beiträge eines Agenten auf Sie: Sie kommen als pending_approval zurück, und Sie geben jeden in der App, in Telegram oder aus der E-Mail von calmposts frei oder lehnen ihn ab. Der Inhaber des Arbeitsbereichs kann Agenten selbst veröffentlichen lassen; dafür müssen Arbeitsbereich und API-Schlüssel beide auf Veröffentlichen stehen. X erwartet, dass ein Konto, das automatisch postet, das Label Automated trägt (Settings → Your account → Account information → Automation).
Limits und Kosten
- Agenten brauchen einen bezahlten Tarif: Free hat keine API-Schlüssel und kann keine verbundene App freigeben. API-Schlüssel je Tarif: Pro 3 · Advanced 10 · Agency 25.
- Die Beiträge eines Agenten zählen wie Ihre. Beiträge pro Tag: Pro 20 · Advanced 100 · Agency 300. Beiträge mit Link pro Monat: Pro 30 · Advanced 300 · Agency 600. Jeder Beitrag eines Threads zählt.
- Links werden getrennt gezählt, weil X jeder App $0,015 pro Beitrag und $0,20 pro Beitrag mit Link berechnet. Die Gebühren von X sind im Tarif enthalten: Sie brauchen kein eigenes X-Entwicklerkonto und keine eigene X-API-Rechnung.
- Zum Ausprobieren: 7 Tage kostenlos testen. Karte nötig. 5 Beiträge mit Link in der Testphase.
- Jeder Schlüssel darf 60 Anfragen pro Minute stellen, MCP und REST zusammen; darüber antwortet der Server mit 429 und Retry-After.
Was Sie über Gemini CLI wissen sollten
- Nutzen Sie httpUrl, nicht url: In der Gemini CLI wählt url SSE, das calmposts nicht anbietet.
- Keine Unterstriche im Namen des Servers. Gemini benennt Tools mcp_{server}_{tool} und trennt am ersten Unterstrich, also funktioniert calmposts, calm_posts dagegen nicht.
- Um die Tools einzuschränken, setzen Sie includeTools oder excludeTools, etwa "excludeTools": ["delete_post"].
- Das Timeout einer Anfrage liegt standardmäßig bei 10 Minuten, weit mehr, als calmposts braucht; am längsten dauert create_post mit Bildern, während calmposts sie herunterlädt.
Ohne MCP: die REST-API
Alles, was die Tools tun, ist auch ein REST-Aufruf unter /api/v1 mit demselben Schlüssel. Das passt zu einem Skript oder einem Schritt, der nur HTTP spricht. calmposts veröffentlicht über seine eigene, freigegebene X-App, der Aufruf braucht also keine X-API-Schlüssel.
export CALMPOSTS_API_KEY=cp_live_…
curl -H "Authorization: Bearer $CALMPOSTS_API_KEY" https://calmposts.com/api/v1/accounts
curl -X POST https://calmposts.com/api/v1/posts \
-H "Authorization: Bearer $CALMPOSTS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"parts":[{"text":"Calm posts, scheduled."}],"targets":[{"account_id":"ACCOUNT_ID"}],"schedule":{"mode":"queue"}}'Wenn etwas nicht klappt
calmposts steht auf DISCONNECTED
Führen Sie gemini mcp list aus. Ein 401 heißt, der Header fehlt oder CALMPOSTS_API_KEY ist in Geminis Umgebung nicht gesetzt; prüfen Sie auch, ob die Adresse unter httpUrl steht und nicht unter url.
Ein SSE-Fehler oder 405 von calmposts
Die Adresse steht unter url, also spricht die Gemini CLI SSE, und calmposts beantwortet den GET des SSE-Streams mit 405. Verschieben Sie sie nach httpUrl.
Gemini öffnet einen Browser zum Anmelden
Bei calmposts kam kein gültiger Schlüssel an, und die 401-Antwort hat Geminis OAuth-Suche gestartet. Korrigieren Sie Header oder Variable und starten Sie Gemini neu.
401 missing_api_key
Die Anfrage kam ohne Schlüssel oder ohne „Bearer “ davor. Senden Sie Authorization: Bearer cp_live_…, mit dem Leerzeichen.
401 invalid_api_key, api_key_revoked oder api_key_inactive
Der Schlüssel ist vertippt, wurde widerrufen, oder sein Ersteller gehört nicht mehr zum Arbeitsbereich. Legen Sie unter „API & MCP“ einen neuen an und ersetzen Sie den alten.
401 invalid_token
Das Zugriffstoken einer OAuth-Verbindung ist abgelaufen oder die Verbindung wurde getrennt. Clients erneuern es selbst; klappt das nicht, melden Sie sich neu an.
402 quota_exceeded
Ein Tariflimit ist erreicht, und field nennt es: api_keys heißt, der Tarif hat keine Agenten (Free); posts_per_day und link_posts_per_month werden am nächsten Tag oder im nächsten Monat frei, oder mit einem größeren Tarif.
403 insufficient_scope
Dem Schlüssel fehlt eine Berechtigung, die das Tool braucht; field nennt sie (posts:write zum Anlegen von Beiträgen). Legen Sie einen Schlüssel mit dieser Berechtigung an.
429 rate_limited
Von diesem Schlüssel kamen mehr als 60 Anfragen pro Minute. Warten Sie die Sekunden aus Retry-After ab.
Das Tool antwortet duplicate_recent
Derselbe Text ging in den letzten 7 Tagen an dasselbe Konto. Bitten Sie um eine neue Formulierung.
Der Beitrag steht auf pending_approval
Das ist kein Fehler: Der Beitrag wartet in calmposts auf Ihr Ja. Geben Sie ihn dort frei oder lassen Sie Agenten veröffentlichen (der Inhaber stellt das am Arbeitsbereich und am Schlüssel ein).
Das Konto steht auf needs_reconnect
Das Netzwerk hat calmposts den Zugriff entzogen. Verbinden Sie das Konto unter „Konten“ in der App neu.
Fragen
Soll ich dem calmposts-Server vertrauen (trust)?
Nur wenn jedes calmposts-Tool, delete_post eingeschlossen, ohne Nachfrage laufen darf. Die Beiträge von Agenten warten so oder so in der Freigabe-Warteschlange von calmposts.
Projekt- oder Benutzereinstellungen?
Die .gemini/settings.json eines Projekts bekommt jeder, der es auscheckt; ~/.gemini/settings.json gehört nur Ihnen. Halten Sie den Schlüssel in beiden Fällen in einer Umgebungsvariablen.
Brauche ich das Programm calmposts-mcp?
Nein. Die Gemini CLI verbindet sich über Streamable HTTP mit dem gehosteten Server; zu installieren ist nichts.
Kann Gemini sofort veröffentlichen?
Nur wenn Sie es bitten, jetzt zu posten, und Arbeitsbereich und Schlüssel Agenten das Veröffentlichen erlauben. Sonst wartet der Beitrag auf Ihre Freigabe.
Kann der Agent antworten, folgen oder Direktnachrichten senden?
Nein. Dafür gibt es keine Tools: X verbietet, das zu automatisieren, und calmposts schreibt und plant nur Ihre eigenen Beiträge.
Brauche ich eigene X-API-Schlüssel?
Nein. calmposts veröffentlicht über seine eigene, freigegebene X-App, und die Gebühren von X pro Beitrag sind im Tarifpreis enthalten.
Die Doku von Gemini CLI, der diese Seite folgt
- Gemini CLI docs: MCP servers with Gemini CLI
- Gemini CLI docs: Configuration
- Gemini CLI source docs: mcp-server.md
calmposts ist ein unabhängiger Dienst und weder mit den Machern von Gemini CLI verbunden noch von ihnen empfohlen. Produktnamen gehören ihren Inhabern.
Lassen Sie Gemini CLI in Ruhe für Sie posten
Starten Sie die Testphase, verbinden Sie Ihre Konten, legen Sie einen Schlüssel an und geben Sie Gemini CLI die Adresse.
Kostenlos testen