Misar.Blog MCP Server
by Misar-AI · remote · local (npm) · no sign-in to list tools · v5.1.8 · published by GitHub user Misar-AI
Publish and manage articles, series, comments, reactions, newsletters, and analytics — from any AI…
23 tools: 2 can delete or cancel things, 1 do something that can't be undone, 9 change things and 11 only read.
Scanned Oct 21, 2026
- Deletes or cancels2Claude Code: deny: see these tools
- Can't be undone1Claude Code: ask: see these tools
- Changes things9Claude Code: ask: see these tools
- Only reads11Claude Code: allow: see these tools
3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http misarblog https://www.misar.blog/api/mcp --header 'Authorization: <your-authorization>'Findings
Matches of fixed checks, with the text they matched.
- Warnupgrade
The server marks "upgrade" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The description's first verb is "show": a word for reading.
The server marks "generate_title_seo" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "generate_title_seo" says "generate": a word for a change.
- Warnsuggest_titles
The server marks "suggest_titles" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "generate": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
23 tools
Deletes or cancels 2Claude Code: deny
remove_reactionRemove a specific reaction from an article.No findings
Why it is in this group
- The name "remove_reaction" says "remove": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Remove a specific reaction from an article. Requires API key.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
update_articleUpdate the title, body, or tags of an existing article or draft.No findings
Why it is in this group
- The name "update_article" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Update the title, body, or tags of an existing article or draft. Only the fields you pass are changed; omitted fields keep their current values.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
Can't be undone 1Claude Code: ask
publish_articlePublish a new article (or schedule it) on Misar.BlogNo findings
Why it is in this group
- The name "publish_article" says "publish": a word for a change that another call does not undo.
Description, as the server wrote it Publish a new article (or schedule it) on Misar.Blog
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
Changes things 9Claude Code: ask
add_reactionAdd a reaction to an article.No findings
Why it is in this group
- The name "add_reaction" says "add": a word for a change.
Description, as the server wrote it Add a reaction to an article. No-ops if already reacted. Requires API key.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
add_to_seriesAdd an existing article to a seriesNo findings
Why it is in this group
- The name "add_to_series" says "add": a word for a change.
Description, as the server wrote it Add an existing article to a series
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
create_draftSave an article as a draft on Misar.Blog (for review before publishing)No findings
Why it is in this group
- The name "create_draft" says "create": a word for a change.
Description, as the server wrote it Save an article as a draft on Misar.Blog (for review before publishing)
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
create_seriesCreate a new series to group related articlesNo findings
Why it is in this group
- The name "create_series" says "create": a word for a change.
Description, as the server wrote it Create a new series to group related articles
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
generate_cover_imageGenerate a cover image using AI and upload it to the Misar.Blog CDNNo findings
Why it is in this group
- The name "generate_cover_image" says "generate": a word for a change.
Description, as the server wrote it Generate a cover image using AI and upload it to the Misar.Blog CDN
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
generate_title_seoGenerate 5 SEO/AEO/GEO-optimized article titles from a topic or keyword prompt.1 finding
Why it is in this group
- The name "generate_title_seo" says "generate": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "generate_title_seo" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "generate_title_seo" says "generate": a word for a change.
Description, as the server wrote it Generate 5 SEO/AEO/GEO-optimized article titles from a topic or keyword prompt. Targets high-volume, low-competition long-tail keywords. Optimized for Google, AI answer engines (ChatGPT, Perplexity, Claude), Google AI Overviews, and AI search experiences. Each title includes a keyword strategy hint.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
research_topicResearch a topic and get AI-generated insights, sources, and a content outline.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 read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Research a topic and get AI-generated insights, sources, and a content outline. Useful before writing an article.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
suggest_titlesGenerate 5 compelling, SEO-friendly article title options from your existing article content.1 finding
Why it is in this group
- The description's first verb is "generate": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "suggest_titles" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The description's first verb is "generate": a word for a change.
Description, as the server wrote it Generate 5 compelling, SEO-friendly article title options from your existing article content. Use generate_title_seo instead if you want to target specific keywords or have not written content yet.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
upgradeShow your current Misar.Blog plan, how much of each quota you have left, and what upgrading unlocks, with the link to upgrade.1 finding
Why it is in this group
- The description's first verb is "show": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "upgrade" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The description's first verb is "show": a word for reading.
Description, as the server wrote it Show your current Misar.Blog plan, how much of each quota you have left, and what upgrading unlocks, with the link to upgrade. Call it any time — not only after hitting a limit. By default it only reads. With start_trial=true it starts the free, no-card trial on the account (a plan change; no payment is taken). It never upgrades a paid plan or takes payment itself: the user does that by following the link. On a local install, open=true also opens that link in the user's browser.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
Only reads 11Claude Code: allow
get_analytics_summaryGet analytics summary (views, revenue, subscribers) for a time periodNo findings
Why it is in this group
- The name "get_analytics_summary" says "get": a word for reading.
Description, as the server wrote it Get analytics summary (views, revenue, subscribers) for a time period
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_articleGet a single article by slug, including full markdown contentNo findings
Why it is in this group
- The name "get_article" says "get": a word for reading.
Description, as the server wrote it Get a single article by slug, including full markdown content
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_follow_statusGet follow status and follower count for a profile UUID.No findings
Why it is in this group
- The name "get_follow_status" says "get": a word for reading.
Description, as the server wrote it Get follow status and follower count for a profile UUID. Requires an API key; counts against your plan's request quota.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_profileGet your Misar.Blog creator profileNo findings
Why it is in this group
- The name "get_profile" says "get": a word for reading.
Description, as the server wrote it Get your Misar.Blog creator profile
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_reactionsGet reaction counts and your reactions for an article.No findings
Why it is in this group
- The name "get_reactions" says "get": a word for reading.
Description, as the server wrote it Get reaction counts and your reactions for an article. Requires API key.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_seriesList all your series on Misar.BlogNo findings
Why it is in this group
- The name "get_series" says "get": a word for reading.
Description, as the server wrote it List all your series on Misar.Blog
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
list_commentsGet the comment thread for an article.No findings
Why it is in this group
- The name "list_comments" says "list": a word for reading.
Description, as the server wrote it Get the comment thread for an article. Requires an API key; counts against your plan's request quota.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
list_my_articlesList your articles on Misar.BlogNo findings
Why it is in this group
- The name "list_my_articles" says "list": a word for reading.
Description, as the server wrote it List your articles on Misar.Blog
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
list_newsletter_issuesGet your sent and scheduled newsletter issues.No findings
Why it is in this group
- The name "list_newsletter_issues" says "list": a word for reading.
Description, as the server wrote it Get your sent and scheduled newsletter issues. Requires API key authentication.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
list_newsletter_subscribersGet your newsletter subscriber list.No findings
Why it is in this group
- The name "list_newsletter_subscribers" says "list": a word for reading.
Description, as the server wrote it Get your newsletter subscriber list. Requires API key authentication.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
search_articlesSearch PUBLISHED articles across Misar.Blog by keyword, tag, or author — including other creators' work.No findings
Why it is in this group
- The name "search_articles" says "search": a word for reading.
Description, as the server wrote it Search PUBLISHED articles across Misar.Blog by keyword, tag, or author — including other creators' work. Use list_my_articles for your own drafts and unpublished posts.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
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 5.1.8. Values in angle brackets are yours to fill in.
claude mcp add --transport http misarblog https://www.misar.blog/api/mcp --header 'Authorization: <your-authorization>'Run in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__misarblog__get_profile",
"mcp__misarblog__get_analytics_summary",
"mcp__misarblog__list_my_articles",
"mcp__misarblog__get_article",
"mcp__misarblog__search_articles",
"mcp__misarblog__get_series",
"mcp__misarblog__list_comments",
"mcp__misarblog__get_follow_status",
"mcp__misarblog__list_newsletter_subscribers",
"mcp__misarblog__list_newsletter_issues",
"mcp__misarblog__get_reactions"
],
"ask": [
"mcp__misarblog__upgrade",
"mcp__misarblog__publish_article",
"mcp__misarblog__create_draft",
"mcp__misarblog__research_topic",
"mcp__misarblog__generate_title_seo",
"mcp__misarblog__suggest_titles",
"mcp__misarblog__generate_cover_image",
"mcp__misarblog__create_series",
"mcp__misarblog__add_to_series",
"mcp__misarblog__add_reaction"
],
"deny": [
"mcp__misarblog__update_article",
"mcp__misarblog__remove_reaction"
]
}
}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 misarblog. Review it before you use it.
