Skip to main content

BetterPost

ai.betterpost/serverVersion 2.0.0

Finds timely sources across news, social, and the web and writes posts worth publishing.

Status

Responds387 msAnswered our handshake without sign-in.

Registry data may be out of date

We could not refresh it, so this page shows the last copy.
Last checked
Nov 14, 2026, 13:27 UTC
Latency
387 ms
Remotes responding
1 of 1
Sign-in
No sign-in
Hosting
Hosted outside the EU (detected)
Registry data as of
Nov 14, 2026, 21:12 UTC

Data from the official MCP Registry, checked by run.zero. How we check

Connect

Streamable HTTP
https://betterpost.ai/mcpResponds387 ms
No sign-in

Claude Code

claude mcp add --transport http betterpost https://betterpost.ai/mcp

Claude Desktop and claude.ai

Settings > Connectors > Add custom connector
Name: betterpost
Remote MCP server URL: https://betterpost.ai/mcp

Cursor

{
  "mcpServers": {
    "betterpost": {
      "url": "https://betterpost.ai/mcp"
    }
  }
}

VS Code

code --add-mcp '{"name":"betterpost","type":"http","url":"https://betterpost.ai/mcp"}'

Built your own server? run.zero hosts MCP servers on European infrastructure.

Host your own MCP server on run.zero

Tools

23 tools

Tools of BetterPost
Read-only
Idempotent
Open world
betterpost_add_sourceAdds a source to a project and fetches it immediately (bounded by a few seconds), returning `storiesAdded` so the next generate_content can use it; if it is still fetching it returns `fetched:false` with a note. Doubles as manual source import: paste any URL (RSS/Atom feed, article, or a page, profile, or post on a supported platform) and leave `type` as autodetect, or create a recurring keyword search by setting `value` to the search terms and `type` to a search kind (see `type`).NoNoNoYes
betterpost_add_storyManually imports a story you read about from its URL (pinned relevance, flagged is_manual) so generation can draw on it.NoNoNoYes
betterpost_create_projectCreate a content project. Slow, one-shot: infers config (criteria, industry, tone), discovers sources, and gathers/ranks an initial set of timely stories. Best called after the inferred audience, description, and tone have been confirmed with the user, since the config shapes everything downstream.NoNoNoYes
betterpost_delete_contentDelete a piece of content and its hosted images.YesNoYesNo
betterpost_delete_projectPermanently deletes a project and everything in it — its sources, stories, and content. Cannot be undone.YesNoYesNo
betterpost_derive_contentTransform an existing piece into another format (e.g. newsletter → tweet). No fetching; reuses the source stories and topic.NoNoNoNo
betterpost_expand_coverageBroadens a project's coverage: expands the relevance criteria (when needed), finds more sources across news, the web, and the relevant social platforms, and fetches them inline. Applies on a `topic_unavailable`, `no_stories`, or low-coverage signal. May return `warming: true` with `retryAfterMs` (~60s), meaning the newly gathered stories are still landing. An out-of-scope `focus` requires `confirmedByUser: true`; without it, it returns a `confirmation_required` error. No credits are charged.NoNoNoYes
betterpost_generate_contentGenerate a new piece of content for a project from its timely, relevant stories. Fast in steady state. Charges credits on success only. If you pass a `topic` the project has no stories about, this returns a `topic_unavailable` error (no charge) carrying an `inScope` flag and next steps — it never silently writes an off-topic piece.NoNoNoYes
betterpost_get_contentFetch one piece of content in full.NoYesNot declaredNo
betterpost_get_projectReturns one project with its relevance `criteria` (each with an id, so a criterion can be targeted for removal via betterpost_update_project).NoYesNot declaredNo
betterpost_get_settingsReturns a project's per-content-type settings (wordLimit and additionalInstructions for each channel).NoYesNot declaredNo
betterpost_get_usageYour credit balance, freeze state, and recent spend.NoYesNot declaredNo
betterpost_hide_storyHides a story so generation ignores it. Reversible with unhide_story.NoNoYesNo
betterpost_humanizeRewrite existing text into BetterPost's readable, human voice. Preserves the meaning, facts, links, and format; returns the rewritten text plus short notes on what changed. Pass `projectId` to write in that project's tone and instructions, `type` to apply a channel's style, or `tone` to set the voice directly.NoNoNoNo
betterpost_list_contentList a project's content (summaries + shareable `publicUrl` links).NoYesNot declaredNo
betterpost_list_projectsReturns your projects, each with its relevance `criteria` (with ids) that define what counts as on-topic.NoYesNot declaredNo
betterpost_list_sourcesReturns one slimmed page of a project's sources plus project-wide `total` and `counts` (ok/failing/disabled/pending, and byType). Page with `limit` (default 50) and `offset`, following the returned `nextOffset` until it is null.NoYesNot declaredNo
betterpost_list_storiesReturns a project's gathered stories, each with `title`, `url`, `summary`, `relevancy`, `publicationDate`, and `isManual`/`isHidden` flags. Pass includeHidden to include hidden ones.NoYesNot declaredNo
betterpost_remove_sourceRemoves a source from a project. Its already-gathered stories stay; the source is no longer fetched.YesNoYesNo
betterpost_suggest_topicsClusters a project's current stories into a few candidate angles — each with a label, how many stories back it, and example headlines — and warms the project (gathers and ranks fresh stories) in the process. Returns topics you can offer the user before generate_content.NoNoNoYes
betterpost_unhide_storyUnhides a previously hidden story so generation can use it again.NoNoYesNo
betterpost_update_projectUpdates a project's title, audience, description, tone, freshness window, timezone, or relevance criteria, and returns the updated project with its criteria. Changing title/audience/description re-derives the relevance criteria (replace-all), which broadens or narrows what counts as on-topic. To edit criteria incrementally instead, pass `patch.addCriteria` (texts to append) and/or `patch.removeCriteria` (criterion ids from get_project/list_projects). Dates default to US Eastern unless a `timezone` (an IANA name like "America/New_York") is set.NoNoNoNo
betterpost_update_settingsPatches one content type's wordLimit and/or additionalInstructions (free-form writing guidance for that type; pass an empty string to clear it). Project-wide preferences (title/audience/tone, project-wide additionalInstructions) live on betterpost_update_project.NoNoYesNo

Details

Registry status
Active
Published
Jul 8, 2026
Updated
Jul 8, 2026
Categories (suggested)
Search and webSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
GDPR
Not declared

Are you the operator? Claim this listing