Publish a post directly to Hashnode (no draft step)
hashnode_publish_postPublish a new blog post directly to Hashnode by providing publication ID, title, and Markdown content. Optionally add tags, cover image, SEO fields, or schedule publication.
Instructions
Publish a new blog post directly without creating a draft first. Prefer hashnode_create_draft + hashnode_publish_draft for a safer workflow.
Args:
publication_id (string, required): Publication ID (from hashnode_get_me)
title (string, required): Post title
content_markdown (string, required): Post content in Markdown
subtitle (string, optional): Short subtitle
tags (array, optional): [{ name, slug }] — max 5 tags
cover_image_url (string, optional): URL of cover image
slug (string, optional): Custom URL slug
original_article_url (string, optional): Canonical URL for cross-posts
meta_title (string, optional): SEO title
meta_description (string, optional): SEO description
scheduled_at (string, optional): ISO 8601 datetime for scheduled publishing
response_format: 'markdown' or 'json'
Returns: post id, title, slug, url, publishedAt, tags
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Custom URL slug | |
| tags | No | Tags as [{ name: 'Cloud Computing', slug: 'cloud-computing' }] | |
| title | Yes | Post title | |
| subtitle | No | Short subtitle | |
| meta_title | No | SEO meta title | |
| scheduled_at | No | ISO 8601 datetime for scheduled publishing, e.g. '2025-12-31T10:00:00Z' | |
| publication_id | Yes | Publication ID | |
| cover_image_url | No | URL of cover image | |
| response_format | No | Output format: 'markdown' (default) or 'json' | markdown |
| content_markdown | Yes | Post content in Markdown | |
| meta_description | No | SEO meta description | |
| original_article_url | No | Canonical URL for cross-posted content |