Skip to main content
Glama

ghost-upload-mcp

MCP-Server für Datei-Uploads zu Ghost: Bilder, Dateien und Medien landen mit einem Tool-Aufruf in der Ghost-Instanz, zurück kommt die öffentliche URL.

Gedacht als Ergänzung zu MFYDev/ghost-mcp, das Posts, Tags, Members und vieles mehr abdeckt — aber keine Uploads kennt. Beide Server laufen parallel und teilen sich dieselben Umgebungsvariablen.

Warum ein zweiter Server statt eines Forks

ghost-mcp bringt @tryghost/admin-api bereits als Abhängigkeit mit, und diese Bibliothek kann Uploads vollständig. Es fehlt allein die MCP-Tool-Hülle. Als eigener Server bleibt ghost-mcp unangetastet und aktualisiert sich über npx -y weiter von selbst; ein Fork müsste bei jedem Upstream-Release nachgezogen werden.

Related MCP server: mcp-memos

Tools

Tool

Parameter

Zweck

ghost_upload_image

file, purpose (image | profile_image | icon), ref

Aufmacherbilder, Bilder im Fließtext, Avatare, Favicon

ghost_upload_file

file, ref

beliebige Dateien, etwa PDFs als Download im Beitrag

ghost_upload_media

file, thumbnail

Video- und Audiodateien, optional mit Vorschaubild

Jedes Tool antwortet mit der öffentlichen URL — und mit ref, falls gesetzt. Diese URL wandert anschließend in den Beitrag: als feature_image oder als <img src> im HTML.

Dateipfade

MCP transportiert keine Binärdaten. Jeder Upload bekommt deshalb einen Pfad auf dem Rechner, auf dem der Server läuft — nie die Datei selbst:

~/Downloads/aufmacher.jpg

Ein Bild ins Chatfenster zu ziehen funktioniert damit nicht als Upload-Quelle. Das gilt für jede MCP-Lösung, nicht nur für diese.

~ wird aufgelöst, ebenso file://-URLs. Relative Pfade beziehen sich auf das Arbeitsverzeichnis des Serverprozesses, das der Client vorgibt — absolute Pfade oder ~/… sind deshalb die verlässliche Form.

Konfiguration

Der Server muss nicht installiert werden. npx holt ihn direkt von GitHub, wie ghost-mcp sich per npx -y aus der npm-Registry holt — ein Eintrag in der Client-Konfiguration genügt.

Nötig sind drei Umgebungsvariablen, dieselben wie bei ghost-mcp, sodass ein Konfigurationsblock für beide Server passt:

Variable

GHOST_API_URL

Pflicht

Basis-URL der Ghost-Instanz, ohne Pfad

GHOST_ADMIN_API_KEY

Pflicht

Admin-API-Key im Format {24 Hex}:{64 Hex}

GHOST_API_VERSION

optional

Standard v5.0

Den Key liefert Ghost unter Settings → Integrations → Add custom integration. Er gehört in die Client-Konfiguration, nicht ins Repo.

Claude Desktop

In ~/Library/Application Support/Claude/claude_desktop_config.json unter mcpServers:

"ghost-upload": {
  "command": "npx",
  "args": ["-y", "github:jakob-koenen/ghost-upload-mcp"],
  "env": {
    "GHOST_API_URL": "https://example.com",
    "GHOST_ADMIN_API_KEY": "…",
    "GHOST_API_VERSION": "v5.0"
  }
}

Danach Claude Desktop neu starten.

Claude Code

claude mcp add ghost-upload \
  --env GHOST_API_URL=https://example.com \
  --env GHOST_ADMIN_API_KEY=… \
  -- npx -y github:jakob-koenen/ghost-upload-mcp

Version festnageln

github:jakob-koenen/ghost-upload-mcp folgt dem Standard-Branch. Ein Tag oder Commit hinter # bindet stattdessen einen festen Stand:

github:jakob-koenen/ghost-upload-mcp#v1.0.0

Lokal statt über GitHub

Für Entwicklung am Server selbst:

git clone https://github.com/jakob-koenen/ghost-upload-mcp.git
cd ghost-upload-mcp
npm install

Der Config-Eintrag zeigt dann auf die Datei statt auf GitHub:

"command": "node",
"args": ["/pfad/zu/ghost-upload-mcp/index.js"]

Voraussetzung in beiden Fällen: Node 18 oder neuer. Gestartet wird der Server nicht von Hand, sondern über stdio vom MCP-Client.

Fehlerverhalten

Beim Start bricht der Server mit einer einzeiligen Meldung auf stderr ab, wenn eine Pflichtvariable fehlt oder der Key nicht dem Format {24 Hex}:{64 Hex} entspricht. Zur Laufzeit werden zwei Fälle sauber zurückgemeldet, statt den Server zu beenden:

  • Pfadprobleme vor dem Upload — Datei nicht gefunden, Verzeichnis statt Datei

  • Antworten von Ghost — Meldung samt context und help, etwa bei ungültigem Key oder abgelehntem Dateityp

Lizenz

MIT

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jakob-koenen/ghost-upload-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server