Google Search Console integration for Model Context Protocol (MCP)
MisarPost is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Plan, generate, schedule and repurpose posts across every channel, and track what performs.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user misarpost-mcp '--' npx -y @misarpost/mcp
# 2 — ask your agent for something these tools do
# list_connections, list_publish_options, list_account_plugs and 29 more
Remote: no sign-in · Package: API key.
MisarPost costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. This one can run either way — at an address its publisher runs, or as a process under your own user, with your files and your network — and this marketplace is in the path of neither.
This is a public server: you run it yourself and this marketplace is not in the path. You need Node.js — the current LTS (24) is the safe choice; npx comes with it. Claude Code registers it in one command; --scope user makes it available in every project. The '--' is in quotes so that PowerShell passes it on.
claude mcp add --scope user misarpost-mcp '--' npx -y @misarpost/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
Its publisher also runs it at https://api.misar.io/post/mcp: nothing to start on your machine, and this marketplace is not in the path.
claude mcp add --scope user --transport http misarpost-mcp https://api.misar.io/post/mcpNothing is required, but it can take MISARPOST_API_KEY (Your MisarPost API key (mpk_…). Create one at https://post.misar.io/dashboard/api-keys.), MISARPOST_BASE_URL (Override the API base URL. Only needed for self-hosted instances.) if you want to set them.
One config entry your client uses to start the process locally. A local server runs with your file system and your network, which is why it is priced without metering.
32 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Read from its source code. A server that builds its tool list when it starts can list more tools than this.
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.
No parameter schema on file.
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. Use the…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kind | string | yes | Which list to fetch; it must match the connected account's platform. |
| account_id | string | yes | Connected account UUID — from list_connections. |
| subreddit | string | no | Subreddit name (without r/). Required for kind=reddit_flairs. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| account_id | string | yes | Connected account UUID — from list_connections. |
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…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| account_id | string | yes | Connected account UUID — from list_connections. |
| plug_key | string | yes | Plug key — from list_account_plugs definitions. |
| activated | boolean | yes | true to activate the plug, false to switch it off. |
| config | object | no | The plug's configuration as flat key → string/number/boolean values, using the configFields list_account_plugs returns. Replaces the existing configuration. |
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. Filter by status (e.g. queued or pending for what is coming up — the content calendar — or published for what went out) or by…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| status | string | no | Only posts in this status. Omit for every status except archived and cancelled. |
| tag_id | string | no | Only posts carrying this post tag (UUID). |
| page | number | no | 1-indexed page number (default 1, 20 posts per page). |
Schedule 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, call once per…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| connected_account_id | string | yes | Connected account UUID — from list_connections. |
| platform | string | yes | Platform of that connected account (must match it). |
| content_text | string | yes | Post text, 1–5000 characters. |
| scheduled_at | string | yes | ISO 8601 datetime with timezone (e.g. 2030-01-01T09:00:00Z), or "now" to publish immediately. |
| media_urls | array | no | Up to 10 publicly reachable media URLs to attach. |
| first_comment | string | no | Optional first comment posted under the post (max 2200 characters). |
| variant_id | string | no | UUID of the draft (from list_drafts or generate_posts) this post was made from; marks that draft as scheduled. |
| platform_meta | object | no | Platform-specific publish settings, passed through to the publisher. Examples: Reddit { subreddit, flairId }, Pinterest { board }, Discord/Slack { channelId }, YouTube { title, privacyStatus }, Hashno |
| tag_ids | array | no | Up to 20 post tag UUIDs to apply. |
| post_batch_id | string | no | UUID shared by every call that posts the same content to different accounts, so they can later be managed together. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| post_id | string | yes | Post UUID — from list_posts. |
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…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| from | string | no | Start date, YYYY-MM-DD (default 7 days ago). |
| to | string | no | End date, YYYY-MM-DD, inclusive (default 30 days from now). |
| tag_id | string | no | Only posts carrying this post tag (UUID). |
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. Changing the time moves when it publishes, so confirm the new text and time with the user first. Published posts cannot be edited.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| post_id | string | yes | Post UUID — from list_posts or get_calendar. |
| content_text | string | no | New post text. |
| scheduled_at | string | no | New ISO 8601 datetime with timezone offset, e.g. 2030-01-01T09:00:00+05:30. |
| first_comment | string/null | no | New first comment, or null to remove it. |
| tag_ids | array | no | Replace the post's tags with these post tag UUIDs (max 20); [] removes all. |
Post 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 replies; an unsupported…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| post_id | string | yes | Post UUID — from list_posts (status published). |
| message | string | yes | The reply text. |
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). 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 includes the…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| post_id | string | yes | Post UUID — from list_posts (status published). |
"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 clean-up. Cannot be…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| post_batch_id | string | yes | Batch UUID — post_batch_id from list_posts, or postBatchId from revert_post. |
Create (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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| post_id | string | yes | Post UUID — from list_posts. |
Revoke a post's public preview link, so the old link stops working. Safe to call when no link exists.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| post_id | string | yes | Post UUID — from list_posts. |
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.
No parameter schema on file.
Approve 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| action | string | yes | What to do with the drafts. |
| ids | array | yes | Draft UUIDs — from list_drafts. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| topic | string | yes | Topic or brief for the posts (3–500 characters). |
| platforms | array | yes | Platforms to write for (at least one). |
| tone | string | no | Writing tone (default professional). |
| count | number | no | Variants per platform, 1–5 (default 3). |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| raw_topic | string | yes | Raw topic or idea (3–500 characters). |
| goal | string | no | Content goal (default engagement). |
| audience | string | no | Target audience, up to 200 characters. |
| platforms | array | yes | Target platforms (at least one). |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| enhanced_topic | string | yes | Topic or content brief (3–1000 characters), e.g. from enhance_topic. |
| platforms | array | yes | Target platforms (at least one). |
Build 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| keyword | string | yes | Primary keyword or topic (2–200 characters). |
| niche | string | no | Content niche, up to 100 characters. |
| platforms | array | yes | Target platforms (at least one). |
| goal | string | no | Strategy goal (default awareness). |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| platform | string | no | Only this platform's posts. Omit for all platforms. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| prompt | string | yes | What the image should show. |
| platform | string | no | Platform to size it for (default twitter). |
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.
No parameter schema on file.
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. Fetches the URL, extracts the core message, writes each variant with AI, and saves…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| source_type | string | yes | url: fetch source_url. text or docforge: use raw_content (pasted text or markdown). rss: pass the item's URL as source_url. |
| source_url | string | no | Source URL (required for source_type=url). |
| raw_content | string | no | Source text or markdown, up to 20,000 characters (required for text/docforge). |
| formats | array | no | Which variants to write. Omit for all of them. |
| tone | string | no | Writing tone (default professional). |
Edit 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| variant_id | string | yes | Content variant UUID — from repurpose_content. |
| content | string | no | New variant text, up to 20,000 characters. |
| status | string | no | New status. At least one of content or status is required. |
Schedule 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: … — the rest are copy-only. This queues real content for a real audience; confirm the text, account and time with the user first.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| variant_id | string | yes | Content variant UUID — from repurpose_content. |
| connected_account_id | string | yes | Connected account UUID on the variant's platform — from list_connections. |
| scheduled_at | string | yes | ISO 8601 datetime (UTC, e.g. 2030-01-01T09:00:00Z). |
| post_batch_id | string | no | Optional UUID shared with sibling posts of the same content, for managing them together. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| feed_url | string | yes | URL of the RSS or Atom feed. |
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. Counts against the monthly repurpose limit and uses one AI text action, so prefer repurpose_content…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| type | string | yes | What kind of source: a URL, plain text, or Markdown (docforge). |
| url | string | no | Required when type is url. |
| text | string | no | Required when type is text. |
| markdown | string | no | Required when type is docforge. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | How many sources (default 20, at most 50). |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| source_id | string | yes | Source UUID — from list_repurpose_history. |
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).
No parameter schema on file.
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…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| days | number | no | Window in days (default 30). |
- Every tool, no call limit
- No card, and mcprush charges nothing for it
- Source published under MIT
- Runs on your machine — nothing of it reaches our gateway
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install MisarPost or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | minimal | capability blast radius (minimal) — client exposure if the model is manipulated | −0 |
| verification-discount | repo | publisher verification (public source) — no provenance, but the source is public and inspectable | −1 |
| coverage-honesty | source | inspection depth (source) — how much of the target the scan could see | −0 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
No tools were enumerated, so prompt-injection, capability and toxic-flow analysis had no tool surface to inspect. To grade a package’s real runtime tools, scan the running server: --command "npx -y <package>".
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. minimal is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| No per-tool rows for this release — see the note below. | ||
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
The public result for this release does not print the flow graph, so there is nothing to show here. That is not the same as "no paths were found": what the scan did read is above, under coverage.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
Always latest — the install command names no version, so it installs the newest release when it runs; the current release on file is 3.0.0. Pin a release below and the command asks for exactly that one.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish MisarPost can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.