Skip to main content
Glama

devto_create_article

Publish or draft blog posts on DEV.to using markdown, with optional tags, series, and metadata. Returns the article link.

Instructions

Create a new article on DEV.to as a draft or published post. Requires DEVTO_API_KEY.

Args: title: Title of the article. body_markdown: Full article body formatted in Markdown. published: True to publish immediately, False to save as a private draft (default False for safety). tags: Optional list of up to 4 tags (e.g. ['python', 'tutorial', 'webdev']). series: Optional series name to group this article under. canonical_url: Optional canonical URL if this article was cross-posted from another blog. description: Optional brief summary/meta description. main_image: Optional URL for cover/hero image.

Returns: Details and link to the created article or draft.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagsNo
titleYes
seriesNo
publishedNo
main_imageNo
descriptionNo
body_markdownYes
canonical_urlNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations present, the description carries the full burden of behavioral disclosure. It reveals the auth requirement, the draft-vs-published side effect, and the safety rationale for defaulting published to False. It does not cover rate limits or errors, but the provided context is meaningful and goes beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and auth requirement are front-loaded, followed by a compact, scannable Args block. Every parameter earns its explanation and there is no filler or redundancy, despite the large number of parameters.

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?

For a create operation with eight parameters and no annotations, the description covers required fields, optional fields, authentication, and return shape. The output schema exists, so the 'Returns details and link' line is sufficient. Missing error semantics are a minor gap that does not impede correct selection or invocation.

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

Parameters5/5

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

Schema description coverage is 0%, so the description fully compensates by documenting all eight parameters with functional meaning: Markdown body, immediate publish flag, up to 4 tags, series grouping, canonical URL purpose, meta description, and hero image URL. This is far richer than the bare schema names and types.

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?

The description opens with a specific verb and resource: 'Create a new article on DEV.to'. It clarifies the two modes, draft or published, and the word 'new' distinguishes it from update operations. This is not a tautology and clearly communicates the tool's core function.

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 implies usage for creating articles that do not yet exist and mentions the DEVTO_API_KEY prerequisite. However, it never explicitly contrasts this tool with devto_update_article or states when not to use it. An agent must infer the boundary from the word 'new' and the sibling tool names.

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