Skip to main content
Glama

Server Details

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

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
betterpost/betterpost-plugin
GitHub Stars
0
Server Listing
BetterPost

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4/5 across 22 of 22 tools scored. Lowest: 2.9/5.

Server CoherenceA
Disambiguation5/5

Each tool serves a clearly distinct function: source management, story import, project lifecycle, content generation/derivation, settings, and status checks. No two tools have ambiguous overlap, as even similar operations like add_source vs add_story are differentiated by source type.

Naming Consistency5/5

All tools follow the consistent pattern `betterpost_<verb>_<noun>` in snake_case, making the set predictable and easy to navigate. The verbs are descriptive (add, create, delete, list, get, generate, etc.) and adhere to a uniform style.

Tool Count4/5

With 22 tools, the surface is comprehensive for a content generation platform, covering all major operations without being overwhelming. The count is slightly above the typical 3–15 range but well-justified by the domain's complexity.

Completeness5/5

The tool surface covers the full lifecycle: project CRUD, source and story management, content generation and transformation, settings, usage tracking, and advanced operations like topic suggestion and coverage expansion. No obvious gaps exist for the intended use case.

Available Tools

23 tools
betterpost_add_sourceAdd sourceInspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
typeNoSource kind (one of the enum values; defaults to 'autodetect'). 'autodetect' infers the kind from `value` (a URL): RSS/Atom feeds, web pages, news, Reddit subreddits, X and Bluesky posts/users, LinkedIn company pages, Instagram profiles, YouTube videos, and Hacker News items — leave it as 'autodetect' for any URL. For a recurring keyword search that re-runs over time, set `value` to the search terms and pick a search kind: 'web-search', 'reddit-search', 'youtube-search', 'x' (X/Twitter search), or 'bluesky' (Bluesky search).autodetect
valueYes
projectIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
sourceYes
fetchedYes
storiesAddedYes
betterpost_add_storyAdd storyInspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
titleNo
summaryNo
projectIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
storyIdYes
betterpost_create_projectCreate projectInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
toneNo
titleYes
audienceYes
descriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
toneYes
reasonNo
warmingYes
criteriaYes
industryYes
projectIdYes
hasXSourceYes
storiesGotYes
storiesGoalYes
betterpost_delete_contentDelete content
DestructiveIdempotent
Inspect

Delete a piece of content and its hosted images.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
deletedYes
betterpost_delete_projectDelete project
DestructiveIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
deletedYes
betterpost_derive_contentDerive contentInspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYes
tieInNo
fromContentIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
typeYes
topicYes
contentYesThe generated content. Fields present depend on `type`.
summaryYes
contentIdYes
publicUrlYes
storyCountYes
imagesHostedYes
creditsChargedYes
betterpost_expand_coverageExpand coverageInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
focusNoThe topic to get more on (e.g. "League of Legends"). Omit to broaden the whole project.
projectIdYes
addAsCriteriaNoAlso append an in-scope `focus` as a standing relevance criterion (out-of-scope, confirmed foci are added automatically).
confirmedByUserNoSet true once the user has agreed to widen the project to an out-of-scope `focus`.

Output Schema

ParametersJSON Schema
NameRequiredDescription
warmingYes
retryAfterMsYes
sourcesAddedYes
storiesAddedYes
criteriaAddedYes
betterpost_generate_contentGenerate contentInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesOutput format. 'x' and 'bluesky' are generated as a single post or, more often, a short numbered thread of connected posts (multiple tweets) when there is enough to say — this is the default for those channels. 'blog', 'newsletter', and 'linkedin' are one piece.
reuseNoReuse the most recent topic.
tieInNoA product/service to weave in.
topicNoSteer the piece to a specific topic. Generation only writes from stories actually about it. If none exist yet, it returns topic_unavailable (no charge) with an inScope flag: inScope:true means the topic fits the project and betterpost_expand_coverage can gather it, while inScope:false means it is outside the project scope so expanding to it requires the user's confirmation.
projectIdYes
wordLimitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
typeYes
topicYes
contentYesThe generated content. Fields present depend on `type`.
summaryYes
contentIdYes
publicUrlYes
storyCountYes
imagesHostedYes
creditsChargedYes
betterpost_get_contentGet content
Read-only
Inspect

Fetch one piece of content in full.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
typeYes
contentYesThe generated content. Fields present depend on `type`.
summaryYes
topicIdYes
createdAtYesISO 8601 datetime string
projectIdYes
publicUrlYes
wordLimitYes
storyCountYes
derivedFromContentIdYes
betterpost_get_projectGet project
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
toneYes
titleYes
statusYes
audienceYes
criteriaYes
industryYes
timezoneYes
createdAtYesISO 8601 datetime string
updatedAtYesISO 8601 datetime string
hasXSourceYes
descriptionYes
maxStoryAgeDaysYes
additionalInstructionsYes
betterpost_get_settingsGet settings
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentTypeSettingsYes
betterpost_get_usageGet usage
Read-only
Inspect

Your credit balance, freeze state, and recent spend.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
kindYes
frozenYes
creditBalanceYes
recentSpendUsdYes
betterpost_hide_storyHide story
Idempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
storyIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
hiddenYes
storyIdYes
betterpost_humanizeHumanize textInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to humanize (max 30,000 characters).
toneNoTone override; wins over the project tone.
typeNoApply this channel's style rules to the rewrite.
projectIdNoUse this project's tone and writing instructions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
textYesThe rewritten text, a drop-in replacement for the input
changesYesShort notes on the main edits made
inputWordsYes
creditsChargedYes
betterpost_list_contentList content
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYes
betterpost_list_projectsList projects
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
projectsYes
betterpost_list_sourcesList sources
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax sources to return (default 50).
offsetNoNumber of sources to skip; use the returned nextOffset to page.
projectIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
limitYes
totalYes
countsYes
offsetYes
sourcesYes
returnedYes
nextOffsetYes
betterpost_list_storiesList stories
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYes
includeHiddenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
storiesYes
betterpost_remove_sourceRemove source
DestructiveIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
removedYes
betterpost_suggest_topicsSuggest topicsInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNo
countNo
projectIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
topicsYes
projectIdYes
betterpost_unhide_storyUnhide story
Idempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
storyIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
hiddenYes
storyIdYes
betterpost_update_projectUpdate projectInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
patchNoPartial update: EVERY field is optional — include only the fields you want to change and omit the rest (an omitted field is left untouched; there are no required patch fields). Passing an empty object or omitting `patch` entirely is a no-op. Fields: title, audience, description, tone, maxStoryAgeDays, additionalInstructions, timezone, addCriteria, removeCriteria.
projectIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
toneYes
titleYes
statusYes
audienceYes
criteriaYes
industryYes
timezoneYes
createdAtYesISO 8601 datetime string
updatedAtYesISO 8601 datetime string
hasXSourceYes
descriptionYes
maxStoryAgeDaysYes
additionalInstructionsYes
betterpost_update_settingsUpdate settings
Idempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYes
projectIdYes
wordLimitNo
additionalInstructionsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
updatedYes

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.