Skip to main content
Glama

Update publication settings

update_publication_settings
Idempotent

Change live Substack publication settings like name, logo, colors, and emails; only passed fields are updated. Turn on link colors to fix links that are hard to read on dark themes.

Instructions

Change publication settings. Only the fields you pass are touched.

These are live settings on a public site, so a change here is visible to readers immediately.

accent_color and color_links are the two worth knowing about: Substack stores them under opaque theme variable names, and colour_links off is the usual reason links render nearly invisible on a dark theme.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoPublication name.
logo_urlNo
settingsNoAny other publication field, passed through as given. Use this for a setting this tool does not name, such as block_ai_crawlers.
copyrightNo
hero_textNoTagline shown on the homepage.
color_linksNoWhether links use the accent colour. Turning this on fixes links that render almost invisible. Stored as theme_var_color_links.
publicationNoWhich connected publication to act on, matched loosely against its hostname (for example 'example.substack.com' or just 'example'). Defaults to the first connected publication.
accent_colorNoHex accent colour, for example #0B81F7. Stored as theme_var_background_pop.
cover_photo_urlNo
email_from_nameNoSender name on emails.
podcast_enabledNo
podcast_feed_urlNo
subscribe_footerNo
subscribe_contentNo
welcome_email_contentNo
welcome_email_subjectNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv3.0.1
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedInput schema / additionalProperties
      Removed value: -false
  2. First observedv2.1.1

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare the safety profile (not read-only, idempotent, non-destructive, open-world), so the bar is lower. The description still adds real behavioral context beyond them: partial-update semantics ('only the fields you pass are touched') and the fact that changes are publicly visible to readers instantly.

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?

Front-loads the core action and partial-update rule, then layers the public-visibility warning and the two tricky fields. Every sentence carries weight, though the third paragraph is slightly verbose and contains a spelling inconsistency ('colour_links').

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 mutation tool with annotations covering safety and no output schema, the definition supplies the missing pieces an agent needs: partial-update behavior, immediate public effect, and guidance on the two most error-prone fields. The gap is that most of the low-coverage parameters remain undocumented.

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 only 44% across 16 params, so the description must compensate, and it does for the two flagged fields: it explains the opaque theme-variable storage for accent_color and color_links and the practical symptom behind color_links. The remaining parameters (logo_url, podcast_enabled, subscribe_footer, etc.) get no description and no schema text, so the coverage gap is only partly filled.

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 specific verb (Change) and resource (publication settings), and the implicit contrast with the sibling get_publication_settings is legible from the verb. It doesn't name alternatives explicitly, so it stops short of full sibling differentiation.

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

Usage Guidelines3/5

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

The description conveys the important context that this is a partial update ('only the fields you pass are touched') and that changes go live immediately, which guides caution. However, it never states when to use this versus siblings like get_publication_settings or update_draft, leaving usage implied rather than explicit.

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