Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

MisarPost MCP Server

NPM · @MISARPOST/MCP · 2 COMPONENTS

Plan, generate, schedule and repurpose posts across every channel, and track what performs.

72 Trust /100

Last scanned (11 hours ago)

Scores higher than 41% of npm servers

Category Marketing and SEO

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 30 of 92 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability86
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Tool/resource definitions use about 7597 tokens (~83/item across 91 items; 85 tools + 6 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety98
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 9 of 10 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "list_publish_options" implies "publish" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Partial
  • An AI judge read all 86 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 18 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 17 Oct 26 57

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 23 Oct 2026 · Analysed npm/@misarpost/mcp@3.0.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 92 packages
Packages resolved 92
Stale 30
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 85 exposed · ~7,450 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
analyze_competitor ~122

Analyse a competitor's public X (Twitter) or LinkedIn account — posting frequency, content pillars, gaps, engagement and best posting time — and save it (re-analysing the same handle updates it). Needs a plan that includes competitor analysis; otherwise it returns an upgrade message.

NameTypeReqDescription
display_namestring–Name to show for this competitor.
handlestringyesThe competitor's handle on that platform.
nichestring–The competitor's niche, for context.
platformstringyesPlatform the handle is on.

No output schema declared.

No examples provided.

cancel_post ~80

Cancel 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.

NameTypeReqDescription
post_idstringyesPost UUID — from list_posts.

No output schema declared.

No examples provided.

configure_account_plug ~163

Turn 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 user first. Get valid plug keys and config fields from list_account_plugs.

NameTypeReqDescription
account_idstringyesConnected account UUID — from list_connections.
activatedbooleanyestrue to activate the plug, false to switch it off.
configobject–The plug's configuration as flat key → string/number/boolean values, using the configFields list_account_plugs returns. Replaces the existing configuration.
plug_keystringyesPlug key — from list_account_plugs definitions.

No output schema declared.

No examples provided.

create_persona ~188

Start learning a writing persona from recent posts — either a connected account (instagram, twitter, youtube) or a public profile (youtube, medium, mastodon, bluesky). Fetches the posts and analyses them with AI in the background (counts against the plan's AI image allowance, for the persona cover); returns a job id to poll with get_persona_job_status.

NameTypeReqDescription
connected_account_idstring–Required for connected_account — from list_connections.
identifierstring–Required for public_profile — the profile handle or URL (max 300 characters).
namestring–Optional persona name (max 60 characters).
platformstringyesconnected_account: instagram, twitter, youtube. public_profile: youtube, medium, mastodon, bluesky.
source_kindstringyesLearn from one of the user's connected accounts, or from a public profile.

No output schema declared.

No examples provided.

create_post_tag ~57

Create a post tag with a name and colour, for grouping posts by campaign or theme. Names must be unique per user.

NameTypeReqDescription
colorstringyesTag colour.
namestringyesTag name (1–60 characters).

No output schema declared.

No examples provided.

create_post_template ~174

Save a reusable post template: default text, optional per-platform text, target accounts, platform settings, media and first comment. Saving publishes nothing.

NameTypeReqDescription
account_idsarray–Connected account UUIDs the template targets (max 50) — from list_connections.
contentstring–Default post text, up to 20,000 characters.
content_overridesobject–Per-platform text that replaces content for that platform, as platform → text.
first_commentstring–First comment text (max 2200 characters).
mediaarray–Up to 10 media attachments.
namestringyesTemplate name (1–120 characters).
platform_settingsobject–Per-platform publish settings, as platform → settings object (same keys as schedule_post's platform_meta).

No output schema declared.

No examples provided.

create_video_script ~64

Write 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.

NameTypeReqDescription
post_textstringyesPost text to base the script on (1–4000 characters).

No output schema declared.

No examples provided.

create_webhook ~110

Register an outbound webhook: MisarPost will POST signed payloads for the chosen events to this URL from now on. The response carries the signing secret exactly once — tell the user to store it; it cannot be shown again. Sending account data to a new URL needs the user's explicit approval of that URL.

NameTypeReqDescription
eventsarrayyesEvents to deliver: post.published, post.failed, account.disconnected.
urlstringyesThe user's public HTTPS endpoint (max 2048 characters).

No output schema declared.

No examples provided.

delete_media ~62

Permanently 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.

NameTypeReqDescription
media_idstringyesMedia UUID — from list_media.

No output schema declared.

No examples provided.

delete_persona ~50

Permanently delete a persona and its learned voice. Recreating it means re-running create_persona. Confirm with the user first.

NameTypeReqDescription
persona_idstringyesPersona UUID — from list_personas.

No output schema declared.

No examples provided.

delete_post_tag ~53

Permanently delete a post tag and remove it from every post that carries it. The posts themselves are not affected. Confirm with the user first.

NameTypeReqDescription
tag_idstringyesTag UUID — from list_post_tags.

No output schema declared.

No examples provided.

delete_post_template ~47

Permanently delete a saved post template. Posts already scheduled from it are not affected. Confirm with the user first.

NameTypeReqDescription
template_idstringyesTemplate UUID — from list_post_templates.

No output schema declared.

No examples provided.

delete_repurpose_source ~62

Delete 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.

NameTypeReqDescription
source_idstringyesSource UUID — from list_repurpose_history.

No output schema declared.

No examples provided.

delete_webhook ~46

Permanently remove an outbound webhook; events stop being delivered to its URL. Confirm with the user first.

NameTypeReqDescription
webhook_idstringyesWebhook UUID — from list_webhooks.

No output schema declared.

No examples provided.

enhance_topic ~114

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. Saves nothing; counts against the monthly AI allowance. Feed the result to generate_plan or generate_posts.

NameTypeReqDescription
audiencestring–Target audience, up to 200 characters.
goalstring–Content goal (default engagement).
platformsarrayyesTarget platforms (at least one).
raw_topicstringyesRaw topic or idea (3–500 characters).

No output schema declared.

No examples provided.

fetch_content_feed ~57

Read 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.

NameTypeReqDescription
feed_urlstringyesURL of the RSS or Atom feed.

No output schema declared.

No examples provided.

generate_bio_variants ~106

Generate two profile-bio variants for one platform in the user's trained voice — A authority-focused, B curiosity-focused — and save them as a bio A/B test. Optionally pass the current bio to improve on. Uses one AI text action. Nothing is changed on the platform itself.

NameTypeReqDescription
current_biostring–The bio the user has now, to improve on.
platformstringyesPlatform the bio is for, e.g. twitter or linkedin.

No output schema declared.

No examples provided.

generate_image ~109

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. Returns its URL to attach to a post. Uses one AI image action from the plan's quota. Nothing is posted.

NameTypeReqDescription
platformstring–Platform to size it for (default twitter).
promptstringyesWhat the image should show.

No output schema declared.

No examples provided.

generate_persona_post ~119

Write a post about a topic in a persona's voice (or the user's own trained voice when no persona is given), with a voice-match score. The post is saved for review, not scheduled. Counts against the monthly PersonaForge post allowance.

NameTypeReqDescription
persona_idstring–Persona UUID — from list_personas. Omit to use the user's own trained voice.
platformstringyesPlatform to write for, e.g. linkedin or twitter.
topicstringyesWhat the post is about (1–500 characters).

No output schema declared.

No examples provided.

generate_persona_reply ~130

Draft a reply, in the user's trained voice, to an inbound comment or message on one of their posts. The draft is saved as pending for review (list_persona_replies) — nothing is sent. Needs a plan with PersonaForge replies.

NameTypeReqDescription
inbound_textstringyesThe comment or message to reply to (max 2000 characters).
platformstringyesPlatform the conversation is on.
source_post_idstringyesPlatform id of the user's post being replied under.
source_post_textstringyesText of that post (max 1000 characters).

No output schema declared.

No examples provided.

generate_plan ~81

For 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.

NameTypeReqDescription
enhanced_topicstringyesTopic or content brief (3–1000 characters), e.g. from enhance_topic.
platformsarrayyesTarget platforms (at least one).

No output schema declared.

No examples provided.

generate_posts ~123

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). Nothing is scheduled or published. Each call counts against the plan's monthly AI generation allowance.

NameTypeReqDescription
countnumber–Variants per platform, 1–5 (default 3).
platformsarrayyesPlatforms to write for (at least one).
tonestring–Writing tone (default professional).
topicstringyesTopic or brief for the posts (3–500 characters).

No output schema declared.

No examples provided.

generate_trend_platform_content ~102

Generate 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_content.

NameTypeReqDescription
platformsarray–Platforms to generate for. Omit for all of them.
snapshot_idstringyesTrend snapshot UUID — from get_trends.

No output schema declared.

No examples provided.

generate_video ~142

Start rendering an AI presenter video from a script, avatar and voice. Returns a job id immediately; poll get_video_status until it completes. Rendering is metered and spends the user's video allowance — confirm the script first.

NameTypeReqDescription
aspect_ratiostringyesVideo shape.
avatar_idstringyesAvatar id — from list_video_avatars.
captionsboolean–Burn in captions (default true).
providerstring–Video provider (default heygen, currently the only one).
scriptstringyesWhat the presenter says (1–5000 characters).
voice_idstringyesVoice id — from list_video_voices.

No output schema declared.

No examples provided.

get_analytics_trends ~101

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. Each channel's metric field says whether real engagement data exists for it (engagement) or only publish volume (posts) — never present a posts-only channel's zero engagement as a real result.

NameTypeReqDescription
daysnumber–Window in days (default 30).

No output schema declared.

No examples provided.

get_calendar ~133

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. Optionally only posts with one tag. Needs a plan that includes the content calendar; otherwise it returns an upgrade message.

NameTypeReqDescription
fromstring–Start date, YYYY-MM-DD (default 7 days ago).
tag_idstring–Only posts carrying this post tag (UUID).
tostring–End date, YYYY-MM-DD, inclusive (default 30 days from now).

No output schema declared.

No examples provided.

get_contentripple_usage ~54

Show 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.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_growth_overview ~89

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. Requires the Empire plan; on other plans it returns an upgrade message.

NameTypeReqDescription
daysnumber–Window in days (default 30).

No output schema declared.

No examples provided.

get_next_growth_opportunity ~68

Get 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 returns an upgrade message.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_optimization_insights ~74

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. Changes nothing, but each call counts against the monthly AI allowance.

NameTypeReqDescription
platformstring–Only this platform's posts. Omit for all platforms.

No output schema declared.

No examples provided.

get_persona ~49

Get one persona in full: its name, cover image, source account, and the style profile used when writing in it.

NameTypeReqDescription
persona_idstringyesPersona UUID — from list_personas.

No output schema declared.

No examples provided.

get_persona_job_status ~52

Check a persona extraction job started by create_persona: its status, the new persona's id once done, or the error.

NameTypeReqDescription
job_idstringyesJob id — from create_persona.

No output schema declared.

No examples provided.

get_post_template ~47

Get one saved post template in full, by id — to reuse its text, accounts and settings in schedule_post.

NameTypeReqDescription
template_idstringyesTemplate UUID — from list_post_templates.

No output schema declared.

No examples provided.

get_stats ~55

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).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_trend_hooks ~49

