Tool reference
schedule_article_on_substack
Schedule Article On Substack. Schedule a WriteStack article on Substack.
| Group | Access | MCP name |
|---|---|---|
| Articles | Writes data | schedule_article_on_substack |
Description
The description the MCP server sends to the model, word for word. Its rules apply to every call.
Schedule a WriteStack article on Substack. BEFORE calling, call list_article_newsletters and ASK the user which newsletter to schedule on, then pass that publicationId. Only enabled newsletters are accepted. Requires publishAt (ISO 8601). Also pushes the draft if it is not synced yet.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
articleId | string | Yes | |
audience | string | No | |
emailAudience | string | No | |
publicationId | number | Yes | Enabled newsletter publicationId. BEFORE creating or pushing an article, call list_article_newsletters and ASK the user which newsletter to use. Never guess or pick a default. Only IDs returned by that tool are accepted — newsletters the user hid from Articles are rejected. |
publishAt | string | Yes | ISO 8601 publish time |
Example call
The smallest valid request: required arguments only, with placeholder values.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "schedule_article_on_substack",
"arguments": {
"articleId": "…",
"publicationId": 1,
"publishAt": "…"
}
}
}Result
The result has structuredContent that matches this schema. The same data is also in content as JSON text.
| Field | Type | Required | Description |
|---|---|---|---|
articleId | string | Yes | |
message | string | Yes | |
queued | boolean | No | |
status | string | Yes | |
substackDraftUrl | string | null | No | |
substackScheduledAt | string | null | No |
Annotations
| Hint | Value |
|---|---|
readOnlyHint | false |
destructiveHint | false |
openWorldHint | true |
The full input and output JSON Schemas for every tool are in /mcp-tools.json.