Skip to main content
Glama
posterly-mcp-server

posterly-mcp-server

by awpthorp

manage_x_posting_addon

Destructive

Buy an X posting add-on by previewing its monthly price, then confirming to open a Stripe Checkout link for extra posts.

Instructions

Buy an X posting add-on. action=buy: plan_code is x_posts_100 ($8/month, 100 extra posts), x_posts_250 ($18/month, 250), or x_posts_500 ($35/month, 500). Call without confirm to see the price. Show that price to the user. Nothing is charged on the preview. Then call again with confirm=true, the preview_id, and expected_addon_status, expected_plan_code, and expected_price_usd from the preview. Confirming returns a Stripe Checkout link. The card is charged only after the user pays on that page. If an add-on is already active, confirming opens the billing page for the workspace owner and does not buy a second plan. Read the allowance with get_x_posting_quota. Owner or admin. billing:write.

Input Schema

NameRequiredDescriptionDefault
actionYesbuy: quote an X posting add-on, then open Checkout after the user agrees.
confirmNoTrue only after the user agrees, with the preview_id.
plan_codeNoWhich add-on to buy. Not used when one is already active.
preview_idNoThe preview_id from the preview call.
workspace_idNoWorkspace ID from whoami, when the key is not already scoped.
expected_plan_codeNoFrom the preview. The current plan code, or null when there is none.
expected_price_usdNoFrom the preview. The monthly price in dollars, or null.
expected_addon_statusNoFrom the preview. The add-on status the quote was based on.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.55.1

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations by disclosing that the preview charges nothing, that confirming returns a Stripe Checkout link, and that the card is only charged after the user pays on that page, plus the already-active-add-on fallback and the required scope (billing:write, owner/admin). What is missing is any statement about the non-idempotent retry surface — e.g. what happens if confirm is called twice with the same preview_id — which matters given idempotentHint=false and destructiveHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the action and the plan menu, then walks the preview→confirm→checkout sequence in order; every sentence carries either a price, a state transition, or a permission requirement. No filler or restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter, two-step payment flow with no output schema, the description covers the quote payload, the confirm payload, the returned Checkout link, the no-charge guarantee, the active-add-on branch, and the auth scope. The only real gap is retry/idempotency behavior for confirm and whether the preview expires.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns above that by adding the per-plan pricing table (which the enum lacks in the schema) and by attributing expected_plan_code, expected_price_usd, expected_addon_status and preview_id to the prior preview call, clarifying their provenance and ordering. It still doesn't explain when workspace_id is needed beyond what the schema says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Buy an X posting add-on") and immediately enumerates the purchasable plan codes with prices, so the agent knows exactly which capability this is versus upgrade_subscription or manage_extra_account. The trailing cross-reference to get_x_posting_quota further separates allowance-reading from purchasing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit two-phase protocol: call without confirm to get a price, show it to the user, then call again with confirm=true and the preview fields. It also names the alternative path when an add-on is already active (billing page for the owner, no second plan), removing the main branch ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.