Get the content hooks (opening lines and angles) for one trend snapshot — snapshot ids come from get_trends.

NameTypeReqDescription
snapshot_idstringyesTrend snapshot UUID — from get_trends.

No output schema declared.

No examples provided.

get_trend_performance ~52

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.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_trend_platform_content ~67

Get 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.

NameTypeReqDescription
snapshot_idstringyesTrend snapshot UUID — from get_trends.

No output schema declared.

No examples provided.

get_trends ~48

Get 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.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_video_status ~56

Check an AI video job: processing, failed (with the error), or completed with the video's URL in the media storage — ready for schedule_post's media_urls.

NameTypeReqDescription
job_idstringyesJob id — from generate_video.

No output schema declared.

No examples provided.

get_voice_model ~55

Get the user's own trained voice model — tone breakdown, signature phrases, emoji patterns, average post length, preferred hooks, hashtag style and how many posts it learned from. `model` is null until train_voice_model has run.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_account_plugs ~89

Show 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 recent plug runs.

NameTypeReqDescription
account_idstringyesConnected account UUID — from list_connections.

No output schema declared.

No examples provided.

list_competitor_personas ~40

List the competitor accounts the user has analysed, newest first, with posting frequency, content pillars, gaps, average engagement and best posting time.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_connections ~53

