Token导航 LogoToken导航TokenDH.com
Hashnode MCP logo
开发工具未说明官方级别未说明来源级核验

Hashnode MCP

MCP Server

一个全面的模型上下文协议服务器,将完整的Hashnode GraphQL API作为MCP工具公开,实现Hashnode博客与MCP兼容应用的无缝集成。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
开发工具TypeScriptClaudeClaude DesktopClaudeCline

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

rawveg

提供方

rawveg

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

📝 哈希节点MCP服务器

通过完整的Hashnode集成为您的AI助手充电

![License: AGPL-3.0](https://www.gnu.org/licenses/agpl-3.0) ![TypeScript](https://www.typescriptlang.org/) ![MCP](https://github.com/anthropics/model-context-protocol) ![TDD](https://github.com/rawveg/hashnode-mcp)

一个全面的模型上下文协议服务器,将完整的Hashnode GraphQL API公开为MCP工具,实现您的Hashnode博客与兼容MCP的应用程序(如Claude Desktop和Cline)之间的无缝集成。

特性安装可用工具配置发展

______________________________________________________________________

✨ 特性

  • 📝 21综合工具 -完成Hashnode API覆盖范围
  • 🔄 热交换架构 -无需配置即可自动发现工具
  • 🎯 类型安全 -采用TypeScript严格模式和Zod验证构建
  • 📊 高测试覆盖率 -TDD方法的覆盖率超过95%
  • 🚀 零依赖 -占地面积最小,性能最高
  • 🔌 集成下降 -适用于Claude Desktop、Cline和其他MCP客户端
  • ✍️ 完整的CRUD操作 -阅读、撰写、更新和删除帖子和草稿
  • 📅 调度支持 -安排和管理发布后的时间

🛠️ 可用工具

此MCP服务器提供21种工具,涵盖Hashnode API操作的全方位:

📚 出版管理

工具说明
getPublicationByHost按域检索发布信息
getPublicationPosts从带有分页的出版物中获取帖子

📄 岗位操作

工具说明
getPostBySlug按标题获取特定帖子
searchPosts在出版物中搜索帖子

👤 用户操作

工具说明
getUserByUsername检索用户配置文件信息
getMe获取当前经过身份验证的用户信息
getMyDrafts检索已验证用户的草稿
getMyPosts检索已验证用户的已发布帖子

✍️ 草稿和发布操作(需要授权)

工具说明
createDraft为出版物创建新草稿
updateDraft更新现有草稿
publishDraft发布草稿,使其成为实时帖子
createPost直接创建和发布帖子
updatePost更新已发布的现有帖子
removePost删除/删除已发布的帖子
restorePost恢复以前删除的帖子

📅 计划操作(需要授权)

工具说明
scheduleDraft安排一份草稿以供将来发布
rescheduleDraft重新安排之前安排的草稿
cancelScheduledDraft取消预定草稿

📖 系列操作

工具说明
getSeriesBySlug通过slug获取系列信息
getSeriesPosts使用分页从系列中检索帖子
addPostToSeries向现有系列添加帖子

📑 静态页面操作

工具说明
getStaticPageBySlug通过slug获取静态页面

📦 安装

Claude Desktop快速入门

添加到您的Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):

{
  "mcpServers": {
    "hashnode": {
      "command": "npx",
      "args": ["-y", "hashnode-mcp"]
    }
  }
}

全球安装

npm install -g hashnode-mcp

对于Cline(VS代码)

添加到您的Cline MCP设置(cline_mcp_settings.json):

{
  "mcpServers": {
    "hashnode": {
      "command": "npx",
      "args": ["-y", "hashnode-mcp"]
    }
  }
}

⚙️ 配置

认证

某些操作需要哈希节点个人访问令牌(PAT)。从获取您的PAT 哈希节点设置.

带环境变量

export HASHNODE_API_TOKEN="your-token-here"

与克劳德桌面/Cline

将令牌添加到MCP配置中:

{
  "mcpServers": {
    "hashnode": {
      "command": "npx",
      "args": ["-y", "hashnode-mcp"],
      "env": {
        "HASHNODE_API_TOKEN": "your-token-here"
      }
    }
  }
}

需要身份验证的操作:

  • ✅ 正在获取经过身份验证的用户信息(getMe, getMyDrafts, getMyPosts)
  • ✅ 创建/更新草稿和帖子
  • ✅ 发布和日程安排
  • ✅ 系列管理
  • ✅ 拆除和修复后

🎯 用法示例

获取出版物信息

// MCP clients can invoke:
{
  "tool": "getPublicationByHost",
  "arguments": {
    "host": "blog.hashnode.com"
  }
}

搜索文章

