Skip to main content
Glama
subimpact

subimpact-data-mcp

Official

substack

Fetch newsletter publication archives, full posts by slug, and publication profile stats by slug or custom domain for research, monitoring, and content analysis.

Instructions

Substack Intel API — Posts, Archives & Publication Stats

Pricing (pay per event, billed to your Apify account): Run started: $0.00005; Post or publication row: $0.001; platform usage billed to your account.

Runs on Apify as subimpact/substack-intel-api.

Input Schema

NameRequiredDescriptionDefault
modeNoWhat to fetch: archive (recent posts list), post (full post by slug), publication (publication profile + stats).
maxItemsNoMax posts to return in archive mode (0 = uncapped, safely limited to 5000).
postSlugNoPost slug for post mode (e.g. 'investing-in-gimlet').
_maxItemsNoHow many dataset items to return to the model (1-1000, default 50). Truncates the response only; it does not change what the Actor collects or charges for.
publicationYesSubstack slug (e.g. 'a16z') or custom domain (e.g. 'stratechery.com'). For custom domains, the substack slug is preferred when known.a16z
_maxChargeUsdNoPer-run spending cap in USD (default 0.5). Passed to Apify as the run option maxTotalChargeUsd, so the run stops when it reaches this charge.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

C2.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden; it does disclose the cost model (per-run, per-row, billed to the Apify account), which is genuinely useful behavioral context that the schema only partly complements via the _maxChargeUsd cap. However, nothing is said about authentication, rate limits, failure behavior, or what a 'row' contains — significant omissions for a paid scraping actor.

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

Conciseness3/5

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

The text is short and front-loaded with a label, but the majority of the body is Apify billing and hosting detail rather than functional description. Nothing is padded word-by-word, yet the allocation of space is skewed away from what the tool does.

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?

Given a rich 6-parameter schema with full coverage, a mode enum, and explicit cost caps, plus no output schema, the description is close to sufficient — the pricing disclosure is the one piece of information an agent genuinely cannot get from structured fields. What remains missing is a one-line statement of what a run returns, which is a modest gap for a scraper tool.

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?

Schema description coverage is 100%, with an enum explaining the three modes and clear descriptions for postSlug, maxItems, _maxItems, and _maxChargeUsd, so the baseline of 3 applies. The description adds no parameter-level meaning beyond hinting at chargeable events ('Post or publication row'), which only loosely maps to maxItems.

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

Purpose3/5

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

The description is a heading — "Posts, Archives & Publication Stats" — plus pricing boilerplate; it names the resource domain but never states a verb or that the tool scrapes/fetches Substack data for a given publication slug. An agent can infer retrieval from the schema's mode enum, not from the description itself. No sibling is a Substack tool, so differentiation pressure is low, but the purpose statement is still too implicit.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, no mention that the publication slug or custom domain is the entry point, and no explanation of when to pick archive vs. post vs. publication mode — that routing lives entirely in the schema. Nothing in the description tells the agent the conditions that select this tool.

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