Skip to main content
Glama
marcomoauro

Substack MCP Server

by marcomoauro

create_draft_post

Create a draft post on Substack by providing a title, subtitle, and body. Use plain text for paragraphs or Substack JSON document format for structured content.

Instructions

create a draft post on your Substack account.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyYesThe body of the post. Plain text becomes one paragraph per line — Markdown is NOT interpreted, so `## Heading` would appear literally. A JSON string of a Substack document also works and is validated against the same schema set_post_body publishes; an unrecognised node name is an error rather than a mangled post. For structured content prefer set_post_body, where that schema is published and the node vocabulary is visible.
titleYesThe title of the post to be created.
subtitleYesThe subtitle of the post to be created.
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, but it only states that it creates a draft post. It does not disclose return values, side effects, permissions, or the relationship to publishing, making it insufficient for transparent behavior.

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 description is a single, concise sentence with no wasted words. It is front-loaded with the action and resource, matching the requirement for efficiency, though it could have been slightly more informative without losing brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is too minimal for the tool's context. It lacks alternative guidance, return values, and fails to mention that the tool creates only a draft (not publishing). While the schema compensates for parameters, the overall description is not complete enough for an agent to use the tool correctly without external knowledge.

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 coverage is 100%, so baseline is 3. The tool description adds no parameter information, but the input schema descriptively covers all three parameters, with particularly rich semantics for 'body' regarding Markdown handling and JSON validation.

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

Purpose4/5

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

The description clearly states the verb 'create' and the resource 'draft post' on Substack, making the core purpose unambiguous. However, it does not differentiate from siblings like update_draft or set_post_body, so it falls short of a 5.

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?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or that set_post_body is preferred for structured content (which the schema does mention, but the tool description itself lacks this context).

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/marcomoauro/substack-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server