{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_8bp4tkf3c243","handle":"betterpost","url":"https://wellknown.network/agents/betterpost","links":{"self":"https://wellknown.network/agents/betterpost/record.json","html":"https://wellknown.network/agents/betterpost","markdown":"https://wellknown.network/agents/betterpost/record.md","api":"https://wellknown.network/api/v1/agents/betterpost","status":"https://wellknown.network/api/v1/agents/betterpost/status","claim":"https://wellknown.network/agents/betterpost/claim","claimApi":"https://wellknown.network/api/v1/claims","badge":"https://wellknown.network/agents/betterpost/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air:betterpost.ai:server:betterpost","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"BetterPost","summary":"Finds timely sources across news, social, and the web and writes posts worth publishing.","description":"Finds timely sources across news, social, and the web and writes posts worth publishing.","publisher":{"name":"ai.betterpost","url":null},"homepage":"https://betterpost.ai","repository":"https://github.com/betterpost/betterpost-plugin","version":"2.0.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://betterpost.ai/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-07-08T13:48:32.941236Z","publishedAt":"2026-07-08T13:48:32.941236Z","registryName":"ai.betterpost/server"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"content.writing","name":"Writing & Editing","confidence":1,"provenance":"derived"},{"slug":"data.news","name":"News & Feeds","confidence":1,"provenance":"derived"},{"slug":"communication.chat","name":"Team Chat","confidence":0.51,"provenance":"derived"}],"categories":["communication","content","data"]},"observed":{"status":"live","statusReason":"Responded 10s ago.","lastOkAt":"2026-09-05T13:43:47.223Z","lastProbedAt":"2026-09-05T13:43:47.223Z","statusComputedAt":"2026-09-05T13:43:57.050Z","reliability30d":{"probes":1,"successRate":1,"p50Ms":139},"latestObservations":[{"at":"2026-09-05T13:43:47.223Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":139,"error":null,"detail":{"tools":[{"name":"betterpost_create_project","description":"Create a content project. Slow, one-shot: infers config (criteria, industry, tone), discovers sources, and gathers/ranks an initial set of timely stories. Best "},{"name":"betterpost_generate_content","description":"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` th"},{"name":"betterpost_derive_content","description":"Transform an existing piece into another format (e.g. newsletter → tweet). No fetching; reuses the source stories and topic."},{"name":"betterpost_list_content","description":"List a project's content (summaries + shareable `publicUrl` links)."},{"name":"betterpost_get_content","description":"Fetch one piece of content in full."},{"name":"betterpost_delete_content","description":"Delete a piece of content and its hosted images."},{"name":"betterpost_list_projects","description":"Returns your projects, each with its relevance `criteria` (with ids) that define what counts as on-topic."},{"name":"betterpost_get_project","description":"Returns one project with its relevance `criteria` (each with an id, so a criterion can be targeted for removal via betterpost_update_project)."},{"name":"betterpost_update_project","description":"Updates a project's title, audience, description, tone, freshness window, timezone, or relevance criteria, and returns the updated project with its criteria. Ch"},{"name":"betterpost_delete_project","description":"Permanently deletes a project and everything in it — its sources, stories, and content. Cannot be undone."},{"name":"betterpost_list_sources","description":"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)"},{"name":"betterpost_add_source","description":"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 sti"},{"name":"betterpost_remove_source","description":"Removes a source from a project. Its already-gathered stories stay; the source is no longer fetched."},{"name":"betterpost_list_stories","description":"Returns a project's gathered stories, each with `title`, `url`, `summary`, `relevancy`, `publicationDate`, and `isManual`/`isHidden` flags. Pass includeHidden t"},{"name":"betterpost_add_story","description":"Manually imports a story you read about from its URL (pinned relevance, flagged is_manual) so generation can draw on it."},{"name":"betterpost_hide_story","description":"Hides a story so generation ignores it. Reversible with unhide_story."},{"name":"betterpost_unhide_story","description":"Unhides a previously hidden story so generation can use it again."},{"name":"betterpost_suggest_topics","description":"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 (g"},{"name":"betterpost_get_usage","description":"Your credit balance, freeze state, and recent spend."},{"name":"betterpost_get_settings","description":"Returns a project's per-content-type settings (wordLimit and additionalInstructions for each channel)."},{"name":"betterpost_update_settings","description":"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 pr"},{"name":"betterpost_expand_coverage","description":"Broadens a project's coverage: expands the relevance criteria (when needed), finds more sources across news, the web, and the relevant social platforms, and fet"},{"name":"betterpost_humanize","description":"Rewrite existing text into BetterPost's readable, human voice. Preserves the meaning, facts, links, and format; returns the rewritten text plus short notes on w"}],"toolCount":23,"serverName":"betterpost","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"betterpost_create_project","description":"Create a content project. Slow, one-shot: infers config (criteria, industry, tone), discovers sources, and gathers/ranks an initial set of timely stories. Best "},{"name":"betterpost_generate_content","description":"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` th"},{"name":"betterpost_derive_content","description":"Transform an existing piece into another format (e.g. newsletter → tweet). No fetching; reuses the source stories and topic."},{"name":"betterpost_list_content","description":"List a project's content (summaries + shareable `publicUrl` links)."},{"name":"betterpost_get_content","description":"Fetch one piece of content in full."},{"name":"betterpost_delete_content","description":"Delete a piece of content and its hosted images."},{"name":"betterpost_list_projects","description":"Returns your projects, each with its relevance `criteria` (with ids) that define what counts as on-topic."},{"name":"betterpost_get_project","description":"Returns one project with its relevance `criteria` (each with an id, so a criterion can be targeted for removal via betterpost_update_project)."},{"name":"betterpost_update_project","description":"Updates a project's title, audience, description, tone, freshness window, timezone, or relevance criteria, and returns the updated project with its criteria. Ch"},{"name":"betterpost_delete_project","description":"Permanently deletes a project and everything in it — its sources, stories, and content. Cannot be undone."},{"name":"betterpost_list_sources","description":"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)"},{"name":"betterpost_add_source","description":"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 sti"},{"name":"betterpost_remove_source","description":"Removes a source from a project. Its already-gathered stories stay; the source is no longer fetched."},{"name":"betterpost_list_stories","description":"Returns a project's gathered stories, each with `title`, `url`, `summary`, `relevancy`, `publicationDate`, and `isManual`/`isHidden` flags. Pass includeHidden t"},{"name":"betterpost_add_story","description":"Manually imports a story you read about from its URL (pinned relevance, flagged is_manual) so generation can draw on it."},{"name":"betterpost_hide_story","description":"Hides a story so generation ignores it. Reversible with unhide_story."},{"name":"betterpost_unhide_story","description":"Unhides a previously hidden story so generation can use it again."},{"name":"betterpost_suggest_topics","description":"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 (g"},{"name":"betterpost_get_usage","description":"Your credit balance, freeze state, and recent spend."},{"name":"betterpost_get_settings","description":"Returns a project's per-content-type settings (wordLimit and additionalInstructions for each channel)."},{"name":"betterpost_update_settings","description":"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 pr"},{"name":"betterpost_expand_coverage","description":"Broadens a project's coverage: expands the relevance criteria (when needed), finds more sources across news, the web, and the relevant social platforms, and fet"},{"name":"betterpost_humanize","description":"Rewrite existing text into BetterPost's readable, human voice. Preserves the meaning, facts, links, and format; returns the rewritten text plus short notes on w"}],"package":null},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"ai.betterpost/server","url":"https://registry.modelcontextprotocol.io/v0/servers/ai.betterpost%2Fserver","firstSeenAt":"2026-09-05T13:36:06.266Z","fetchedAt":"2026-09-05T13:36:06.266Z","normalizedAt":"2026-09-05T13:36:06.266Z"}]},"firstSeenAt":"2026-09-05T13:36:06.266Z","updatedAt":"2026-09-05T13:43:58.948Z"}