Skip to main content
Glama

Check the article audience on Substack

get_substack_article_audience
Read-onlyIdempotent

Read a scheduled or published Substack article from Substack itself and report what Substack saved: its audience (only_subscribers is a Freewall, only_paid a paywall or paid-only post, everyone), whether the wall divider is there and the words just before it, and whether it will email subscribers. Compares that with the Narrareach draft and lists any differences. Use this, not get_scheduled_item_readiness or get_draft, before telling a writer their Freewall or paywall is set on Substack: those only describe what Narrareach sent. Read-only; changes nothing on Substack or in Narrareach.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "id": "<id>"
    },
    "name": "get_substack_article_audience"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYesScheduled article id from list_scheduled_items.

Output Schema

NameRequiredDescriptionDefault
idYes
checkedYes
matchesNo
messageYes
expectedNo
substackNo
differencesNo
connectedAccountNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the closing "Read-only; changes nothing" largely restates them. What does add value beyond the structured fields is the non-obvious behavior that it fetches from Substack's own saved state and "compares that with the Narrareach draft and lists any differences" — an agent would not predict that side output. It stops short of noting failure modes (e.g., what happens if the article was never pushed to Substack), which keeps it off a 5.

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

Conciseness4/5

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

The routing directive and the report contents are front-loaded, and every clause carries information. It is a single dense mega-sentence though; splitting the comparison behavior into its own sentence would improve scanability without adding words.

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 a one-parameter read tool with full annotation coverage and an output schema, the definition covers purpose, alternatives, and the non-obvious diff-against-draft behavior — nothing an agent needs to invoke it is missing. The only gap is the untested edge case of a draft that was never sent to Substack.

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

Parameters3/5

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

With one parameter at 100% schema coverage and a schema description pointing at list_scheduled_items, the schema already carries the semantics. The description adds no format or sourcing detail for `id`, and its phrase "scheduled or published article" is marginally broader than the schema's "Scheduled article id", an ambiguity the description does not resolve. Baseline 3 applies.

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?

The description opens with a specific verb and resource ("Read a scheduled or published Substack article from Substack itself") and then enumerates exactly what it reports: audience value (only_subscribers/only_paid/everyone), presence of the wall divider plus the words before it, and whether subscribers get emailed. It is immediately distinguishable from get_draft and get_scheduled_item_readiness, which are named as different things.

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?

It gives an explicit exclusion ("Use this, not get_scheduled_item_readiness or get_draft"), a timing condition ("before telling a writer their Freewall or paywall is set on Substack"), and the reason (those tools "only describe what Narrareach sent"). That is a complete when/when-not/alternative triad.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources