Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Plan, generate, schedule and repurpose posts across every channel, and track what performs.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
MISARPOST_API_KEY, MISARPOST_BASE_URL, AuthorizationValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"misarpost": {
"command": "npx",
"args": [
"-y",
"@misarpost/mcp"
],
"env": {
"MISARPOST_API_KEY": "your-value",
"MISARPOST_BASE_URL": "your-value"
}
}
}
}Run this in your terminal
claude mcp add --transport http misarpost https://api.misar.io/post/mcp --header 'Authorization: your-value'claude mcp add misarpost --env MISARPOST_API_KEY=your-value --env MISARPOST_BASE_URL=your-value -- npx -y @misarpost/mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"misarpost": {
"url": "https://api.misar.io/post/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"misarpost": {
"command": "npx",
"args": [
"-y",
"@misarpost/mcp"
],
"env": {
"MISARPOST_API_KEY": "your-value",
"MISARPOST_BASE_URL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"misarpost": {
"type": "http",
"url": "https://api.misar.io/post/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}Paste into .vscode/mcp.json in your project
{
"servers": {
"misarpost": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@misarpost/mcp"
],
"env": {
"MISARPOST_API_KEY": "your-value",
"MISARPOST_BASE_URL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.
Your choice stays on this device in a cookie; no account needed.
MISARPOST_BASE_URL envAuthorization secret required HTTP headerThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Tool names and descriptions exactly as the server reported them on Nov 7, 2026. The maker wrote them, not us; we show them as plain text.
list_connectionsList the user's active connected social accounts with their account ID, platform and display name. Call this before scheduling: schedule_post needs the connected_account_id, and a post can only go to an account that is connected and active.
list_publish_optionsLook up the destinations a connected account can publish into — Discord or Slack channels, Pinterest boards, Reddit post flairs, Hashnode or Medium publications, Hashnode tags, Lemmy communities, Listmonk lists or templates, Skool groups, Whop forums, or WordPress categories and
list_account_plugsShow the plugs (automatic follow-up actions — e.g. reposting or resharing a post once it passes a likes or reactions threshold, on X, Bluesky, Threads and LinkedIn) available for one connected account, how each is currently configured and activated, and the account's 20 most rece
configure_account_plugTurn a plug on or off for one connected account and set its configuration, replacing the plug's previous configuration. An activated plug later acts on that account's published posts automatically, in public, without asking again — confirm the exact plug and settings with the use
list_postsList the user's scheduled and published posts, newest-scheduled first, 20 per page, with platform, status, scheduled/published time, post URL, tags and engagement metrics. Filter by status (e.g. queued or pending for what is coming up — the content calendar — or published for wha
schedule_postSchedule a post to ONE connected account at a given time, or publish it immediately with scheduled_at="now". This queues real content for a real audience — show the user the exact text, account and time and get explicit approval first. To post the same content to several accounts
cancel_postCancel a post that is still pending or queued, so it never publishes. Posts that are already publishing or published cannot be cancelled, and a cancelled post cannot be re-queued — it must be scheduled again. To change a post instead, use update_post. Confirm with the user first.
get_calendarGet every post scheduled between two dates (default: 7 days ago to 30 days ahead), oldest first, with platform, status, time, text, media, first comment and tags — the content calendar view. Optionally only posts with one tag. Needs a plan that includes the content calendar; othe
update_postEdit a post that has not gone out yet (status pending, queued or draft): its text, its scheduled time, its first comment, or its tags. Changing the time moves when it publishes, so confirm the new text and time with the user first. Published posts cannot be edited.
reply_to_postPost a public reply/comment on one of the user's ALREADY-PUBLISHED posts, on the platform it was published to. It goes live immediately and cannot be recalled from here. Show the user the exact text and get their explicit approval before calling. Not every platform supports repli
revert_postDelete an ALREADY-PUBLISHED post from the platform it went out on (unlike cancel_post, which only stops a post that has not published yet). This removes it from the user's live profile and cannot be undone. Get the user's explicit approval for this exact post first. The response
revert_post_batch"Delete everywhere": delete every published post from one batch (one compose or repurpose action sent to several accounts) from all of its platforms. Each platform is attempted separately and reported separately; some platforms (e.g. TikTok) have no delete API and need manual cle
share_postCreate (or return the existing) public preview link for one of the user's posts. Anyone with the link can view the post without signing in, so get the user's explicit approval before sharing. Revoke it with unshare_post.
unshare_postRevoke a post's public preview link, so the old link stops working. Safe to call when no link exists.
list_draftsList up to 50 draft post variants awaiting review (status draft or pending_review), newest first — including AI-generated drafts from generate_posts — with platform, caption, hashtags, tone and source.
review_draftsApprove or reject several drafts at once by ID. Approving does NOT schedule or publish anything — use schedule_post for that. Rejected drafts drop out of list_drafts. Returns how many drafts were updated.
get_statsGet the account overview: connected accounts, posts queued, published this week and this month, drafts waiting, the last published post, the top performing post of the month, and the average engagement rate (null when no metrics exist yet).
get_analytics_trendsGet per-channel daily trends for the last 7, 30 or 90 days: posts published and failed, engagement and impressions, totals, and the change against the previous period. Each channel's metric field says whether real engagement data exists for it (engagement) or only publish volume
get_growth_overviewGet the Growth Hub overview for the last 7, 30 or 90 days: per-platform engagement trend lines, the weakest-performing platforms (bottlenecks), which post formats perform best, and which platforms have real trend data behind their suggestions. Requires the Empire plan; on other p
list_growth_opportunitiesList rising trends worth posting about now, limited to the user's niches and to platforms they have connected, each with the hashtag, its growth, and a posting suggestion. Returns an empty list — never an invented one — when no real signal exists. Requires the Empire plan; on oth
list_growth_playbooksGet per-platform growth playbooks for the user's connected platforms — cadence, format, timing and anti-spam guidance compiled from each platform's official creator documentation, with source links. Requires the Empire plan; on other plans it returns an upgrade message.
get_next_growth_opportunityGet the single best next content opportunity for the user's connected platforms and niches — a compact version of list_growth_opportunities. Returns `{ opportunity: null }` rather than an invented one when there is no real signal. Requires the Empire plan; on other plans it retur
get_contentripple_usageShow how many ContentRipple repurposes the user has run this month, their monthly limit (null means unlimited), and their plan tier. Check before a large repurposing run so it does not stop halfway.
repurpose_contentTurn one source — a URL, pasted text or markdown, or an RSS item — into channel-native variants such as an X thread, LinkedIn post or carousel, Instagram caption or reel script, newsletter, or YouTube description. Fetches the URL, extracts the core message, writes each variant wi
update_content_variantEdit a saved ContentRipple variant's text (which marks it edited) and/or set its status. Use the variant id returned by repurpose_content. Publishes nothing.
schedule_content_variantSchedule a saved ContentRipple variant (its text plus hashtags) to a connected account of the matching platform at a given time. Only these formats can be published: twitter_thread, linkedin_post, linkedin_carousel, instagram_caption, instagram_reel_script, threads_post, mastodon
fetch_content_feedRead an RSS or Atom feed and return its entries, so the user can pick one to repurpose with repurpose_content (source_type rss). Nothing is saved.
parse_content_sourceExtract the core message, key points and structure from a URL, pasted text (50-20,000 characters) or Markdown, without generating any variants — a preview of what repurpose_content would work from. Counts against the monthly repurpose limit and uses one AI text action, so prefer
list_repurpose_historyList past ContentRipple repurposes, newest first: each source (type, URL, title, core message) with its variants and, for variants that were scheduled, the post's status, URL and engagement.
delete_repurpose_sourceDelete one repurposed source and its variants from ContentRipple history. Posts already scheduled or published from it are not touched. This cannot be undone — confirm with the user first.
generate_postsWrite AI post variants about a topic for one or more platforms — up to 5 per platform — and save them as drafts (visible in list_drafts). Nothing is scheduled or published. Each call counts against the plan's monthly AI generation allowance.
enhance_topicRewrite a raw topic or idea into a structured content brief: a sharper topic, suggested tone, content angles and key messages for the chosen platforms. Saves nothing; counts against the monthly AI allowance. Feed the result to generate_plan or generate_posts.
generate_planFor a topic or brief, suggest hook options, the best posting time slots, and trending hashtags per platform. Saves nothing and schedules nothing; counts against the monthly AI allowance.
research_hashtagsBuild a tiered hashtag strategy for a keyword across platforms — broad, mid and niche tags plus each platform's algorithm signals. Saves nothing; counts against the monthly AI allowance.
get_optimization_insightsAnalyse the last 30 days of post metrics with AI and return the best time of day, best tone, top hashtags, prompt suggestions and per-platform insights. Changes nothing, but each call counts against the monthly AI allowance.
generate_imageGenerate an image for a post from a text prompt, sized for the platform (16:9 for X, LinkedIn and YouTube, square for Instagram and Threads, 9:16 for TikTok), and store it in the user's media. Returns its URL to attach to a post. Uses one AI image action from the plan's quota. No
get_trendsGet the latest trending hashtags and content hooks for the user's TrendPulse niches, each with a snapshot id. Returns cached results under two hours old, or refreshes them live from the trend sources.
queue_trend_draftsTurn 1–3 trend snapshots (from get_trends) into draft posts — one per snapshot for each platform the user has connected — saved to the draft queue (list_drafts). Nothing is scheduled or published.
schedule_trend_postsPublish posts about 1–3 trend snapshots to the given connected accounts, scheduled five minutes from now — one post per content hook per account, written from the trend's hooks. This puts real content in front of a real audience almost immediately and the user does not see the te
refresh_trendsForce a fresh fetch of trending hashtags from every trend source for the user's niches and store new snapshots, instead of waiting for the scheduled refresh. Needs a plan that includes manual refresh; otherwise it returns an upgrade message. Use get_trends afterwards to read them
send_trend_digestEmail the user their trend digest (top recent trends for their niches) now. It always goes to the account owner's own address — never anyone else. Returns `skipped` when the digest is turned off or there are no recent trends.
get_trend_hooksGet the content hooks (opening lines and angles) for one trend snapshot — snapshot ids come from get_trends.
get_trend_platform_contentGet the per-platform content already generated for one trend snapshot — hashtags, plus title/description for YouTube and title/subtitle for Medium. Empty until generate_trend_platform_content has run for it.
generate_trend_platform_contentGenerate per-platform content (hashtags, and titles where a platform needs them) for one trend snapshot, for the platforms asked (default: all seven). Regenerating replaces the earlier content for those platforms. Nothing is posted — turn one into a draft with use_trend_platform_
use_trend_platform_contentTurn one platform's generated trend content into a draft post (generating it first if needed). The draft lands in the review queue (list_drafts) — nothing is published or scheduled.
get_trend_performanceShow how the user's trend-sourced posts actually performed: each TrendPulse draft (last 100) joined to whether it was scheduled or published and its likes, comments, reposts, impressions and reach.
list_post_templatesList the user's saved post templates, most recently updated first — reusable composer states with text, per-platform overrides, target accounts, platform settings, media and first comment.
get_post_templateGet one saved post template in full, by id — to reuse its text, accounts and settings in schedule_post.
create_post_templateSave a reusable post template: default text, optional per-platform text, target accounts, platform settings, media and first comment. Saving publishes nothing.
update_post_templateChange a saved post template. Only the fields passed are changed, and each one passed replaces the stored value entirely (e.g. account_ids replaces the whole list).
delete_post_templatePermanently delete a saved post template. Posts already scheduled from it are not affected. Confirm with the user first.
list_post_tagsList the user's post tags (id, name, colour). Tag ids filter list_posts and get_calendar and are applied with schedule_post or update_post.
create_post_tagCreate a post tag with a name and colour, for grouping posts by campaign or theme. Names must be unique per user.
update_post_tagRename and/or recolour a post tag. Posts keep the tag.
delete_post_tagPermanently delete a post tag and remove it from every post that carries it. The posts themselves are not affected. Confirm with the user first.
list_mediaList the user's uploaded media library, newest first, 24 per page, with each file's public URL — usable directly in schedule_post's media_urls.
delete_mediaPermanently delete a file from the media library and storage. Posts that already include its URL keep their own copy of the URL, but the file behind it is gone. Confirm with the user first.
list_video_avatarsList the stock presenter avatars available for AI video generation. Pass an avatar's id to generate_video.
list_video_voicesList the stock voices available for AI video generation. Pass a voice's id to generate_video.
create_video_scriptWrite a short talking-presenter video script from a post's text. Saves nothing; counts against the monthly AI allowance. Show the script to the user before generate_video.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
The registry name was verified with the GitHub account Misar-AI, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Responded in 1470 ms (HTTP 200)
No sign-in needed
Read 60 tool descriptions and found no hidden instructions to the AI
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: MISARPOST_API_KEY, Authorization
Either way works: install it on your computer or connect to the cloud version.
The GitHub repo last changed –, and the latest version (3.0.0) reached the registry 22 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Spec Driven Development, Remote Desktop Commander, Winecellarbuilders
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Find the team for your wine room.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Plan, generate, schedule and repurpose posts across every connected channel, and track what performs — from any AI assistant.
85 tools · 8 prompts · 6 resources · 8 agent skills
Works with Claude (Desktop, Code, and web), Cursor, VS Code, Windsurf, Cline, Zed, Gemini CLI, ChatGPT, and any other MCP-compatible client — over stdio or Streamable HTTP.
npx -y @smithery/cli install misar/misarpost-mcp --client claude
claude mcp add misarpost -- npx -y @misarpost/mcp@latest
{
"mcpServers": { "misarpost": { "command": "npx", "args": ["-y", "@misarpost/mcp@latest"], "env": { "MISARPOST_API_KEY": "mpk_your_key_here" } } } }
Ready-made configs for every client live in connectors/.
{
"mcpServers": { "misarpost": { "type": "streamable-http", "url": "https://api.misar.io/post/mcp", "headers": { "Authorization": "Bearer mpk_your_key_here" } } } }
Create an API key at https://post.misar.io/dashboard/api-keys (Dashboard → API keys) — it starts with mpk_ — and give it to the server in one of three ways: the MISARPOST_API_KEY environment variable, your MCP client's env block, or { "api_key": "mpk_…" } in ~/.misarpost/config.json.
Self-hosted instances: set MISARPOST_BASE_URL.
| Tool | Description |
|---|---|
list_connections | List the user's active connected social accounts with their account ID, platform and display name. |
list_publish_options | Look up the destinations a connected account can publish into — Discord or Slack channels, Pinterest boards, Reddit post flairs, Hashnode or Medium publications, Hashnode tags, Lemmy communities, Listmonk lists or templates, Skool groups, Whop forums, or WordPress categories and tags. |
list_account_plugs | Show the plugs (automatic follow-up actions — e.g. |
configure_account_plug | Turn a plug on or off for one connected account and set its configuration, replacing the plug's previous configuration. |
list_posts | List the user's scheduled and published posts, newest-scheduled first, 20 per page, with platform, status, scheduled/published time, post URL, tags and engagement metrics. |
schedule_post | Schedule a post to ONE connected account at a given time, or publish it immediately with scheduled_at="now". |
cancel_post | Cancel a post that is still pending or queued, so it never publishes. |
get_calendar | Get every post scheduled between two dates (default: 7 days ago to 30 days ahead), oldest first, with platform, status, time, text, media, first comment and tags — the content calendar view. |
update_post | Edit a post that has not gone out yet (status pending, queued or draft): its text, its scheduled time, its first comment, or its tags. |
reply_to_post | Post a public reply/comment on one of the user's ALREADY-PUBLISHED posts, on the platform it was published to. |
revert_post | Delete an ALREADY-PUBLISHED post from the platform it went out on (unlike cancel_post, which only stops a post that has not published yet). |
revert_post_batch | "Delete everywhere": delete every published post from one batch (one compose or repurpose action sent to several accounts) from all of its platforms. |
share_post | Create (or return the existing) public preview link for one of the user's posts. |
unshare_post | Revoke a post's public preview link, so the old link stops working. |
list_drafts | List up to 50 draft post variants awaiting review (status draft or pending_review), newest first — including AI-generated drafts from generate_posts — with platform, caption, hashtags, tone and source.. |
review_drafts | Approve or reject several drafts at once by ID. |
get_stats | Get the account overview: connected accounts, posts queued, published this week and this month, drafts waiting, the last published post, the top performing post of the month, and the average engagement rate (null when no metrics exist yet).. |
get_analytics_trends | Get per-channel daily trends for the last 7, 30 or 90 days: posts published and failed, engagement and impressions, totals, and the change against the previous period. |
get_growth_overview | Get the Growth Hub overview for the last 7, 30 or 90 days: per-platform engagement trend lines, the weakest-performing platforms (bottlenecks), which post formats perform best, and which platforms have real trend data behind their suggestions. |
list_growth_opportunities | List rising trends worth posting about now, limited to the user's niches and to platforms they have connected, each with the hashtag, its growth, and a posting suggestion. |
list_growth_playbooks | Get per-platform growth playbooks for the user's connected platforms — cadence, format, timing and anti-spam guidance compiled from each platform's official creator documentation, with source links. |
get_next_growth_opportunity | Get the single best next content opportunity for the user's connected platforms and niches — a compact version of list_growth_opportunities. |
get_contentripple_usage | Show how many ContentRipple repurposes the user has run this month, their monthly limit (null means unlimited), and their plan tier. |
repurpose_content | Turn one source — a URL, pasted text or markdown, or an RSS item — into channel-native variants such as an X thread, LinkedIn post or carousel, Instagram caption or reel script, newsletter, or YouTube description. |
update_content_variant | Edit a saved ContentRipple variant's text (which marks it edited) and/or set its status. |
schedule_content_variant | Schedule a saved ContentRipple variant (its text plus hashtags) to a connected account of the matching platform at a given time. |
fetch_content_feed | Read an RSS or Atom feed and return its entries, so the user can pick one to repurpose with repurpose_content (source_type rss). |
parse_content_source | Extract the core message, key points and structure from a URL, pasted text (50-20,000 characters) or Markdown, without generating any variants — a preview of what repurpose_content would work from. |
list_repurpose_history | List past ContentRipple repurposes, newest first: each source (type, URL, title, core message) with its variants and, for variants that were scheduled, the post's status, URL and engagement.. |
delete_repurpose_source | Delete one repurposed source and its variants from ContentRipple history. |
generate_posts | Write AI post variants about a topic for one or more platforms — up to 5 per platform — and save them as drafts (visible in list_drafts). |
enhance_topic | Rewrite a raw topic or idea into a structured content brief: a sharper topic, suggested tone, content angles and key messages for the chosen platforms. |
generate_plan | For a topic or brief, suggest hook options, the best posting time slots, and trending hashtags per platform. |
research_hashtags | Build a tiered hashtag strategy for a keyword across platforms — broad, mid and niche tags plus each platform's algorithm signals. |
get_optimization_insights | Analyse the last 30 days of post metrics with AI and return the best time of day, best tone, top hashtags, prompt suggestions and per-platform insights. |
generate_image | Generate an image for a post from a text prompt, sized for the platform (16:9 for X, LinkedIn and YouTube, square for Instagram and Threads, 9:16 for TikTok), and store it in the user's media. |
get_trends | Get the latest trending hashtags and content hooks for the user's TrendPulse niches, each with a snapshot id. |
queue_trend_drafts | Turn 1–3 trend snapshots (from get_trends) into draft posts — one per snapshot for each platform the user has connected — saved to the draft queue (list_drafts). |
schedule_trend_posts | Publish posts about 1–3 trend snapshots to the given connected accounts, scheduled five minutes from now — one post per content hook per account, written from the trend's hooks. |
refresh_trends | Force a fresh fetch of trending hashtags from every trend source for the user's niches and store new snapshots, instead of waiting for the scheduled refresh. |
send_trend_digest | Email the user their trend digest (top recent trends for their niches) now. |
get_trend_hooks | Get the content hooks (opening lines and angles) for one trend snapshot — snapshot ids come from get_trends.. |
get_trend_platform_content | Get the per-platform content already generated for one trend snapshot — hashtags, plus title/description for YouTube and title/subtitle for Medium. |
generate_trend_platform_content | Generate per-platform content (hashtags, and titles where a platform needs them) for one trend snapshot, for the platforms asked (default: all seven). |
use_trend_platform_content | Turn one platform's generated trend content into a draft post (generating it first if needed). |
get_trend_performance | Show how the user's trend-sourced posts actually performed: each TrendPulse draft (last 100) joined to whether it was scheduled or published and its likes, comments, reposts, impressions and reach.. |
list_post_templates | List the user's saved post templates, most recently updated first — reusable composer states with text, per-platform overrides, target accounts, platform settings, media and first comment.. |
get_post_template | Get one saved post template in full, by id — to reuse its text, accounts and settings in schedule_post.. |
create_post_template | Save a reusable post template: default text, optional per-platform text, target accounts, platform settings, media and first comment. |
update_post_template | Change a saved post template. |
delete_post_template | Permanently delete a saved post template. |
list_post_tags | List the user's post tags (id, name, colour). |
create_post_tag | Create a post tag with a name and colour, for grouping posts by campaign or theme. |
update_post_tag | Rename and/or recolour a post tag. |
delete_post_tag | Permanently delete a post tag and remove it from every post that carries it. |
list_media | List the user's uploaded media library, newest first, 24 per page, with each file's public URL — usable directly in schedule_post's media_urls.. |
delete_media | Permanently delete a file from the media library and storage. |
list_video_avatars | List the stock presenter avatars available for AI video generation. |
list_video_voices | List the stock voices available for AI video generation. |
create_video_script | Write a short talking-presenter video script from a post's text. |
| get_persona_job_status | Check a persona extraction jo
Only the beginning is shown; read the rest in the repo