{"name":"io.github.BlogFactoryHQ/ghost-publisher","slug":"blogfactoryhq-ghost-publisher","title":null,"description":"Local-first MCP server for safe Ghost authoring, diagnostics, scheduling, and publishing.","url":"https://mcp.market/server/blogfactoryhq-ghost-publisher","rating":null,"grade":"B","score":77,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":21,"stars":0,"forks":0,"downloads_week":128,"last_push_at":"2026-08-25T18:17:54.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/BlogFactoryHQ/ghost-publisher-mcp","website":null,"version":"0.10.1","remotes":[],"packages":[{"registryType":"npm","identifier":"ghost-publisher-mcp","version":"0.10.1","transport":{"type":"stdio"},"environmentVariables":[{"description":"URL of the Ghost site.","isRequired":true,"format":"string","name":"GHOST_URL"},{"description":"Admin API key from a Ghost custom integration.","isRequired":true,"format":"string","isSecret":true,"name":"GHOST_ADMIN_API_KEY"},{"description":"Ghost Admin API compatibility version; defaults to v5.0.","format":"string","name":"GHOST_API_VERSION"},{"description":"Permission profile: read-only, draft-editor, scheduler, or publisher. Defaults to publisher.","format":"string","name":"GHOST_PERMISSION_PROFILE"},{"description":"Legacy alias for the read-only profile. Do not combine with GHOST_PERMISSION_PROFILE.","format":"string","name":"GHOST_READ_ONLY"},{"description":"Allowed absolute directories for local image uploads.","format":"string","name":"GHOST_UPLOAD_ROOTS"},{"description":"Optional deployment hook called once after a completely successful publish or unpublish batch.","format":"string","isSecret":true,"name":"GHOST_DEPLOY_HOOK_URL"},{"description":"Optional public post URL containing {slug} for live checks.","format":"string","name":"GHOST_PUBLIC_POST_URL_TEMPLATE"},{"description":"Optional public page URL containing {slug} for headless live checks.","format":"string","name":"GHOST_PUBLIC_PAGE_URL_TEMPLATE"}]}],"tools":[{"name":"apply_change_set","description":"Re-read and preflight the exact previewed batch, require an exact site-bound preview hash plus exact approval scopes, save a Ghost revision for every edit, verify readback, and stop after the first remote failure.","write_action":false,"price_micros":0,"input_schema":null},{"name":"audit_content","description":"Inspect up to 25 exact posts or Pages for parseability, Lexical/card inventory, missing alt text and metadata, lengths, links, and a Sources/Kaynaklar heading. It does not crawl, score quality, or judge sources.","write_action":false,"price_micros":0,"input_schema":null},{"name":"check_connection","description":"Verify Ghost authentication and report which optional features are configured without exposing secrets.","write_action":false,"price_micros":0,"input_schema":null},{"name":"check_live_pages","description":"Read exact current published pages, select each public URL from Ghost or GHOST_PUBLIC_PAGE_URL_TEMPLATE, and verify HTTP status, title, canonical URL, and configured SEO metadata once.","write_action":false,"price_micros":0,"input_schema":null},{"name":"check_live_posts","description":"Check configured public URLs once and verify HTTP status, expected title text, and any supplied rendered SEO metadata.","write_action":false,"price_micros":0,"input_schema":null},{"name":"check_site_health","description":"Check server-selected Ghost and delivery surfaces, exact published targets, canonicals, share prerequisites, and Ghost-returned feature images without crawling or writing.","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_drafts","description":"Create 1–10 posts as drafts from either Markdown or bounded native Ghost blocks, including formatted prose, lists, quotes, code, uploaded-image cards, and bookmarks. Image-card src values must come from upload_image in this server session. This tool cannot publish. Ordered tags preserve the primary tag.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_page_drafts","description":"Create 1–10 pages from either Markdown or bounded native Ghost blocks and always force draft status. Image-card src values must come from upload_image in this server session. Tags, authors, templates, code injection, and scheduling are unavailable.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_page","description":"Get one page by exact Ghost ID or slug, including HTML, Lexical content, and complete SEO and social metadata.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_post","description":"Get one post by its exact Ghost ID or slug, including HTML, Lexical content, and complete SEO and social metadata.","write_action":true,"price_micros":0,"input_schema":null},{"name":"list_authors","description":"List bounded public author identities and post counts without exposing staff email or roles.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_pages","description":"List bounded Ghost page records and obtain exact IDs plus updated_at values.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_posts","description":"List concise Ghost post records. Use this before updating or publishing to obtain exact IDs and updated_at values.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_tags","description":"List Ghost tags with post counts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"plan_schedule","description":"Convert an ordered draft list and IANA local start time into exact UTC timestamps with an HMAC-bound plan. This tool never writes, emails, deploys, or claims headless visibility.","write_action":false,"price_micros":0,"input_schema":null},{"name":"preview_changes","description":"Read up to 25 exact posts or Pages and return full before snapshots, field and Lexical impact, required approval scopes, and a site-bound stateless preview hash. This tool never writes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"schedule_posts","description":"Schedule exact current drafts for future web publication. Requires user_confirmed=true and never sends newsletters or triggers deployment.","write_action":false,"price_micros":0,"input_schema":null},{"name":"trigger_deploy","description":"POST exactly once to the configured deployment hook after user_confirmed=true. The hook URL cannot be supplied by the caller and failures are never retried automatically.","write_action":true,"price_micros":0,"input_schema":null},{"name":"unschedule_posts","description":"Return exact current scheduled posts to draft. Requires user_confirmed=true and never triggers deployment.","write_action":false,"price_micros":0,"input_schema":null},{"name":"upload_image","description":"Upload a local image inside GHOST_UPLOAD_ROOTS, including images generated by the AI client. Remote URLs, SVG, symlink escapes, and files over 20 MB are refused.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":77,"grade":"B","scanned_at":"2026-10-31T17:28:03.833Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-31T17:28:03.771Z","components":{"code":{"score":25,"max":25,"notes":["10 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":12,"max":15,"notes":["last push 67 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"ghost-publisher-mcp","version":"0.10.1","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":7,"publishedAt":"2026-08-25T17:28:37.576Z","repositoryUrl":"git+https://github.com/BlogFactoryHQ/ghost-publisher-mcp.git","weeklyDownloads":128}],"repo":{"found":true,"owner":"BlogFactoryHQ","repo":"ghost-publisher-mcp","archived":false,"pushedAt":"2026-08-25T18:17:54Z","stars":0,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/320265094?v=4","ownerCreatedAt":"2026-08-23T17:12:03Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/320265094?v=4&s=128","source":"registry","width":128,"height":128},"presence":{"stars":0,"forks":0,"downloadsWeek":128,"license":"MIT","lastPushAt":"2026-08-25T18:17:54.000Z","score":21}}}},"grade_history":[],"reviews":[]}