Skip to content

JustBlogged

by usamaejaz · remote · no sign-in to list tools · v0.1.1 · published by GitHub user usamaejaz

Create, edit, organize, publish, and configure JustBlogged blogs from MCP clients.

Deletes · 20Changes · 7

48 tools: 20 can delete or cancel things, 7 change things and 21 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http justblogged https://justblogged.com/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

48 tools

Deletes or cancels 20Claude Code: deny
  • create_redirectCreate a redirect for a blog.No findings

    Why it is in this group

    • The name "create_redirect" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Create a redirect for a blog. Requires owner or admin access through account-level OAuth or a user-scoped API key.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • decide_content_reviewApprove a pending content review or request changes.No findings

    Why it is in this group

    • The description's first verb is "approve": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Approve a pending content review or request changes. Approving a staged update to published content applies that revision.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • delete_blogDelete a blog by ID.No findings

    Why it is in this group

    • The name "delete_blog" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a blog by ID. Only the blog owner can delete. Active subscriptions are cancelled automatically.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • delete_collectionDelete a collection by ID and optionally reassign its posts to another collection.No findings

    Why it is in this group

    • The name "delete_collection" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a collection by ID and optionally reassign its posts to another collection.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • delete_pageDelete a static page by ID.No findings

    Why it is in this group

    • The name "delete_page" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a static page by ID.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • delete_postDelete a blog post by ID.No findings

    Why it is in this group

    • The name "delete_post" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a blog post by ID.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • delete_redirectDelete a redirect by ID.No findings

    Why it is in this group

    • The name "delete_redirect" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a redirect by ID. Requires owner or admin access through account-level OAuth or a user-scoped API key.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • delete_tagDelete a blog tag by ID.No findings

    Why it is in this group

    • The name "delete_tag" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a blog tag by ID.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • delete_theme_fileDelete a custom theme file from a blog.No findings

    Why it is in this group

    • The name "delete_theme_file" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a custom theme file from a blog. Requires a Pro subscription. Cannot delete built-in-only files.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • switch_themeSwitch a blog to a different built-in theme or to custom if theme files exist.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Switch a blog to a different built-in theme or to custom if theme files exist.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • update_blogUpdate blog settings including name, subdomain, description, and logo.No findings

    Why it is in this group

    • The name "update_blog" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Update blog settings including name, subdomain, description, and logo. Requires owner or admin access.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • update_blog_domainConfigure or remove a blog's custom domain.No findings

    Why it is in this group

    • The name "update_blog_domain" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Configure or remove a blog's custom domain. Use domain only for custom domains (requires CNAME/A DNS). Use domain + domain_slug for subdirectory hosting (requires TXT DNS verification). Pass an empty domain string to remove the domain.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • update_blog_metadataMerge custom metadata into a blog.No findings

    Why it is in this group

    • The name "update_blog_metadata" says "update": a word for a change.
    • The description's first verb is "merge": a word for a change that another call does not undo.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Merge custom metadata into a blog. Pass only the keys you want to add or update. Theme changes use the dedicated theme tools.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • update_collectionUpdate an existing collection's name, slug, or description.No findings

    Why it is in this group

    • The name "update_collection" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Update an existing collection's name, slug, or description.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • update_pageUpdate any editable field on an existing static page.No findings

    Why it is in this group

    • The name "update_page" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Update any editable field on an existing static page.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • update_postUpdate any editable field on an existing blog post, including its author.No findings

    Why it is in this group

    • The name "update_post" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Update any editable field on an existing blog post, including its author.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • update_redirectUpdate a redirect source, destination, status code, or active state.No findings

    Why it is in this group

    • The name "update_redirect" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Update a redirect source, destination, status code, or active state. Requires owner or admin access through account-level OAuth or a user-scoped API key.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • update_tagRename a blog tag.No findings

    Why it is in this group

    • The name "update_tag" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Rename a blog tag.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • update_theme_fileCreate or update a theme file.No findings

    Why it is in this group

    • The name "update_theme_file" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Create or update a theme file. Requires a Pro subscription. Copies the built-in theme first if no custom files exist yet.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • update_theme_settingsUpdate one or more theme setting values for a blog.No findings

    Why it is in this group

    • The name "update_theme_settings" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Update one or more theme setting values for a blog. Unspecified values are preserved. Use get_theme_settings first to discover valid keys.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
