# Hashnode — how to use (mcp.ai)

Connect your Hashnode account and use 67 tools for developer tools straight from your AI agent. Connect with your own API key. Hashnode is a blogging platform tailored for developers, offering tools to create, manage, and publish content seamlessly.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_hashnode?ms=1787295660000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `hashnode_accept_invite_to_publication`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/hashnode`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/hashnode/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/hashnode/accept/invite/to/publication` — Tool to accept a publication invitation. Use when you have a valid invite token and want to join the publication.
  - body: { inviteToken: string }
- `POST https://api.mcp.ai/api/hashnode/add/comment` — Add a comment to a Hashnode post. Requires a valid post ID (obtainable via HASHNODE_FETCH_STORIES_FEED or HASHNODE_FETCH_POSTS) and markdown content. For replying to existing comments, use the HASHNOD
  - body: { postId: string, contentMarkdown: string }
- `POST https://api.mcp.ai/api/hashnode/add/content/block` — Tool to add a content block to a Hashnode documentation project. Use when you need to add embeddable content (such as code snippets, widgets, or other custom content) to a documentation project.
  - body: { label: string, content: string, embedId: string, projectId: string }
- `POST https://api.mcp.ai/api/hashnode/add/custom/mdx/component` — Tool to add a custom MDX component to a Hashnode documentation project. Use when you need to register a new reusable React component that can be used in MDX content. Requires a project ID, component i
  - body: { code: string, projectId: string, componentId: string }
- `POST https://api.mcp.ai/api/hashnode/add/documentation/project/custom/domain` — Tool to add a custom domain to a Hashnode documentation project. Use when setting up custom domain mapping for documentation sites. Requires projectId, domain name, and wwwDomain boolean flag.
  - body: { domain: string, projectId: string, wwwDomain: boolean }
- `POST https://api.mcp.ai/api/hashnode/add/reply` — Tool to add a reply to an existing comment. Use after confirming comment ID and reply content.
  - body: { commentId: string, contentMarkdown: string }
- `POST https://api.mcp.ai/api/hashnode/check/custom/domain/availability` — Tool to check if a custom domain is available for your Hashnode publication. Use when verifying domain mapping before setup.
  - body: { domain: string, with_www_redirect?: boolean }
- `POST https://api.mcp.ai/api/hashnode/check/subdomain/availability` — Tool to check if a subdomain is available for a Hashnode publication. Use when verifying subdomain availability before creating a publication.
  - body: { subdomain: string }
- `POST https://api.mcp.ai/api/hashnode/create/documentation/api/reference` — Tool to create a documentation API reference from an OpenAPI specification URL in a Hashnode project. Use when you need to import and generate API documentation from a Swagger/OpenAPI spec. Requires p
  - body: { url: string, name?: string, slug?: string, projectId: string }
- `POST https://api.mcp.ai/api/hashnode/create/documentation/link` — Tool to create a link within a Hashnode documentation guide. Use when you need to add external or internal links to documentation pages, such as API references, GitHub repositories, or related resourc
  - body: { url: string, label: string, guideSlug: string, projectId: string }
- `POST https://api.mcp.ai/api/hashnode/create/documentation/project` — Tool to create a new documentation project on Hashnode. Use when you need to set up a documentation site for API references, product guides, or developer documentation. Requires a unique name and subd
  - body: { name: string, links?: object, logoUrl?: string, settings?: object, subdomain: string, favIconUrl?: string, description?: string, logoDarkThemeUrl?: string }
- `POST https://api.mcp.ai/api/hashnode/create/documentation/section` — Tool to create a new documentation section in a Hashnode documentation guide. Use when you need to add a new section to an existing documentation guide within a project.
  - body: { slug?: string, label?: string, guideSlug: string, projectId: string, versionSlug?: string }
- `POST https://api.mcp.ai/api/hashnode/create/hashnode/documentation/guide` — Tool to create a new documentation guide in a Hashnode documentation project. Use when you need to create a new guide within an existing project. Requires a valid projectId and a name for the guide.
  - body: { name: string, projectId: string }
- `POST https://api.mcp.ai/api/hashnode/delete/content/block` — Tool to delete a content block from a Hashnode documentation project. Use when you need to remove a custom content block from a project. This action is destructive and cannot be undone.
  - body: { embedId: string, projectId: string }
- `POST https://api.mcp.ai/api/hashnode/delete/custom/mdx/component` — Tool to delete a custom MDX component from a Hashnode documentation project. Use when removing an existing custom component that is no longer needed. This action is destructive and cannot be undone.
  - body: { projectId: string, componentId: string }
- `POST https://api.mcp.ai/api/hashnode/disable/documentation/project/ai/search` — Tool to disable AI search for a documentation project on Hashnode. Use when you need to turn off AI-powered search capabilities for a specific documentation project.
  - body: { projectId: string }