{
  "tool": "searchPosts",
  "arguments": {
    "publicationId": "your-publication-id",
    "query": "GraphQL tutorial",
    "first": 10
  }
}

创建并发布草稿

{
  "tool": "createDraft",
  "arguments": {
    "publicationId": "your-publication-id",
    "title": "My New Post",
    "contentMarkdown": "# Hello World\n\nThis is my post content."
  }
}

安排职位

{
  "tool": "scheduleDraft",
  "arguments": {
    "draftId": "your-draft-id",
    "authorId": "your-author-id",
    "publishAt": "2024-12-31T00:00:00.000Z"
  }
}

🏗️ 建筑

此服务器使用 热插拔自动加载器 图案:

src/
├── index.ts          # Entry point with MCP server setup
├── server.ts         # Server creation and tool registration
├── autoloader.ts     # Dynamic tool discovery
├── utils/
│   └── graphql-client.ts # GraphQL client with error handling
└── tools/            # Tool implementations
    ├── publication.ts    # Each exports toolDefinitions
    ├── post.ts
    ├── user.ts
    ├── me.ts
    ├── draft.ts
    ├── series.ts
    └── static-page.ts

主要优势:

  • 通过将文件放入来添加新工具 src/tools/
  • 无需更改服务器代码
  • 每个工具都是可独立测试的
  • 所有工具的覆盖率超过95%

📚 API 参考

Publication Tools

getPublicationByHost

按主机域检索发布信息。

  • host (string,必填)-发布的主机域
  • 返回:具有id、标题、描述和元数据的发布对象

getPublicationPosts

从支持分页的出版物中获取帖子。

  • publicationId (string,必填)-发布的ID
  • first (number,可选,默认值:10)-要获取的帖子数量
  • after (字符串,可选)-分页光标
  • 返回:带有边缘的PostConnection,用于分页的pageInfo

Post Tools

getPostBySlug

从出版物中按标题获取特定帖子。

  • publicationHost (string,必填)-发布的主机域
  • slug (字符串,必填)-柱塞
  • 返回:带有id、title、slug、short、url和内容的Post对象

搜索帖子

在出版物中搜索帖子。

  • publicationId (string,必填)-发布的ID
  • query (string,必填)-搜索查询字符串
  • first (number,可选,默认值:10)-要获取的结果数
  • 返回:SearchPost与匹配帖子的连接

User Tools

获取用户名:

按用户名检索用户信息。

  • username (string,必填)-用户的用户名
  • 返回:具有id、用户名、姓名、标语和简介的用户对象

getMe

获取有关当前已验证用户的信息。 需要身份验证。

  • 返回:具有id、用户名、姓名、标语和简介的用户对象

获取MyDrafts

检索已验证用户的草稿。 需要身份验证。

  • first (number,可选,默认值:10)-要提取的草稿数
  • 返回:DraftConnection带边和pageInfo用于分页

获取我的帖子

检索已验证用户的已发布帖子。 需要身份验证。

  • first (number,可选,默认值:10)-要获取的帖子数量
  • 返回:带有边缘的PostConnection和用于分页的pageInfo

Draft & Publishing Tools

本节中的所有工具都需要通过以下方式进行身份验证 HASHNODE_API_TOKEN.

创建草稿

为出版物创建新草稿。

  • publicationId (string,必填)-发布的ID
  • title (string,必填)-草稿的标题
  • contentMarkdown (string,必填)-Markdown格式的内容
  • 返回:带有id、title和slug的草稿对象

更新草稿

更新现有草稿。

  • draftId (string,必填)-要更新的草稿的ID
  • title (字符串,必填)-更新后的标题
  • contentMarkdown (string,必填)-Markdown中的更新内容
  • 返回:已更新的草稿对象

发布草稿

发布草稿,使其成为实时帖子。

  • draftId (string,必填)-要发布的草稿的ID
  • 返回:带有id、title、slug和url的Published Post对象

createPost

直接创建和发布帖子,而无需先创建草稿。

  • publicationId (string,必填)-发布的ID
  • title (string,必填)-帖子标题
  • contentMarkdown (string,必填)-Markdown格式的内容
  • 返回:带有id、title、slug和url的Published Post对象

更新帖子

更新现有的已发布帖子。

  • postId (string,必填)-要更新的帖子的ID
  • title (字符串,必填)-更新后的标题
  • contentMarkdown (string,必填)-Markdown中的更新内容
  • 返回:更新了带有id、title、slug和url的Post对象

删除帖子

删除/删除已发布的帖子。

  • postId (string,必填)-要删除的帖子的ID
  • 返回:删除了带有id、title、slug和url的Post对象

恢复

