Skip to main content
Glama

Publish Note

publish_note
Destructive

Posts a Substack Note under your account immediately or schedules it for later, with an optional link card to one of your published posts.

Instructions

Short post in Substack Notes, now or at a set time, optionally with a link card to one of your posts.

Posts a Note under your name. Without publish_at it goes out now; with it, the Note waits in your scheduled Notes, status is scheduled and published_at is that time. Text is 1 to 1,000 characters. link_post_id must be a published post.

Input Schema

NameRequiredDescriptionDefault
bodyYesNote text, up to 1,000 characters.
publish_atNoISO 8601 with time zone. Omit to post now.
link_post_idNoAttach one of your published posts as a link card.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare the safety profile (readOnly false, destructive true, openWorld true, non-idempotent), so the description only needs incremental context — and it delivers real state behavior: what the Note's status and published_at become when scheduled, and the character bound. It does not disclose what the response contains (e.g., a Note ID) or the public/irreversible consequence of posting under the user's name, which is the main residual gap.

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 lead line front-loads resource and scope, and the second paragraph packs timing behavior, limits, and the link-card precondition into three sentences. Slight redundancy in "Text is 1 to 1,000 characters" duplicating the schema description keeps it from a 5.

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?

For a 3-parameter write tool with no output schema, it covers the essentials — timing semantics, character bound, and link-card eligibility. Missing are the return shape and any note about visibility/reversibility of the published Note, which matter given destructiveHint=true.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description earns above baseline by adding semantics the schema lacks: the downstream effect of publish_at (status becomes scheduled, published_at equals that time) and the constraint that link_post_id must reference an already-published post. The character range restates the schema and adds nothing.

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?

States a concrete verb+resource ("Short post in Substack Notes ... Posts a Note under your name") and implicitly separates Notes from long-form posts in the sibling set (publish_post) by framing link_post_id as attaching "one of your posts." It never names publish_post, schedule_post, or reply_to_note explicitly, so sibling differentiation is inferred rather than stated.

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

Usage Guidelines4/5

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

Gives a clear conditional for the timing fork: "Without publish_at it goes out now; with it, the Note waits in your scheduled Notes," and a hard precondition that link_post_id must be a published post. It stops short of naming alternatives or exclusions, so an agent must infer that scheduling here replaces a separate schedule_post call and that reply_to_note handles threaded replies.

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