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.
48 tools: 20 can delete or cancel things, 7 change things and 21 only read.
Scanned Oct 21, 2026
- Deletes or cancels20Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things7Claude Code: ask: see these tools
- Only reads21Claude Code: allow: see these tools
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/mcpTools
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/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .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.
