BetterPost

ai.betterpost由 betterpost.ai 發布官方發布者v2.0.0更新於 Oct 25, 2026

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

已驗證Streamable HTTP可網頁執行網頁搜尋與抓取媒體與設計

概覽

AI 產生的概覽

BetterPost 是託管式 MCP 伺服器,可為專案尋找即時的新聞、社群與網路來源,並撰寫附引用的電子報、部落格與社群貼文。

可以做什麼
建立與管理內容專案,包括受眾、語氣、時效範圍與相關性準則,並在素材不足或偏離主題時擴大來源涵蓋範圍。新增、列出與移除來源,並列出、新增、隱藏或取消隱藏從來源收集的故事。依目前故事建議主題角度,並據此產生新內容。將既有內容轉換為其他格式,例如把電子報改成推文。列出、讀取與刪除已產生的內容,並調整各通路的字數上限與寫作指示。查看點數餘額、凍結狀態與近期消費,並把現有文字改寫成更自然的語氣。
適用情境
適合讓助理圍繞產品領域的最新動態起草可發布、附引用來源的內容,或為定期電子報與社群發文流程持續提供新鮮且已排序的來源。
執行需求
遠端 Streamable HTTP 端點,不需本機套件或執行環境。需要 BetterPost 帳號,首次使用時透過 OAuth 2.1 登入,無需複製權杖。需要能連線至該託管服務的網路。
安裝前請注意
產生成功會扣點數,新帳號有免費點數,因此使用可能產生費用;可用用量工具查看餘額。刪除專案會永久移除其來源、故事與內容,刪除內容也會移除其託管的圖片。內容會發布到可分享的公開連結。此服務會代你從新聞、社群與開放網路擷取並排序來源。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 BetterPost,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/ai.betterpost%2Fserver/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

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

README

BetterPost — agent plugin and skill

Write timely, well-sourced content — newsletters, blog posts, LinkedIn posts, tweets, and Bluesky posts — grounded in current sources across news, social, and the open web. BetterPost finds recent sources relevant to your product and audience, ranks them by relevance, and writes human-sounding content with real citations and publication dates.

Works in the agents you already use, through a single MCP server. Free to start — sign in with your BetterPost account to get free credits.

Install

Any agent

npx skills add betterpost/betterpost-plugin

This installs the betterpost skill into whichever agent you use. It does not configure the MCP server — the skill walks your agent through registering https://betterpost.ai/mcp the first time you ask for content.

Claude Code

/plugin marketplace add betterpost/betterpost-plugin/plugin install betterpost@betterpost

This installs the skill and registers the MCP server for you.

Either way, ask your agent to write a newsletter or post about what's happening in your space. It sets up a project and generates content grounded in current sources.

What's in here

  • skills/betterpost/SKILL.md — the skill your agent invokes.
  • .mcp.json — registers the hosted BetterPost MCP server.
  • .claude-plugin/ — the plugin manifest and self-listed marketplace.
  • .codex-plugin/, .cursor-plugin/, .kimi-plugin/, .agents/, .opencode/, .pi/, gemini-extension.json — manifests for the other agents.

Using the server directly

Any MCP client can connect to https://betterpost.ai (Streamable HTTP). On first use, the client prompts you to sign in with your BetterPost account (OAuth 2.1) and handles the session for you — there's no token to copy or persist. New accounts get free credits on sign-up.

Links

License

MIT

來源:README.md,提交 071e14f

工具

23

betterpost_create_project

Create project

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

輸入參數tonetitle必填audience必填description

betterpost_generate_content

Generate content

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

輸入參數type必填reusetieIntopicprojectId必填wordLimit

betterpost_derive_content

Derive content

Transform an existing piece into another format (e.g. newsletter → tweet). No fetching; reuses the source stories and topic.

輸入參數type必填tieInfromContentId必填

betterpost_list_content

List content

List a project's content (summaries + shareable `publicUrl` links).

輸入參數projectId必填

betterpost_get_content

Get content

Fetch one piece of content in full.

輸入參數contentId必填

betterpost_delete_content

Delete content

Delete a piece of content and its hosted images.

輸入參數contentId必填

betterpost_list_projects

List projects

Returns your projects, each with its relevance `criteria` (with ids) that define what counts as on-topic.

無需輸入參數。

betterpost_get_project

Get project

Returns one project with its relevance `criteria` (each with an id, so a criterion can be targeted for removal via betterpost_update_project).

輸入參數projectId必填

betterpost_update_project

Update project

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

輸入參數patchprojectId必填

betterpost_delete_project

Delete project

Permanently deletes a project and everything in it — its sources, stories, and content. Cannot be undone.

輸入參數projectId必填

betterpost_list_sources

List sources

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

輸入參數limitoffsetprojectId必填

betterpost_add_source

Add source

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

輸入參數nametypevalue必填projectId必填

betterpost_remove_source

Remove source

Removes a source from a project. Its already-gathered stories stay; the source is no longer fetched.

輸入參數sourceId必填

betterpost_list_stories

List stories

Returns a project's gathered stories, each with `title`, `url`, `summary`, `relevancy`, `publicationDate`, and `isManual`/`isHidden` flags. Pass includeHidden to include hidden ones.

輸入參數projectId必填includeHidden

betterpost_add_story

Add story

Manually imports a story you read about from its URL (pinned relevance, flagged is_manual) so generation can draw on it.

輸入參數url必填titlesummaryprojectId必填

betterpost_hide_story

Hide story

Hides a story so generation ignores it. Reversible with unhide_story.

輸入參數storyId必填

betterpost_unhide_story

Unhide story

Unhides a previously hidden story so generation can use it again.

輸入參數storyId必填

betterpost_suggest_topics

Suggest topics

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

輸入參數typecountprojectId必填

betterpost_get_usage

Get usage

Your credit balance, freeze state, and recent spend.

無需輸入參數。

betterpost_get_settings

Get settings

Returns a project's per-content-type settings (wordLimit and additionalInstructions for each channel).

輸入參數projectId必填

betterpost_update_settings

Update settings

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

輸入參數type必填projectId必填wordLimitadditionalInstructions

betterpost_expand_coverage

Expand coverage

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

輸入參數focusprojectId必填addAsCriteriaconfirmedByUser

betterpost_humanize

Humanize text

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

輸入參數text必填tonetypeprojectId

版本歷史

1
  1. v2.0.0最新Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分