calmposts

Auf X posten aus Cursor

Der Agent von Cursor kennt Ihren Code schon. Geben Sie ihm den MCP-Server von calmposts für X (Twitter), und er schreibt den Launch-Beitrag, den Changelog-Thread oder die Ankündigung der Doku für X und Bluesky und legt sie in Ihre calmposts-Warteschlange.

Verbindung
Entfernter MCP-Server über Streamable HTTP: nichts zu installieren
Anmeldung
API-Schlüssel im Authorization-Header; OAuth: Sie melden sich bei calmposts an und erlauben den Zugriff, ohne Schlüssel
Serveradresse
https://calmposts.com/mcp
Wo Sie es einrichten
~/.cursor/mcp.json oder .cursor/mcp.json

Was Cursor mit calmposts kann

In Cursor bitten Sie den Agenten um eine Änderung, und er liest Dateien, führt Befehle aus und ändert Code. Mit calmposts unter seinen Tools kann er auch davon erzählen: ein Beitrag, wenn eine Funktion erscheint, ein Thread, der ein Refactoring erklärt, eine kurze Notiz zu jedem Release-Tag.

Cursor führt die Tools von calmposts unter Available Tools und ruft sie auf, wenn sie zur Bitte passen, auch im Plan Mode; Sie können eines auch beim Namen nennen, etwa get_limits oder create_post. Standardmäßig fragt Cursor vor jedem MCP-Toolaufruf und zeigt die Argumente, Sie lesen also den genauen Text, bevor er calmposts erreicht.

Der MCP-Server für X (Twitter) gibt Cursor 11 Tools, dieselben wie jedem anderen Client:

ToolMacht
list_accountsIhre Kanäle und die Regeln jedes Netzwerks; customer_id: die eines Kunden
list_customersdie Kunden einer Agentur mit den IDs ihrer Kanäle
get_limitsTarifverbrauch, Zeitzone des Arbeitsbereichs, Netzwerk-Limits
create_posteinen Beitrag oder Thread für gewählte Konten, Text je Konto, Bilder per URL; when: draft, queue, at oder now
list_postsBeiträge nach Status, Konto, Kunde und Zeitraum
get_posteinen Beitrag mit Kanälen, Status und Version
update_postbearbeiten oder verschieben; was fehlt, bleibt
delete_poststornieren und entfernen
get_next_slotwohin when=queue einen Beitrag legen würde
retry_postdie gescheiterten Kanäle erneut senden
get_post_metricsdie Zahlen eines erschienenen Beitrags pro Kanal nach 1 Std., 24 Std. und 7 Tagen (Tarife mit Statistiken); nur lesen

calmposts in Cursor 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: mcp.json mit einem Schlüssel aus der Umgebung

Der Schlüssel steht nicht in der Datei, also kann dieselbe mcp.json im Repository eines Projekts liegen.

  1. Legen Sie in calmposts unter „API & MCP“ einen Schlüssel an, machen Sie ihn für Cursor verfügbar, etwa in ~/.zshrc, und starten Sie Cursor neu, damit es die Variable sieht:

    export CALMPOSTS_API_KEY=cp_live_…
  2. Fügen Sie calmposts in ~/.cursor/mcp.json für alle Projekte oder in .cursor/mcp.json eines Projekts ein:

    {
      "mcpServers": {
        "calmposts": {
          "url": "https://calmposts.com/mcp",
          "headers": {"Authorization": "Bearer ${env:CALMPOSTS_API_KEY}"}
        }
      }
    }
  3. Speichern Sie die Datei und starten Sie Cursor neu. Unter Customize → MCPs ist calmposts eingeschaltet, mit seinen 11 Tools.

Weg 2: mcp.json mit OAuth, ohne Schlüssel

Cursor meldet sich selbst bei calmposts an: Es liest die OAuth-Metadaten von calmposts, registriert sich als öffentlicher Client und nutzt PKCE.

  1. Fügen Sie calmposts ohne Header hinzu:

    {
      "mcpServers": {
        "calmposts": {"url": "https://calmposts.com/mcp"}
      }
    }
  2. Wenn Cursor Sie bittet, sich bei calmposts anzumelden, folgen Sie dem Hinweis. Die Zustimmungsseite von calmposts öffnet sich: Melden Sie sich als Inhaber des Arbeitsbereichs an und klicken Sie auf „Erlauben“.