Changes things 7Claude Code: ask
  • create_blogCreate a new blog.No findings

    Why it is in this group

    • The name "create_blog" says "create": a word for a change.
    Description, as the server wrote it
    Create a new blog. Subdomain is auto-generated from the name. Requires account-level OAuth or a user-scoped API key.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • create_collectionCreate a new collection with name, slug, and optional description.No findings

    Why it is in this group

    • The name "create_collection" says "create": a word for a change.
    Description, as the server wrote it
    Create a new collection with name, slug, and optional description.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • create_pageCreate a new static page with title, HTML body, metadata, slug, image, and status.No findings

    Why it is in this group

    • The name "create_page" says "create": a word for a change.
    Description, as the server wrote it
    Create a new static page with title, HTML body, metadata, slug, image, and status. status=published makes the page live.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • create_postCreate a new blog post with title, HTML content, author, collection, tags, metadata, slug, image, and publishing options.No findings

    Why it is in this group

    • The name "create_post" says "create": a word for a change.
    Description, as the server wrote it
    Create a new blog post with title, HTML content, author, collection, tags, metadata, slug, image, and publishing options. status=published makes the post live. collection_id is optional; omit it to use the empty-slug default Posts collection. If that default does not exist, provide collection_id (call list_collections or create_collection).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • create_tagCreate a new blog tag by name.No findings

    Why it is in this group

    • The name "create_tag" says "create": a word for a change.
    Description, as the server wrote it
    Create a new blog tag by name. Requires permission to manage taxonomy.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • submit_content_reviewSubmit the latest saved revision of a draft post or page for review.No findings

    Why it is in this group

    • The name "submit_content_review" says "submit": a word for a change.
    Description, as the server wrote it
    Submit the latest saved revision of a draft post or page for review.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • upload_imageUpload an image to a blog.No findings

    Why it is in this group

    • The name "upload_image" says "upload": a word for a change.
    Description, as the server wrote it
    Upload an image to a blog. Use the returned path as the image value when creating or updating a post, page, or blog.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
