upgradeLABSCO SUMMARY
Drafting and publishing are separate calls, and the drafts stay addressable afterwards.
create_draft saves without publishing, and the draft list is a resource an agent can read without spending a call, so a half-finished piece is resumed in the next session rather than started again. Anything other people will see is annotated so the client can prompt before it runs. The two title tools work from opposite ends and are worth keeping straight: generate_title_seo starts from a topic before the article exists, while suggest_titles reads the article you already wrote.
What it is
Misar.Blog's MCP server: articles and drafts, series, comments and reactions, newsletter subscribers and issues, and analytics, with SEO helpers and an AI cover-image generator alongside. It ships prompts your client shows as slash-commands and read-only resources an agent can attach without spending a tool call, and runs over stdio or remotely at https://api.misar.io/blog/mcp.
What you get
- publish_article publishes or schedules, create_draft holds a piece back for review, update_article edits title, body or tags, and get_article returns the full markdown by slug
- list_my_articles covers your own work; search_articles reaches published articles across Misar.Blog by keyword, tag or author, including other creators'
- research_topic returns insights, sources and a content outline; generate_title_seo produces five titles from a topic or keyword, and suggest_titles five more from an article you have already written
- generate_cover_image creates an image and uploads it to the Misar.Blog CDN
- Series: get_series, create_series and add_to_series keep related articles grouped and ordered
- Audience: list_comments, get_reactions with add_reaction and remove_reaction, get_follow_status by profile UUID, and list_newsletter_subscribers with list_newsletter_issues for what has been sent and what is scheduled
- get_analytics_summary reports views, revenue and subscribers over a period, while get_profile and upgrade cover the account and how much of each quota is left
- Five resources attach without a tool call: misarblog://profile, misarblog://articles/recent for your 20 most recent published pieces, misarblog://articles/drafts, misarblog://series, and misarblog://analytics/summary for the last 30 days
Requirements
Runs over stdio as npx -y @misarblog/mcp@latest, or remotely at https://api.misar.io/blog/mcp with Authorization: Bearer <YOUR_MISARBLOG_API_KEY> (the key starts mbk_). Two ways in: set MISARBLOG_API_KEY from the dashboard, or start with no key and call the login tool, which opens the consent screen and saves the returned key to ~/.misarblog/config.json. MISARBLOG_BASE_URL points at a self-hosted instance. Discovery works without credentials; every action needs them. MIT.
Setup effort
One command — npx -y @misarblog/mcp@latest
USE CASES
Turning notes into a published post
Research the topic for an outline and sources, save the piece as a draft while it is still rough, then publish or schedule it as a separate, deliberate call.
Improving a post that is not being found
Read the article back in full, generate stronger title options from its own content, and update the title and tags in place.
Planning a multi-part series
Create the series, then add each article to it in order so readers arrive at part two from part one instead of the archive.
Writing the newsletter from what you already published
List recent articles, check who is subscribed and what has already gone out, so the next issue does not repeat the last one.
Answering how the blog is actually doing
Views, revenue and subscriber counts for the period, alongside the comments and reactions on the individual pieces that moved.
Getting a cover image without leaving the draft
Generate the image and have it uploaded to the CDN in the same step, then attach it when the article goes out.
24 tools
Listed in project docs. Your client may show a different list.
get_profileget_analytics_summarylist_my_articlesget_articlepublish_articlecreate_draftupdate_articlesearch_articlesresearch_topicgenerate_title_seosuggest_titlesgenerate_cover_imageget_seriescreate_seriesadd_to_serieslist_commentsget_follow_statuslist_newsletter_subscriberslist_newsletter_issuesget_reactionsadd_reactionremove_reactionloginBEFORE YOU INSTALL
What to know first
Tools you get
24 tools named in the project's documentation.
Requires
npx on PATH
Optional
MISARBLOG_API_KEY in your environment
INSTALLATION
Connect your client
Server setup
npx
npx -y @misarblog/mcp@latestHosted endpoint
https://api.misar.io/blog/mcpAdd this hosted endpoint to your MCP client.
MCP Clients
Claude Desktop, Cursor, JetBrains IDEs, Windsurf, Cline
{
"mcpServers": {
"misarblog": {
"command": "npx",
"args": [
"-y",
"@misarblog/mcp@latest"
],
"env": {
"MISARBLOG_API_KEY": "<YOUR_MISARBLOG_API_KEY>"
}
}
}
}VS Code
{
"servers": {
"misarblog": {
"command": "npx",
"args": [
"-y",
"@misarblog/mcp@latest"
],
"env": {
"MISARBLOG_API_KEY": "<YOUR_MISARBLOG_API_KEY>"
}
}
}
}Claude Code
{
"mcpServers": {
"misarblog": {
"command": "npx",
"args": [
"-y",
"@misarblog/mcp@latest"
],
"env": {
"MISARBLOG_API_KEY": "${MISARBLOG_API_KEY}"
}
}
}
}Visual Studio
{
"inputs": [],
"servers": {
"misarblog": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@misarblog/mcp@latest"
],
"env": {
"MISARBLOG_API_KEY": "<YOUR_MISARBLOG_API_KEY>"
}
}
}
}Zed
{
"context_servers": {
"misarblog": {
"command": {
"path": "npx",
"args": [
"-y",
"@misarblog/mcp@latest"
],
"env": {
"MISARBLOG_API_KEY": "<YOUR_MISARBLOG_API_KEY>"
}
}
}
}
}Codex
[mcp_servers.misarblog]
command = "npx"
args = ["-y", "@misarblog/mcp@latest"]
[mcp_servers.misarblog.env]
MISARBLOG_API_KEY = "<YOUR_MISARBLOG_API_KEY>"Gemini CLI
{
"mcpServers": {
"misarblog": {
"command": "npx",
"args": [
"-y",
"@misarblog/mcp@latest"
],
"env": {
"MISARBLOG_API_KEY": "<YOUR_MISARBLOG_API_KEY>"
},
"timeout": 30000,
"trust": false
}
}
}Smithery
npx -y @smithery/cli install misar/misarblog-mcp --client claudeAny MCP client — HTTP
{
"mcpServers": {
"misarblog": {
"type": "streamable-http",
"url": "https://api.misar.io/blog/mcp",
"headers": {
"Authorization": "Bearer <YOUR_MISARBLOG_API_KEY>"
}
}
}
}Clients spell the "type" value differently: Claude Code and VS Code use "http", Cline uses "streamableHttp", and Roo Code uses "streamable-http". Claude Desktop does not accept a URL entry in its config file; remote servers go under Settings → Connectors.