Skip to main content
Glama
kieksme
by kieksme

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HASHNODE_TOKENYesYour Hashnode Personal Access Token

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
hashnode_get_meA

Returns the authenticated user's profile and a list of their publications. Use this first to discover your publicationId(s) before creating or listing posts.

Returns:

  • id, name, username, profilePicture

  • publications[]: { id, title, url }

Examples:

  • "What is my publication ID?" → call hashnode_get_me

  • "List my Hashnode blogs" → call hashnode_get_me

hashnode_get_publicationA

Fetch metadata for a Hashnode publication by its host/domain.

Args:

  • host (string): Publication host, e.g. "yourblog.hashnode.dev" or a custom domain

  • response_format: 'markdown' or 'json'

Returns: id, title, url, about, author info

Examples:

  • host: "thinkport.hashnode.dev"

hashnode_list_draftsA

List drafts in a Hashnode publication.

Args:

  • publication_id (string): The publication ID (from hashnode_get_me)

  • limit (number): Number of drafts to return (default 20, max 50)

  • after (string): Pagination cursor from a previous call

  • response_format: 'markdown' or 'json'

Returns: list of drafts with id, title, subtitle, tags, updated date

hashnode_create_draftA

Create a new draft in a Hashnode publication. Does NOT publish — use hashnode_publish_draft afterwards.

Args:

  • publication_id (string, required): Publication ID

  • title (string, required): Post title

  • content_markdown (string, required): Post content in Markdown

  • subtitle (string, optional): Short subtitle

  • tags (array, optional): Tags as [{ name, slug }] — slug must be lowercase with hyphens

  • cover_image_url (string, optional): URL of cover image

  • slug (string, optional): Custom URL slug (auto-generated from title if omitted)

  • original_article_url (string, optional): Canonical URL for cross-posted articles

  • meta_title (string, optional): SEO meta title

  • meta_description (string, optional): SEO meta description

  • response_format: 'markdown' or 'json'

Returns: draft id, title, slug, tags, updatedAt

hashnode_update_draftA

Update fields of an existing draft. Only provided fields are changed.

Args:

  • draft_id (string, required): Draft ID to update

  • title (string, optional): New title

  • content_markdown (string, optional): New content in Markdown

  • subtitle (string, optional): New subtitle

  • tags (array, optional): New tags as [{ name, slug }]

  • cover_image_url (string, optional): New cover image URL

  • response_format: 'markdown' or 'json'

hashnode_publish_draftA

Publish an existing draft, making it a live blog post.

Args:

  • draft_id (string, required): Draft ID to publish (from hashnode_create_draft or hashnode_list_drafts)

  • response_format: 'markdown' or 'json'

Returns: post id, title, slug, url, publishedAt, tags

Examples:

  • Create draft → publish: hashnode_create_draft → hashnode_publish_draft

hashnode_list_postsA

List published blog posts in a publication, ordered by publish date (newest first).

Args:

  • host (string, required): Publication host, e.g. "yourblog.hashnode.dev"

  • limit (number): Posts per page (default 20, max 50)

  • after (string): Cursor for pagination

  • response_format: 'markdown' or 'json'

Returns: posts with id, title, slug, url, publishedAt, views, readTime, tags

hashnode_get_postA

Fetch full details of a published post by its slug.

Args:

  • host (string, required): Publication host

  • slug (string, required): Post slug from the URL, e.g. "my-first-post"

  • response_format: 'markdown' or 'json'

Returns: full post data including content brief, views, tags, cover image, author

hashnode_publish_postA

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

hashnode_update_postA

Update fields of an already-published post. Only provided fields are changed.

Args:

  • post_id (string, required): Post ID (from hashnode_list_posts or hashnode_get_post)

  • title (string, optional): New title

  • content_markdown (string, optional): New content in Markdown

  • subtitle (string, optional): New subtitle

  • tags (array, optional): New tags [{ name, slug }]

  • cover_image_url (string, optional): New cover image URL

  • response_format: 'markdown' or 'json'

hashnode_delete_postA

Permanently delete a published post. This action cannot be undone.

Args:

  • post_id (string, required): Post ID to delete

  • response_format: 'markdown' or 'json'

⚠️ WARNING: This permanently deletes the post.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kieksme/mcp-hashnode'

If you have feedback or need assistance with the MCP directory API, please join our Discord server