Only reads 21Claude Code: allow
  • get_blogGet a single blog by ID, including settings like subdomain, domain, logo, and metadata.No findings

    Why it is in this group

    • The name "get_blog" says "get": a word for reading.
    Description, as the server wrote it
    Get a single blog by ID, including settings like subdomain, domain, logo, and metadata.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_blog_metadataGet custom metadata for a blog (SEO fields, themeId, etc.).No findings

    Why it is in this group

    • The name "get_blog_metadata" says "get": a word for reading.
    Description, as the server wrote it
    Get custom metadata for a blog (SEO fields, themeId, etc.). Does not include themeSettings values.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_collectionGet a single collection by ID, including its post count.No findings

    Why it is in this group

    • The name "get_collection" says "get": a word for reading.
    Description, as the server wrote it
    Get a single collection by ID, including its post count.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_content_revisionGet one saved post or page revision, including its complete content snapshot.No findings

    Why it is in this group

    • The name "get_content_revision" says "get": a word for reading.
    Description, as the server wrote it
    Get one saved post or page revision, including its complete content snapshot.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_latest_content_reviewGet the latest review associated with the newest saved revision of a post or page.No findings

    Why it is in this group

    • The name "get_latest_content_review" says "get": a word for reading.
    Description, as the server wrote it
    Get the latest review associated with the newest saved revision of a post or page.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_pageGet a single static page by ID.No findings

    Why it is in this group

    • The name "get_page" says "get": a word for reading.
    Description, as the server wrote it
    Get a single static page by ID.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_postGet a single blog post by ID.No findings

    Why it is in this group

    • The name "get_post" says "get": a word for reading.
    Description, as the server wrote it
    Get a single blog post by ID.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_redirectGet a single redirect by ID.No findings

    Why it is in this group

    • The name "get_redirect" says "get": a word for reading.
    Description, as the server wrote it
    Get a single redirect by ID. Requires owner or admin access through account-level OAuth or a user-scoped API key.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_theme_fileRead a theme file by path (e.g.No findings

    Why it is in this group

    • The name "get_theme_file" says "get": a word for reading.
    Description, as the server wrote it
    Read a theme file by path (e.g. layouts/theme.liquid). Falls back to the active built-in theme when no custom copy exists.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_theme_settingsGet theme settings schema and current values for a blog's active theme.No findings

    Why it is in this group

    • The name "get_theme_settings" says "get": a word for reading.
    Description, as the server wrote it
    Get theme settings schema and current values for a blog's active theme.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_available_themesList built-in themes available for a blog and show which theme is currently active.No findings

    Why it is in this group

    • The name "list_available_themes" says "list": a word for reading.
    Description, as the server wrote it
    List built-in themes available for a blog and show which theme is currently active.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_blog_membersList blog members who can be assigned as post authors.No findings

    Why it is in this group

    • The name "list_blog_members" says "list": a word for reading.
    Description, as the server wrote it
    List blog members who can be assigned as post authors. Use a member id as authorId in create_post or update_post.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_blogsList the authenticated user's accessible blogs so later tool calls can target the right blogId.No findings

    Why it is in this group

    • The name "list_blogs" says "list": a word for reading.
    Description, as the server wrote it
    List the authenticated user's accessible blogs so later tool calls can target the right blogId.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_collectionsList all collections for a blog.No findings

    Why it is in this group

    • The name "list_collections" says "list": a word for reading.
    Description, as the server wrote it
    List all collections for a blog.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_content_reviewsList content review requests for a blog, filtered by status.No findings

    Why it is in this group

    • The name "list_content_reviews" says "list": a word for reading.
    Description, as the server wrote it
    List content review requests for a blog, filtered by status.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_content_revisionsList the saved revision history for a post or page.No findings

    Why it is in this group

    • The name "list_content_revisions" says "list": a word for reading.
    Description, as the server wrote it
    List the saved revision history for a post or page. Returns revision metadata without full snapshots.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_pagesList static pages with pagination, filtering, and sorting.No findings

    Why it is in this group

    • The name "list_pages" says "list": a word for reading.
    Description, as the server wrote it
    List static pages with pagination, filtering, and sorting.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_postsList blog posts with pagination, filtering, and sorting by status, collection, tag, author, or date.No findings

    Why it is in this group

    • The name "list_posts" says "list": a word for reading.
    Description, as the server wrote it
    List blog posts with pagination, filtering, and sorting by status, collection, tag, author, or date.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_redirectsList redirects for a blog with search, status, type, and pagination filters.No findings

    Why it is in this group

    • The name "list_redirects" says "list": a word for reading.
    Description, as the server wrote it
    List redirects for a blog with search, status, type, and pagination filters. Requires owner or admin access through account-level OAuth or a user-scoped API key.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_tagsList blog tags with optional case-insensitive search filtering.No findings

    Why it is in this group

    • The name "list_tags" says "list": a word for reading.
    Description, as the server wrote it
    List blog tags with optional case-insensitive search filtering.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_theme_filesList the theme file tree for a blog (layouts, templates, assets, etc.).No findings

    Why it is in this group

    • The name "list_theme_files" says "list": a word for reading.
    Description, as the server wrote it
    List the theme file tree for a blog (layouts, templates, assets, etc.).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 0.1.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http justblogged https://justblogged.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__justblogged__list_blogs",
      "mcp__justblogged__get_blog",
      "mcp__justblogged__list_blog_members",
      "mcp__justblogged__get_blog_metadata",
      "mcp__justblogged__list_available_themes",
      "mcp__justblogged__get_theme_settings",
      "mcp__justblogged__list_theme_files",
      "mcp__justblogged__get_theme_file",
      "mcp__justblogged__list_posts",
      "mcp__justblogged__get_post",
      "mcp__justblogged__list_pages",
      "mcp__justblogged__get_page",
      "mcp__justblogged__list_redirects",
      "mcp__justblogged__get_redirect",
      "mcp__justblogged__list_tags",
      "mcp__justblogged__list_collections",
      "mcp__justblogged__get_collection",
      "mcp__justblogged__list_content_revisions",
      "mcp__justblogged__get_content_revision",
      "mcp__justblogged__list_content_reviews",
      "mcp__justblogged__get_latest_content_review"
    ],
    "ask": [
      "mcp__justblogged__create_blog",
      "mcp__justblogged__upload_image",
      "mcp__justblogged__create_post",
      "mcp__justblogged__create_page",
      "mcp__justblogged__create_tag",
      "mcp__justblogged__create_collection",
      "mcp__justblogged__submit_content_review"
    ],
    "deny": [
      "mcp__justblogged__update_blog",
      "mcp__justblogged__delete_blog",
      "mcp__justblogged__update_blog_metadata",
      "mcp__justblogged__update_blog_domain",
      "mcp__justblogged__update_theme_settings",
      "mcp__justblogged__switch_theme",
      "mcp__justblogged__update_theme_file",
      "mcp__justblogged__delete_theme_file",
      "mcp__justblogged__update_post",
      "mcp__justblogged__delete_post",
      "mcp__justblogged__update_page",
      "mcp__justblogged__delete_page",
      "mcp__justblogged__create_redirect",
      "mcp__justblogged__update_redirect",
      "mcp__justblogged__delete_redirect",
      "mcp__justblogged__update_tag",
      "mcp__justblogged__delete_tag",
      "mcp__justblogged__update_collection",
      "mcp__justblogged__delete_collection",
      "mcp__justblogged__decide_content_review"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as justblogged. Review it before you use it.