Tool reference

get_posts_statistics

Get Posts Statistics. Read this writer's Substack post statistics for every newsletter selected on Posts Statistics, in one call.

GroupAccessMCP name
Statistics and activityRead-onlyget_posts_statistics

Description

The description the MCP server sends to the model, word for word. Its rules apply to every call.

Read this writer's Substack post statistics for every newsletter selected on Posts Statistics, in one call. Returns views, unique email opens, Substack's reported open rate, emails sent and delivered, email traffic share, email-attributed views, likes, comments, restacks, shares, clicks, and signups, plus each newsletter's subscriber split and ARR. Open rate is unique opens divided by emails delivered. Use the returned openRate. Do not recompute it, and do not treat emailTrafficShare as the open rate: that share is the portion of views that came from email, including repeat views. Defaults to the last 30 days, highest views first. Omit publicationId unless they named one newsletter. Requires the posts statistics feature and WriteStack extension 1.5.25 or newer. On failure, follow the error text.

Arguments

ArgumentTypeRequiredDescription
dateRangestringNoTime period. Use custom with startDate and endDate. One of: "last_7_days", "last_30_days", "last_90_days", "last_12_months", "all_time", "custom". Default "last_30_days".
endDatestringNoFormat date-time.
limitintegerNoHow many posts to return, highest views first (default 15, max 30). Min 1. Max 30. Default 15.
publicationIdintegerNoLimit to one newsletter by its Substack publication id. Omit to include every newsletter selected on Posts Statistics.
startDatestringNoFormat date-time.

Example call

The smallest valid request: required arguments only, with placeholder values.

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

Result

The result has structuredContent that matches this schema. The same data is also in content as JSON text.

FieldTypeRequiredDescription
dateRangestringYes
endDatestringYes
extensionVersionstringYes
messagestringNo
postCountnumberYes
postsobject[]Yes
posts[].clicksnumberYes
posts[].commentsnumberYes
posts[].deliverednumberYes
posts[].emailTrafficShareanyYes
posts[].emailViewsanyYes
posts[].engagementRateanyYes
posts[].likesnumberYes
posts[].openRateanyYes
posts[].postDatestring | nullYes
posts[].postIdnumberYes
posts[].publicationIdnumberYes
posts[].restacksnumberYes
posts[].sentnumberYes
posts[].sharesnumberYes
posts[].signupsnumberYes
posts[].titlestringYes
posts[].uniqueOpensnumberYes
posts[].urlstring | nullYes
posts[].viewsnumberYes
publicationsobject[]Yes
publications[].arranyYes
publications[].compsnumberYes
publications[].deliverednumberYes
publications[].emailTrafficShareanyYes
publications[].emailViewsnumberYes
publications[].freenumberYes
publications[].freeTrialsnumberYes
publications[].giftsnumberYes
publications[].namestringYes
publications[].openRateanyYes
publications[].paidnumberYes
publications[].payingnumberYes
publications[].postCountnumberYes
publications[].publicationIdnumberYes
publications[].sentnumberYes
publications[].totalSubscribersnumberYes
publications[].uniqueOpensanyYes
publications[].viewsnumberYes
startDatestringYes
summaryobjectYes
summary.deliverednumberYes
summary.deliveryRateanyYes
summary.emailTrafficShareanyYes
summary.emailViewsnumberYes
summary.openRatenumber | nullYes
summary.sentnumberYes
summary.uniqueOpensanyYes
summary.viewsnumberYes

Annotations

HintValue
readOnlyHinttrue
destructiveHintfalse
openWorldHintfalse

The full input and output JSON Schemas for every tool are in /mcp-tools.json.

On this page