Anmelden: Schlüssel oder OAuth

Ein Schlüssel in den Headern ist am einfachsten: Jede Anfrage trägt ihn, und nichts läuft ab. Halten Sie ihn in einer Umgebungsvariablen und verweisen Sie mit ${env:CALMPOSTS_API_KEY} darauf; Cursor setzt Variablen in url und headers ein, envFile steht entfernten Servern aber nicht zur Verfügung.

Mit OAuth registriert die Desktop-App von Cursor beide Rückleitungsadressen, http://localhost:8787/callback und die Web-Adresse auf cursor.com, und calmposts akzeptiert beide. Zugriffstoken gelten eine Stunde, Cursor erneuert sie mit dem Refresh-Token von calmposts, und die Verbindung steht unter „API & MCP“ → „Verbundene Apps“.

Cloud Agents behalten ihre eigenen MCP-Anmeldungen auf den Servern von Cursor und nutzen die Server aus dem Cloud-Agents-Dashboard: Fügen Sie calmposts auch dort hinzu, wenn Ihre Cloud-Agenten posten sollen.

Prüfen, ob es funktioniert

Prompts zum Ausprobieren

Fragen Sie in eigenen Worten; der Agent wählt die Tools. Gut funktionieren etwa:

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

Welche Netzwerke schon funktionieren

Limits und Kosten

Preise

Was Sie über Cursor wissen sollten

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"}}'

Doku zur REST-API

Wenn etwas nicht klappt

calmposts zeigt unter Customize → MCPs einen Fehler

Öffnen Sie MCP Logs im Output-Panel. Ein 401 mit missing_api_key heißt, der Header ging ohne Schlüssel hinaus: Die Variable ist in der Umgebung von Cursor leer. Setzen Sie sie in Ihrem Shell-Profil und starten Sie Cursor neu.

Der Agent nutzt calmposts nicht

Prüfen Sie, ob calmposts unter Customize eingeschaltet ist und seine Tools in der Tool-Liste des Chats an sind, und nennen Sie das Tool in Ihrer Bitte.

Die Anmeldung endet mit „Nur der Inhaber des Arbeitsbereichs kann Apps verbinden.“

Melden Sie sich als Inhaber des Arbeitsbereichs bei calmposts an oder nutzen Sie einen Schlüssel, den der Inhaber angelegt hat.

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

Braucht Cursor ein lokales MCP-Programm?

Nein. Cursor verbindet sich per URL mit dem gehosteten Server; ein entfernter Eintrag braucht nur url und, mit Schlüssel, headers.

Soll ich .cursor/mcp.json committen?

Ja, solange darin ${env:CALMPOSTS_API_KEY} steht und nicht der Schlüssel selbst: Dann nutzt jede Person im Team ihren eigenen Schlüssel aus ihrer Umgebung.

Schlüssel oder OAuth in Cursor?

Ein Schlüssel passt zu einer Einrichtung, die nie wieder fragt; OAuth passt, wenn Sie keinen Schlüssel handhaben möchten. Beide arbeiten mit denselben Tools in Ihrem Arbeitsbereich.

Nutzen Cloud Agents meine mcp.json?

Nein. Cloud Agents nutzen die Server aus dem Cloud-Agents-Dashboard und melden sich selbst an; fügen Sie calmposts dort für sie hinzu.

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 Cursor, der diese Seite folgt

calmposts ist ein unabhängiger Dienst und weder mit den Machern von Cursor verbunden noch von ihnen empfohlen. Produktnamen gehören ihren Inhabern.

Lassen Sie Cursor in Ruhe für Sie posten

Starten Sie die Testphase, verbinden Sie Ihre Konten, legen Sie einen Schlüssel an und geben Sie Cursor die Adresse.

Kostenlos testen