ghost-upload-mcp
Provides tools for uploading images, files, and media to a Ghost instance, returning public URLs for use in posts such as feature images, inline images, avatars, icons, PDF downloads, and video/audio with optional thumbnails.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ghost-upload-mcpUpload ~/Downloads/hero.jpg to Ghost and give me the URL"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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: gh-attach
Tools
Tool | Parameter | Zweck |
|
| Aufmacherbilder, Bilder im Fließtext, Avatare, Favicon |
|
| beliebige Dateien, etwa PDFs als Download im Beitrag |
|
| 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.jpgEin 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 | ||
| Pflicht | Basis-URL der Ghost-Instanz, ohne Pfad |
| Pflicht | Admin-API-Key im Format |
| optional | Standard |
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-mcpVersion 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.0Lokal 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 installDer 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
contextundhelp, etwa bei ungültigem Key oder abgelehntem Dateityp
Lizenz
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Publish HTML, Markdown, and multi-file sites as shareable URLs instantly via MCP.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables creating memos and attaching files to a Memos instance via MCP tools.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI applications to upload images and videos to GitHub issues, pull requests, and comments through the Model Context Protocol.13 npm3MIT
- FlicenseAqualityBmaintenanceEnables AI agents and users to upload and download files via MCP, generating shareable links and identifier codes. Files are automatically deleted after 24 hours.9-
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to securely manage Ghost CMS blogs, including posts, pages, members, newsletters, tiers, and more via natural language.1,287 npmMIT