- `POST https://api.mcp.ai/api/hashnode/fetch/invitations` — Fetch pending publication invitations for a Hashnode publication. Returns a list of pending invites that have been sent but not yet accepted. Requires the authenticated user to be a member (owner/admi
  - body: { id?: string, host?: string, page?: integer, pageSize?: integer }
- `POST https://api.mcp.ai/api/hashnode/fetch/popular/tags` — Tool to fetch a paginated list of popular tags. Use when you need to browse popular tags page by page.
  - body: { after?: string, first: integer }
- `POST https://api.mcp.ai/api/hashnode/fetch/posts` — Tool to fetch a paginated list of posts from a publication. Use when you need to list posts page by page for a given publication host.
  - body: { host: string, after?: string, first?: integer }
- `POST https://api.mcp.ai/api/hashnode/fetch/series/posts` — Tool to fetch posts from a series within a publication. Use when retrieving and paginating through series posts in a specific publication.
  - body: { after?: string, first?: integer, series_slug: string, publication_id?: string, publication_host?: string }
- `POST https://api.mcp.ai/api/hashnode/fetch/single/article` — Tool to fetch a single article by slug from a publication. Use when you need the detailed content of a specific post.
  - body: { host: string, slug: string }
- `POST https://api.mcp.ai/api/hashnode/fetch/stories/feed` — Fetch a paginated feed of stories from Hashnode. Returns posts with title, brief, author info, tags, and reading time. Supports filtering by feed type (RECENT, FEATURED, FOLLOWING, etc.), reading time
  - body: { after?: string, first: integer, filter?: object }
- `POST https://api.mcp.ai/api/hashnode/fetch/user/details` — Tool to fetch detailed user profile information by username. Use when you need public or authorized profile data.
  - body: { username: string }
- `POST https://api.mcp.ai/api/hashnode/follow/tags` — Follow specified tags to customize your content feed on Hashnode. Use when you want to subscribe to content from specific tags to personalize your feed.
  - body: { ids: string[] }
- `POST https://api.mcp.ai/api/hashnode/gen/doc/project/preview/auth/token` — Tool to generate a JWT authorization token for previewing a documentation project. Use when you need to obtain a JWT to access a documentation project preview. Requires a preview token that must be ge
  - body: { token: string }
- `POST https://api.mcp.ai/api/hashnode/get/documentation/project` — Tool to fetch details of a Docs by Hashnode project by ID or hostname. Use when you need metadata for a documentation project. Provide either project ID or host domain.
  - body: { id?: string, host?: string }
- `POST https://api.mcp.ai/api/hashnode/get/post` — Tool to retrieve a published post by ID from Hashnode. Use when you need to fetch detailed information about a specific post for rendering or displaying.
  - body: { id: string }
- `POST https://api.mcp.ai/api/hashnode/get/publication/by/id/or/host` — Tool to fetch publication details by ID or hostname. User can provide either publication ID or host. Use when you need metadata for a given publication. Returns comprehensive publication information i
  - body: { id?: string, host?: string }
- `POST https://api.mcp.ai/api/hashnode/get/tag` — Tool to fetch detailed information about a tag by its slug. Use when you need tag metadata, follower/post counts, or logo information.
  - body: { slug: string }
- `POST https://api.mcp.ai/api/hashnode/like/comment` — Tool to like a comment on Hashnode. Use when you have a comment ID and want to add a like to that comment.
  - body: { commentId: string }
- `POST https://api.mcp.ai/api/hashnode/like/post` — Tool to like a post on Hashnode. Use when you want to add a like/reaction to a specific post. Requires a valid post ID.
  - body: { postId: string }
- `POST https://api.mcp.ai/api/hashnode/like/reply` — Tool to like a reply on Hashnode. Use when you have a reply ID and want to add a like to that reply.
  - body: { replyId: string, commentId: string }
- `POST https://api.mcp.ai/api/hashnode/list/publications` — Tool to list all publications of the authenticated user. Use when you need your publication hostnames for downstream actions.
  - body: { after?: string, first?: integer, roles?: string[], sortBy?: string }
- `POST https://api.mcp.ai/api/hashnode/list/top/commenters` — Tool to fetch users who have most actively participated in discussions by commenting in the last 7 days. Use when you need to identify top contributors or most engaged users.
  - body: { after?: string, first: integer }
- `POST https://api.mcp.ai/api/hashnode/map/doc/project/custom/domain/www/redirect` — Tool to configure WWW redirect for a documentation project's custom domain. Use when you need to enable automatic www subdomain redirection (e.g., www.docs.example.com -> docs.example.com). The projec
  - body: { projectId: string }
- `POST https://api.mcp.ai/api/hashnode/me` — Retrieves profile details of the currently authenticated Hashnode user. Returns the user's identity (id, username, name), profile info (bio, tagline, profile picture, location), social links (website,
- `POST https://api.mcp.ai/api/hashnode/move/documentation/sidebar/item` — Tool to reorder documentation sidebar items within a Hashnode guide. Use when you need to change the position of a sidebar item or move it under a different parent section. Requires the projectId, gui
  - body: { itemId: string, parentId?: string, position?: integer, guideSlug: string, projectId: string }
- `POST https://api.mcp.ai/api/hashnode/publish/documentation/api/reference` — Tool to publish a documentation API reference in a Hashnode documentation project. Use when you need to make an API reference guide publicly available. Requires a projectId and guideSlug.
  - body: { guideSlug: string, projectId: string }
- `POST https://api.mcp.ai/api/hashnode/publish/post` — Tool to publish a new blog post to a Hashnode publication. Use when you need to create and immediately publish an article. Requires a publicationId (obtainable via HASHNODE_LIST_PUBLICATIONS), title, 
  - body: { slug?: string, tags?: object[], title: string, seriesId?: string, subtitle?: string, coverImageURL?: string, publicationId: string, contentMarkdown: string, disableComments?: boolean, originalArticleURL?: string }
- `POST https://api.mcp.ai/api/hashnode/remove/comment` — Tool to remove a comment from a Hashnode post. Use after confirming the comment ID. Returns the ID of the removed comment upon success.
  - body: { id: string }
- `POST https://api.mcp.ai/api/hashnode/remove/documentation/guide` — Tool to remove a documentation guide from a Hashnode project. Use after confirming the project ID and guide slug. This action is destructive and cannot be undone.
  - body: { guideSlug: string, projectId: string }
- `POST https://api.mcp.ai/api/hashnode/remove/documentation/project` — Tool to remove a documentation project from Hashnode. This action frees the custom domain and subdomain and removes all guides and pages. Use after confirming the project ID to be deleted.
  - body: { projectId: string }
- `POST https://api.mcp.ai/api/hashnode/remove/documentation/project/custom/domain` — Tool to remove a custom domain from a Hashnode documentation project. Use when you need to detach a custom domain from a documentation project, reverting it to use only the Hashnode subdomain.
  - body: { projectId: string }
- `POST https://api.mcp.ai/api/hashnode/remove/documentation/sidebar/item` — Tool to remove a sidebar item from a documentation guide on Hashnode. Use when you need to delete a section or page from a guide's sidebar navigation. This action is destructive and cannot be undone.
  - body: { itemId: string, guideSlug: string, projectId: string }
- `POST https://api.mcp.ai/api/hashnode/remove/post` — Tool to remove (delete) a post from Hashnode. Use after confirming the post ID to be deleted. This action is destructive and cannot be undone.
  - body: { id: string }
- `POST https://api.mcp.ai/api/hashnode/remove/reply` — Tool to remove a reply from a comment. Use after confirming comment and reply IDs. Returns the removed reply details.
  - body: { replyId: string, commentId: string }
- `POST https://api.mcp.ai/api/hashnode/rename/documentation/guide` — Tool to rename a documentation guide in a Hashnode project. Use when you need to update the name of an existing guide. Requires the projectId, guideSlug, and new name.
  - body: { name: string, guideSlug: string, projectId: string }
- `POST https://api.mcp.ai/api/hashnode/rename/documentation/sidebar/item` — Tool to rename a documentation sidebar item within a Hashnode guide. Use when you need to update the display label of a sidebar item (link, page, or section). Requires the projectId, guideSlug, itemId
  - body: { label: string, itemId: string, guideSlug: string, projectId: string }
- `POST https://api.mcp.ai/api/hashnode/restore/post` — Tool to restore a previously deleted Hashnode post. Use when you need to undo a post deletion and make the post accessible again. Requires the post ID of the deleted post.
  - body: { id: string }
- `POST https://api.mcp.ai/api/hashnode/save/documentation/page/draft/content` — Tool to save draft content for a documentation page in Hashnode. Use when you need to update the content, title, or description of an existing documentation page draft. Requires pageId and projectId, 
  - body: { title?: string, pageId: string, content?: string, guideId?: string, guideSlug?: string, projectId: string, description?: string }
- `POST https://api.mcp.ai/api/hashnode/search/posts/of/publication` — Tool to search and retrieve posts from a specific publication based on a search query. Use when you need to find posts matching specific keywords within a particular Hashnode publication. Supports pag
  - body: { after?: string, first: integer, filter: object, sortBy?: string }
- `POST https://api.mcp.ai/api/hashnode/subscribe/to/newsletter` — Tool to subscribe an email address to a Hashnode publication's newsletter. Use when you need to add a subscriber to a publication's mailing list. Requires a publicationId (obtainable via HASHNODE_LIST
  - body: { email: string, publicationId: string }
- `POST https://api.mcp.ai/api/hashnode/toggle/follow/user` — Tool to toggle follow status for a Hashnode user. If you don't follow the user, this will follow them. If you already follow them, this will unfollow them. Use when you need to manage following relati
  - body: { id?: string, username?: string }
- `POST https://api.mcp.ai/api/hashnode/unfollow/tags` — Unfollow specified tags to customize your content feed on Hashnode. Use when you want to unsubscribe from content from specific tags to personalize your feed.
  - body: { ids: string[] }
- `POST https://api.mcp.ai/api/hashnode/unsubscribe/from/newsletter` — Tool to unsubscribe an email address from a Hashnode publication's newsletter. Use when you need to remove a subscriber from a publication's mailing list. Requires a publicationId (obtainable via HASH
  - body: { email: string, publicationId: string }
- `POST https://api.mcp.ai/api/hashnode/update/comment` — Tool to update an existing comment on a Hashnode post. Use after preparing updated content details.
  - body: { id: string, contentMarkdown: string }
- `POST https://api.mcp.ai/api/hashnode/update/content/block` — Tool to update a content block in a Hashnode documentation project. Use when you need to modify the label or content of an existing embeddable content block (such as code snippets, widgets, or other c
  - body: { label: string, content: string, embedId: string, projectId: string }
- `POST https://api.mcp.ai/api/hashnode/update/documentation/appearance` — Tool to update the appearance settings of a Hashnode documentation project. Use when you need to customize the look and feel of a documentation site, including logos, colors, themes, and custom script
  - body: { projectId: string, appearance: object }
- `POST https://api.mcp.ai/api/hashnode/update/documentation/general/settings` — Tool to update general settings of a Hashnode documentation project. Use when you need to modify the name, description, custom CSS, or external links of an existing documentation site. Requires the pr
  - body: { name?: string, links?: object, projectId: string, description?: string }
- `POST https://api.mcp.ai/api/hashnode/update/documentation/guide` — Tool to update an existing documentation guide in a Hashnode project. Use when you need to modify the name, slug, or SEO meta tags of a guide. Requires the projectId and guideId of the guide to update
  - body: { name?: string, slug?: string, guideId: string, metaTags?: object, projectId: string }
- `POST https://api.mcp.ai/api/hashnode/update/documentation/integrations` — Tool to update third-party integrations for a Docs by Hashnode project. Use when you need to configure analytics (Google Analytics, Clarity), tag management (GTM), customer support (Intercom), marketi
  - body: { projectId: string, integrations: object }
- `POST https://api.mcp.ai/api/hashnode/update/documentation/link` — Tool to update an existing link within a Hashnode documentation guide. Use when you need to modify the label or URL of a documentation link. Requires the project ID, guide slug, link ID, and updated l
  - body: { url?: string, label: string, linkId: string, guideSlug: string, projectId: string }
- `POST https://api.mcp.ai/api/hashnode/update/documentation/project/subdomain` — Tool to update the subdomain of a Hashnode documentation project. Use when you need to change the subdomain (e.g., from 'old-docs.hashnode.dev' to 'new-docs.hashnode.dev') for a documentation project.
  - body: { projectId: string, subdomain: string }
- `POST https://api.mcp.ai/api/hashnode/update/documentation/section` — Tool to update a section in a Hashnode documentation guide. Use when you need to modify the label, slug, or visibility of an existing documentation section.
  - body: { slug?: string, label?: string, guideSlug: string, projectId: string, sectionId: string, visibility?: string }
- `POST https://api.mcp.ai/api/hashnode/update/post` — Tool to update an existing Hashnode post via the updatePost mutation. Use when you need to modify the title, content, tags, or other attributes of an already published or drafted post.
  - body: { id: string, slug?: string, tags?: object[], title?: string, subtitle?: string, canonicalUrl?: string, coverImageURL?: string, publicationId?: string, contentMarkdown?: string, disableComments?: boolean }
- `POST https://api.mcp.ai/api/hashnode/update/reply` — Tool to update a reply. Use when editing an existing reply to a comment after confirming the comment and reply IDs.
  - body: { replyId: string, commentId: string, contentMarkdown: string }
- `POST https://api.mcp.ai/api/hashnode/verify/documentation/project/custom/domain` — Tool to verify a custom domain for a Hashnode documentation project. Use when you need to confirm DNS configuration and activate a custom domain that was previously added to the project.
  - body: { projectId: string }

## Example prompts
- "What can I do in Hashnode?"
- "Show me a summary of my Hashnode account"

## More
- Page: https://mcp.ai/hashnode
- Agent spec (llms.txt): https://mcp.ai/hashnode/llms.txt
- Postman collection: https://mcp.ai/hashnode/postman.json
