Skip to main content
Glama

Publish an article

publishArticle
Destructive

Put a written article live on the connected site (Shopify or WordPress), or update the live post when it was published before. Takes the article's pieceId: generateArticle, refreshArticle and readDecaying give it. Publishing runs after the call; readStatus with the actionId says when the article is live. Kooga's content page can put the post back as it was.

This changes something outside Kooga, so the person confirms it first. Where the app can show the question, it does. Otherwise the first call changes nothing and answers with a question to put to the person word for word, and a confirmToken: call again with the same arguments and that confirmToken only after they said yes.

Input Schema

NameRequiredDescriptionDefault
pieceIdYesThe article, by its id in Kooga
workspaceIdNoThe workspace, as listWorkspaces gives it (its id or slug). Leave it out when this connection reaches one workspace.
articleTitleNoWhat the article is called, so the person is asked about it by name
confirmTokenNoOnly after the person said yes: the confirmToken this tool answered with when it asked. Never invent one, and never send one the person did not confirm.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already flag openWorld/destructive/non-idempotent, but the description adds real context beyond them: the write happens outside Kooga, a human must confirm, and the first call is a no-op that returns a question plus confirmToken. It also discloses reversibility ('Kooga's content page can put the post back as it was') and that the live post is updated rather than duplicated.

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-loaded with the action, then the confirmation mechanics, then the async follow-up. Mostly earns its space, though the second paragraph is wordy ('Where the app can show the question, it does') and could be tightened without losing information.

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

Completeness5/5

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

No output schema exists, yet the description covers the async return path (actionId -> readStatus), the confirmation token handshake, and the undo route. For a destructive, open-world write tool this is everything an agent needs to invoke it safely.

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 the baseline is 3; the description still adds value by tying pieceId to its producing tools and explaining confirmToken's two-turn contract and the prohibition on inventing one. workspaceId and articleTitle meaning are left to the schema, which already covers them.

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

Purpose5/5

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

States a specific verb+resource ('Put a written article live on the connected site (Shopify or WordPress)') and adds the update-when-already-published case, which distinguishes it from generateArticle and refreshArticle. An agent can tell exactly what state change this produces.

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

Usage Guidelines5/5

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

Explicit routing: the pieceId comes from generateArticle, refreshArticle or readDecaying; publishing runs asynchronously and readStatus with the actionId tells you when it's live; readStatus/undo path via Kooga's content page is named. Also spells out the required two-step confirmation sequence, which is the main 'when' condition for calling again.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources