
Hashnode MCP Server

2025.05.01
0
Python内容管理API 集成自动化工具内容生成交流协作
Hashnode MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器,用于与 Hashnode API 进行交互。该服务器提供了多种工具,允许用户以编程方式访问和搜索 Hashnode 上的内容。
### 核心功能
- 测试与 Hashnode API 的连接
- 从特定出版物获取文章
- 通过主机名获取出版物 ID
- 在出版物内搜索文章
- 详细格式化文章数据和搜索结果
- 创建、更新和管理文章
- 关注或取消关注用户
- 发布草稿
- 创建 Webhook
### 适用场景
- 开发者需要自动化管理 Hashnode 上的内容
- 团队协作管理博客或技术文章
- 内容创作者需要批量操作文章
- 开发者需要集成 Hashnode API 到自己的应用中
View on GitHub
Overview
基本能力
产品定位
Hashnode MCP Server 是一个用于与 Hashnode API 交互的工具,主要用于内容管理和自动化操作。
核心功能
- 测试与 Hashnode API 的连接
- 从特定出版物获取文章
- 通过主机名获取出版物 ID
- 在出版物内搜索文章
- 详细格式化文章数据和搜索结果
- 创建、更新和管理文章
- 关注或取消关注用户
- 发布草稿
- 创建 Webhook
适用场景
- 开发者需要自动化管理 Hashnode 上的内容
- 团队协作管理博客或技术文章
- 内容创作者需要批量操作文章
- 开发者需要集成 Hashnode API 到自己的应用中
工具列表
test_api_connection()
: 测试与 Hashnode API 的连接get_publication_posts(host, first=5)
: 从特定出版物获取文章get_publication_id(host)
: 通过主机名获取出版物 IDsearch_posts_of_publication(publication_id, query, first=10)
: 在出版物内搜索文章search_posts_by_hostname(host, query, first=10)
: 通过主机名在出版物内搜索文章get_article_details(article_id)
: 获取特定文章的详细信息create_article(title, body_markdown, tags, published)
: 创建新文章update_article(article_id, title, body_markdown, tags, published)
: 更新现有文章toggle_follow(username)
: 关注或取消关注用户publish_draft(draft_id)
: 发布草稿create_webhook(publication_host, url, events, secret)
: 为出版物创建 Webhook
常见问题解答
- 如何获取 Hashnode 个人访问令牌? 需要在 Hashnode 开发者设置中生成个人访问令牌。
- 如何配置环境变量?
在项目根目录创建
.env
文件,并按照示例格式填写HASHNODE_PERSONAL_ACCESS_TOKEN
和HASHNODE_API_URL
。
使用教程
使用依赖
- 确保已安装 Python 3.x
- 确保已安装 Git
安装教程
- 克隆仓库:
bash git clone https://github.com/sbmagar13/hashnode-mcp-server.git cd hashnode-mcp-server
- 创建并激活虚拟环境:
bash python -m venv .venv source .venv/bin/activate # Windows 使用: .venv\Scripts\activate
- 安装依赖:
bash pip install -r requirements.txt
- 创建
.env
文件并填写 API 凭证:HASHNODE_PERSONAL_ACCESS_TOKEN=your_personal_access_token HASHNODE_API_URL=https://gql.hashnode.com
调试方式
- 启动服务器:
bash python mcp_server.py
- 使用 MCP 客户端测试连接:
python from mcp.client import MCPClient client = MCPClient("http://localhost:8000") result = client.use_tool("test_api_connection") print(result)