List 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.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_drafts ~48

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.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_growth_opportunities ~73

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. Returns an empty list — never an invented one — when no real signal exists. Requires the Empire plan; on other plans it returns an upgrade message.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_growth_playbooks ~59

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. Requires the Empire plan; on other plans it returns an upgrade message.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_media ~61

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.

NameTypeReqDescription
pagenumber–1-indexed page (default 1, 24 items per page).

No output schema declared.

No examples provided.

list_notifications ~68

List the user's MisarPost notifications (publish results, account problems and the like), newest first, with the unread count.

NameTypeReqDescription
pagenumber–1-indexed page (default 1).
page_sizenumber–Items per page (default 20, max 50).

No output schema declared.

No examples provided.

list_persona_replies ~48

List AI-drafted replies to inbound comments and messages, by status (default pending — the ones waiting for review).

NameTypeReqDescription
statusstring–Which replies to list (default pending).

No output schema declared.

No examples provided.

list_personas ~33

List the user's PersonaForge personas — writing styles learned from a real account — plus extraction jobs still running and recent failures.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

Install

How do I install the MisarPost MCP Server server?

MisarPost MCP Server runs locally as an npm package, launched with npx -y @misarpost/mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @misarpost/mcp

# add to Claude Code
claude mcp add misar-ai-misarpost-mcp -- npx -y @misarpost/mcp
Common questions

What is the MisarPost MCP Server server?

MisarPost MCP Server is listed in the public MCP registry as io.github.Misar-AI/misarpost-mcp. Plan, generate, schedule and repurpose posts across every channel, and track what performs. This page covers its npm package (@misarpost/mcp).

Is the MisarPost MCP Server server safe to use?

MisarPost MCP Server scores 72 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 23 October 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the MisarPost MCP Server server expose?

MisarPost MCP Server exposes 85 tools: list_connections, list_publish_options, list_account_plugs, configure_account_plug, list_posts, and 80 more. Their descriptions and schemas cost roughly 7,450 tokens of context every time the server is loaded.

Is the MisarPost MCP Server server still maintained?

MisarPost MCP Server is still listed as active in the MCP registry. We last reached this channel on 23 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the MisarPost MCP Server server under?

MisarPost MCP Server declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.