恢复以前删除的帖子。

  • postId (string,必填)-要还原的帖子的ID
  • 返回:已还原的Post对象,包含id、title、slug和url

Scheduling Tools

本节中的所有工具都需要通过以下方式进行身份验证 HASHNODE_API_TOKEN.

日程表草稿

安排一份草案以供将来发布。

  • draftId (string,必填)-要安排的草稿的ID
  • authorId (string,必填)-安排草稿的作者的ID
  • publishAt (字符串,必填)-ISO 8601日期时间字符串(例如,“2024-12-31T00:00:00.000Z”)
  • 返回:具有id和scheduledDate的ScheduledPost对象

重新安排草稿

将之前安排的草稿重新安排到新的日期/时间。

  • draftId (string,必填)-预定草稿的ID
  • publishAt (string,必填)-用于发布的新ISO 8601日期时间字符串
  • 返回:具有id和更新的scheduledDate的ScheduledPost对象

canceled计划草案

取消预定草稿并将其恢复到正常草稿状态。

  • draftId (string,必填)-要取消的预定汇票的ID
  • 返回:具有id和scheduledDate的ScheduledPost对象

Series Tools

getSeriesBySlug

从出版物中按slug获取系列信息。

  • publicationHost (string,必填)-发布的主机域
  • slug (字符串,必填)-该系列的slug
  • 返回:具有id、name、slug和description的序列对象

getSeries帖子

从支持分页的系列中检索帖子。

  • publicationHost (string,必填)-发布的主机域
  • seriesSlug (字符串,必填)-该系列的slug
  • first (number,可选,默认值:10)-要获取的帖子数量
  • 返回:SeriesPost带有边和页面信息的连接

Addpostoseries

将帖子添加到现有系列中。 需要身份验证。

  • seriesId (string,必填)-系列的ID
  • postId (string,必填)-要添加的帖子的ID
  • 返回:具有id、name和slug的序列对象

Static Page Tools

getStaticPageBySlug

从出版物中获取静态页面的slug。

  • publicationHost (string,必填)-发布的主机域
  • slug (string,必填)-静态页面的slug
  • 返回:具有id、title、slug和内容的StaticPage对象

🧪 发展

先决条件

  • Node.js v16+
  • npm或pnpm

设置

# Clone repository
git clone https://github.com/rawveg/hashnode-mcp.git
cd hashnode-mcp

# Install dependencies
npm install

# Build project
npm run build

# Run tests
npm test

# Run tests with coverage
npm run test:coverage

测试覆盖率

该项目遵循严格的TDD方法:

Statements   : 95%+
Branches     : 95%+
Functions    : 100%
Lines        : 95%+

测试原理:

  • 所有功能的红绿重构周期
  • 关键路径始终经过测试
  • 边缘案例经过选择性测试
  • 按影响排序的错误路径

添加新工具

  1. 创建 src/tools/your-tool.ts:
import { ToolDefinition } from '../autoloader.js';
import { GraphQLClient } from '../utils/graphql-client.js';

export const toolDefinitions: ToolDefinition[] = [
  {
    name: 'yourTool',
    description: 'Your tool description',
    inputSchema: {
      type: 'object',
      properties: {
        param: { type: 'string' }
      },
      required: ['param']
    },
    handler: async (client, args) => {
      // Implementation
      return 'result';
    }
  }
];
  1. 在中创建测试 __tests__/tools/your-tool.test.ts
  2. 完成!自动加载器会自动发现它。

🤝 贡献

欢迎投稿!请遵循以下指南:

  1. 分叉 存储库
  2. 创建 特征分支(git checkout -b feature/amazing-feature)
  3. 编写测试 -我们保持95%以上的覆盖率
  4. 提交 信息清晰(git commit -m 'Add amazing feature')
  5. 到您的分行(git push origin feature/amazing-feature)
  6. 打开 拉取请求

代码质量标准

  • 所有新工具都必须导出 toolDefinitions
  • 保持≥80%的测试覆盖率
  • 遵循现有的TypeScript模式
  • TypeScript严格模式是不可协商的
  • 遵循红绿重构TDD周期

📄 许可证

该项目根据 GNU Affero通用公共许可证v3.0 (AGPL-3.0)。

许可证 了解详情。

🔗 相关项目

🙏 致谢

内置:

  • MCP-SDK -模型上下文协议SDK
  • -Hashnode的官方API

______________________________________________________________________

⬆ 返回页首

由以下材料制成❤️ 通过 提姆·格林

目录标签

目录标签

开发工具TypeScriptClaude博客管理本地部署API集成内容发布自动化工具开发者工具

支持客户端

Claude DesktopClaudeCline

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明token部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP