get_notes_statistics
Get Notes Statistics. Analyze the user's published Substack notes analytics: returns a paginated batch of notes with engagement metrics (impressions, clicks, reactions, comments, restacks, profile visits, shares, free/paid subscribers) and an audience split (subscribers, followers, strangers) when Substack stored one.
| Group | Access | MCP name |
|---|---|---|
| Statistics and activity | Read-only | get_notes_statistics |
Description
The description the MCP server sends to the model, word for word. Its rules apply to every call.
Analyze the user's published Substack notes analytics: returns a paginated batch of notes with engagement metrics (impressions, clicks, reactions, comments, restacks, profile visits, shares, free/paid subscribers) and an audience split (subscribers, followers, strangers) when Substack stored one. audience is null when that note has no split. Not looked up by note IDs. Use when they ask to review note performance, compare top notes, find what drove subscribers, or summarize stats over a period. Filter by dateRange (or custom startDate/endDate), sort by orderBy/orderDirection, optionally search note text, and paginate with page/limit; check hasMore for the next page. Requires advanced statistics and a valid WriteStack extension key; on failure, read the error field for next steps.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
dateRange | string | No | Time period for statistics. Use 'custom' together with startDate/endDate for an explicit range. One of: "last_7_days", "last_30_days", "last_90_days", "last_12_months", "all_time", "custom". Default "last_30_days". |
endDate | string | No | ISO 8601 end date for a custom range (sets dateRange to 'custom'). Format date-time. |
limit | integer | No | Max notes to return (default 20, max 50) Min 1. Max 50. Default 20. |
orderBy | string | No | Metric to order notes by One of: "date", "reactionCount", "commentsCount", "restacks", "totalClicks", "totalFollows", "totalPaidSubscriptions", "totalFreeSubscriptions", "totalImpressions", "totalProfileVisits", "totalLinkClicks", "totalShares". Default "totalImpressions". |
orderDirection | string | No | Sort direction One of: "asc", "desc". Default "desc". |
page | integer | No | Page number for pagination (1-based) Min 1. Default 1. |
search | string | No | Optional free-text filter over the note body |
startDate | string | No | ISO 8601 start date for a custom range (sets dateRange to 'custom'). Format 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_notes_statistics",
"arguments": {}
}
}Result
The result has structuredContent that matches this schema. The same data is also in content as JSON text.
| Field | Type | Required | Description |
|---|---|---|---|
count | number | Yes | |
dateRange | string | No | |
error | string | No | |
hasMore | boolean | Yes | |
limit | number | Yes | |
notes | object[] | Yes | |
notes[].audience | object | null | Yes | |
notes[].audience.followers | number | Yes | |
notes[].audience.strangers | number | Yes | |
notes[].audience.subscribers | number | Yes | |
notes[].commentsCount | number | Yes | |
notes[].content | string | Yes | |
notes[].date | string | Yes | Format date-time. |
notes[].id | string | Yes | |
notes[].reactionCount | number | Yes | |
notes[].restacks | number | Yes | |
notes[].totalClicks | number | Yes | |
notes[].totalFollows | number | Yes | |
notes[].totalFreeSubscriptions | number | Yes | |
notes[].totalImpressions | number | null | Yes | |
notes[].totalLinkClicks | number | Yes | |
notes[].totalPaidSubscriptions | number | Yes | |
notes[].totalProfileVisits | number | Yes | |
notes[].totalShares | number | Yes | |
orderBy | string | No | |
orderDirection | string | No | |
page | number | Yes |
Annotations
| Hint | Value |
|---|---|
readOnlyHint | true |
destructiveHint | false |
openWorldHint | false |
The full input and output JSON Schemas for every tool are in /mcp-tools.json.