Hexo Blog MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Hexo Blog MCP ServerCreate a new post about AI trends and start the local preview"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🚀 Hexo Blog MCP Server
一个基于 Model Context Protocol 的 Hexo 博客管理服务器,让 AI 客户端(Claude Desktop、Cursor 等)能够直接管理你的 Hexo 博客。
✨ 功能特性
📝 文章管理 — 列出、搜索、读取、创建、编辑、删除博客文章
👀 本地预览 — 一键启动/停止 Hexo 本地预览服务器
🌐 一键发布 — 构建并部署到 GitHub Pages
💾 源码备份 — 自动 Git 提交并推送到
hexo-source分支🔒 安全防护 — 路径沙盒、分支锁定、命令超时保护
Related MCP server: Ghost MCP Server
📦 安装
# 克隆或进入项目目录
cd /Users/lizexi/Documents/AI/aiMcp/hexo-mcp-server
# 安装依赖
npm install
# 构建
npm run build⚙️ MCP 客户端配置
在你的 AI 客户端中添加以下 MCP 配置:
Claude Desktop
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"hexo-blog": {
"command": "node",
"args": ["/Users/lizexi/Documents/AI/aiMcp/hexo-mcp-server/dist/index.js"],
"env": {
"BLOG_ROOT": "/Users/lizexi/Documents/code/leejersey.github.io"
}
}
}
}Cursor
在 Cursor Settings → MCP 中添加相同配置。
🛠️ 可用的 Tools
文章管理
工具 | 参数 | 功能 |
|
| 列出所有文章,支持按关键词过滤标题和标签 |
|
| 按关键词全文搜索文章(标题+正文) |
|
| 读取指定文章的完整内容(含 Front-matter) |
|
| 创建新文章并自动生成 Front-matter |
|
| 修改文章内容或元数据 |
|
| 删除指定文章 |
博客操作
工具 | 功能 |
| 执行 |
| 停止正在运行的预览服务器 |
| 执行 |
Git 操作
工具 | 参数 | 功能 |
|
| Git add → commit → push 到 |
|
| 一键完成 deploy + backup 组合操作 |
| — | 查看当前工作区的 Git 状态 |
📚 可用的 Resources
URI | 描述 |
| 站点配置 |
| Apollo 主题配置 |
| 所有文章的元数据汇总(标题、日期、标签、字数) |
🏗️ 项目结构
src/
├── index.ts # MCP 服务器入口
├── config.ts # 路径与常量配置
├── tools/
│ ├── post-tools.ts # 文章管理工具(6个)
│ ├── hexo-tools.ts # 构建/预览/部署工具(3个)
│ └── git-tools.ts # Git 操作工具(3个)
├── resources/
│ └── blog-resources.ts # 博客数据资源(3个)
└── utils/
├── post-manager.ts # 文章文件操作核心逻辑
├── hexo-runner.ts # shell/hexo 命令封装
└── git-runner.ts # git 命令封装🔧 技术栈
TypeScript + Node.js 18+
@modelcontextprotocol/sdk — MCP 官方 SDK(stdio 传输)
zod — 工具参数验证
gray-matter — Hexo 文章 Front-matter 解析
📄 License
MIT
Available Tools
12 toolsbackup_sourceC
将博客源码通过 Git 备份到 hexo-source 分支
| Name | Required | Description | Default |
|---|---|---|---|
| message | No | 可选的 Git 提交信息 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the action ('backup via Git') but lacks critical details: whether this requires specific permissions, if it's idempotent, what happens on failure, or what the output looks like. For a mutation tool (implied by 'backup' as a write operation), this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Chinese that clearly states the tool's purpose. It's front-loaded with the core action and includes specific implementation details without unnecessary elaboration. Every word earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a Git backup operation with potential side effects), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'backup' entails (e.g., commit, push), success/failure behavior, or return values. For a tool that modifies repository state, this leaves the agent with insufficient context to use it reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter 'message', which is documented as 'optional Git commit message'. The description adds no parameter information beyond what the schema provides. With high schema coverage and only one parameter, the baseline score of 3 is appropriate—the description doesn't add value but doesn't need to compensate for gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('backup') and resource ('blog source code') with specific implementation details ('via Git to hexo-source branch'). It distinguishes from siblings like 'deploy_blog' or 'git_status' by focusing on backup rather than deployment or status checking. However, it doesn't explicitly contrast with all siblings, missing some differentiation opportunities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., Git repository setup), timing (e.g., after content changes), or when not to use it (e.g., versus 'deploy_blog' for publishing). This leaves the agent without context for tool selection among the 11 siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_postC
创建一篇新的博客文章
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | 文章标题 | |
| content | No | 文章正文内容(Markdown) | |
| tags | No | 文章标签列表 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool creates a new blog post, implying a write/mutation operation, but doesn't mention permissions required, whether the post is published immediately, what happens on failure, or any rate limits. For a mutation tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose with zero wasted words. It's appropriately sized for a simple creation tool and front-loads the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool (creating blog posts) with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after creation (e.g., returns post ID, publishes immediately), error conditions, or how it differs from similar tools like 'quick_publish'. Given the complexity and lack of structured data, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters (title, content, tags) with their descriptions. The description adds no additional parameter information beyond what's in the schema. According to guidelines, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('创建一篇新的博客文章' - create a new blog post) and identifies the resource (blog post). It distinguishes from siblings like 'update_post' or 'delete_post' by specifying creation. However, it doesn't explicitly differentiate from 'quick_publish' which might also create posts, making it a 4 rather than a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'quick_publish' or 'update_post'. There's no mention of prerequisites, timing considerations, or differences from sibling tools. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_postA
删除指定的博客文章(不可撤销)
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | 要删除的文章文件名 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly states the operation is irreversible ('不可撤销'), which is crucial behavioral information for a destructive operation. However, it doesn't mention permissions required, error conditions, or what happens to associated data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single sentence that communicates both the action and a critical behavioral constraint. Every word earns its place with zero waste or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and no output schema, the description provides the essential warning about irreversibility but lacks information about permissions, error handling, or confirmation requirements. Given the high-risk nature of deletion operations, more context would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with the single parameter 'filename' already documented in the schema. The description doesn't add any additional parameter semantics beyond what the schema provides, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('删除' - delete) and resource ('博客文章' - blog post), distinguishing it from sibling tools like create_post, update_post, and read_post. It precisely communicates the tool's function without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives like update_post or when deletion is appropriate. The description mentions the action is irreversible, but doesn't specify prerequisites, conditions, or alternatives for handling blog posts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deploy_blogA
构建并发布博客到 GitHub Pages(执行 hexo clean && hexo generate && hexo deploy)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions the three hexo commands that will be executed, it doesn't disclose important behavioral traits like whether this is a destructive operation (likely yes, as it deploys to GitHub Pages), what prerequisites are needed (hexo setup, git configuration), or potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('构建并发布博客到 GitHub Pages') and provides essential technical detail in parentheses. Every element earns its place with zero wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a deployment tool with no annotations and no output schema, the description provides adequate basic information about what the tool does but lacks important context about behavioral characteristics, prerequisites, and what happens after deployment. For a tool that likely modifies production content, more disclosure would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't discuss parameters since none exist, focusing instead on the action being performed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('构建并发布博客' - build and publish blog) and the target resource ('到 GitHub Pages' - to GitHub Pages). It distinguishes from siblings like preview_blog, create_post, and quick_publish by specifying the full deployment pipeline with hexo commands.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by mentioning the specific hexo commands (clean, generate, deploy), suggesting this is for final deployment rather than testing. However, it doesn't explicitly state when NOT to use it or name alternatives like preview_blog for testing or quick_publish for simpler publishing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
git_statusB
查看博客项目当前的 Git 状态(未提交的更改)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool views Git status for uncommitted changes, implying a read-only operation, but doesn't specify whether it requires Git installation, authentication, or network access, or describe the output format (e.g., text summary). This leaves gaps for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Chinese that directly states the purpose without unnecessary words. It's front-loaded with the core action ('view Git status') and includes clarifying scope ('blog project') and detail ('uncommitted changes'). However, it could be slightly more structured by separating scope from action for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (0 parameters, no annotations, no output schema), the description is minimally adequate. It covers the basic purpose but lacks details on behavioral traits (e.g., output format, dependencies) and usage guidelines. For a simple read tool, this is acceptable but leaves room for improvement in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, and it appropriately avoids mentioning any. A baseline score of 4 is given since no parameters exist, and the description doesn't mislead about inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '查看博客项目当前的 Git 状态(未提交的更改)' translates to 'View the current Git status (uncommitted changes) of the blog project.' It specifies the verb ('view'), resource ('Git status'), and scope ('blog project'), but doesn't explicitly differentiate from sibling tools like 'deploy_blog' or 'backup_source' that might also involve Git operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a Git repository), exclusions (e.g., not for committed changes), or related tools like 'deploy_blog' that might depend on Git status. Usage is implied only by the purpose, with no explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_postsC
列出所有博客文章,支持按关键词过滤标题和标签
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | No | 可选的过滤关键词 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states it's a listing/filtering operation but doesn't describe return format, pagination behavior, permissions required, rate limits, or whether it's read-only versus destructive. The description is minimal and lacks important behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core functionality upfront. There's no wasted verbiage, though it could be slightly more structured by separating listing from filtering capabilities.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a listing tool with no annotations and no output schema, the description is insufficient. It doesn't explain what information is returned (post titles, IDs, dates, content snippets?), format, pagination, or error conditions. Given the complexity of blog post listing and the lack of structured metadata, more completeness is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the single optional 'keyword' parameter. The description adds marginal value by specifying that filtering applies to '标题和标签' (title and tags), which provides slightly more context than the schema's '可选的过滤关键词' (optional filtering keyword). Baseline 3 is appropriate when schema does most of the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '列出所有博客文章' (list all blog posts) with the specific capability '支持按关键词过滤标题和标签' (supports filtering by keyword in title and tags). It uses a specific verb ('列出' - list) and resource ('博客文章' - blog posts), but doesn't explicitly distinguish it from sibling tools like 'search_posts' or 'read_post'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'search_posts' or 'read_post'. It mentions filtering capability but doesn't clarify if this is for broad listing versus targeted searching, or any prerequisites for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_blogB
启动 Hexo 本地预览服务器(localhost:4000)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool starts a local preview server but doesn't disclose behavioral traits such as whether it runs in the background, requires specific permissions, has rate limits, or what happens if the server is already running. This leaves significant gaps for a tool that likely involves process management.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Chinese that directly states the tool's purpose and key detail (localhost:4000). It's front-loaded with the main action and has zero wasted words, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool likely starts a server process (implied complexity), no annotations, and no output schema, the description is minimal. It covers the basic purpose but lacks details on behavior, output, or error handling. For a tool with potential side effects (e.g., port binding), more context would be helpful, but it's adequate for a simple preview tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here. Baseline is 4 for 0 parameters, as it avoids unnecessary information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('启动' meaning 'start' or 'launch') and the resource ('Hexo 本地预览服务器' meaning 'Hexo local preview server'), specifying it runs on localhost:4000. It distinguishes from siblings like 'deploy_blog' (production deployment) and 'stop_preview' (stopping the server), but doesn't explicitly differentiate from all siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by specifying it's a local preview server (localhost:4000), suggesting it's for testing before deployment. However, it doesn't explicitly state when to use this vs. alternatives like 'deploy_blog' for production or 'stop_preview' to terminate, nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quick_publishC
一键完成博客发布和源码备份(deploy + backup 组合操作)
| Name | Required | Description | Default |
|---|---|---|---|
| message | No | 可选的 Git 提交信息 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool performs a combination of deploy and backup operations, implying mutation and data handling, but doesn't disclose critical traits like permissions needed, whether it's destructive, rate limits, or error handling. This is a significant gap for a tool with potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded in a single sentence: '一键完成博客发布和源码备份(deploy + backup 组合操作)'. It efficiently conveys the core purpose without unnecessary details. However, it could be slightly more structured by separating key points, but it earns its place as minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a combination tool with potential mutations) and no annotations or output schema, the description is incomplete. It lacks details on behavioral traits, error handling, and what the tool returns. For a tool that likely involves significant operations, more context is needed to ensure safe and correct usage by an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter semantics beyond what the input schema provides. Schema description coverage is 100%, with one optional parameter 'message' documented as '可选的 Git 提交信息' (optional Git commit message). The description doesn't mention parameters at all, so it relies entirely on the schema. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '一键完成博客发布和源码备份' translates to 'one-click completion of blog publishing and source code backup.' It specifies the verb (complete) and resources (blog publishing, source code backup). However, it doesn't explicitly distinguish from siblings like 'deploy_blog' or 'backup_source,' which are mentioned as components but not compared.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions 'deploy + backup 组合操作' (deploy + backup combination operation), implying it combines functions of 'deploy_blog' and 'backup_source,' but doesn't specify scenarios, prerequisites, or exclusions. Without explicit when/when-not instructions, usage is unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_postC
读取指定文章的完整内容(含 Front-matter 和正文)
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | 文章文件名,如 react-hooks笔记.md |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states what content is returned but doesn't mention error conditions (e.g., what happens if filename doesn't exist), permissions required, rate limits, or response format. For a read operation with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that communicates the core purpose. It's appropriately sized for a simple read operation, though it could potentially be more front-loaded with key behavioral information given the lack of annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with good schema coverage but no annotations and no output schema, the description is minimally adequate. It states what content is retrieved but doesn't address error handling, return format, or how this differs from similar tools. The description meets basic requirements but leaves the agent to infer important contextual details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with one parameter clearly documented. The description doesn't add any parameter semantics beyond what the schema provides - it mentions '指定文章' (specified article) which aligns with the filename parameter but adds no additional context about format, constraints, or examples. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('读取' - read) and resource ('指定文章的完整内容' - complete content of specified article), including what content is retrieved (Front-matter and body text). It doesn't explicitly differentiate from sibling tools like 'list_posts' or 'search_posts', but the focus on reading full content of a specific article is reasonably clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites, when not to use it, or how it differs from sibling tools like 'preview_blog' or 'search_posts'. The agent must infer usage context from the tool name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_postsC
按关键词搜索文章标题和正文内容
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | 搜索关键词 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It states what the tool does but doesn't describe how it behaves: no information on search scope (e.g., partial/full matches), result format, pagination, sorting, error handling, or performance characteristics. For a search tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single sentence in Chinese that directly states the tool's function. It's front-loaded with the core action and resource, with no wasted words or redundant information. This is efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (search functionality with one parameter) and lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns, how results are structured, or any behavioral nuances. For a search tool, this leaves the agent guessing about output and usage details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal value beyond the input schema. Schema description coverage is 100%, with the single parameter 'query' documented as '搜索关键词' (search keyword). The description implies the parameter is used for searching titles and bodies but doesn't provide additional syntax, format, or constraint details. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: searching posts by keyword in both title and body content. It uses specific verbs ('搜索' - search) and resources ('文章标题和正文内容' - post titles and body content). However, it doesn't explicitly differentiate from sibling tools like 'list_posts' or 'read_post', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when search is preferable to listing posts, when to use it versus 'read_post' for specific content, or any prerequisites or constraints. The agent must infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_previewA
停止正在运行的 Hexo 本地预览服务器
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool stops a running server, implying a destructive action, but doesn't detail effects (e.g., if it terminates processes, frees ports, or affects unsaved data). It adds basic context but lacks depth on behavior like error handling or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Chinese that directly states the tool's function. It's front-loaded with the core action and resource, with zero wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a simple 0-parameter tool, the description is minimally adequate. It covers the basic purpose but lacks details on what 'stopping' entails operationally, potential side effects, or confirmation of success. For a destructive tool, more behavioral context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't mention parameters, which is appropriate. Baseline is 4 for 0 params, as it avoids unnecessary detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('停止' meaning 'stop') and the target resource ('Hexo 本地预览服务器' meaning 'Hexo local preview server'). It distinguishes from siblings like 'preview_blog' (which likely starts the server) and 'deploy_blog' (which publishes).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context—when a Hexo preview server is running—but doesn't explicitly state when NOT to use it or name alternatives. It's clear you'd use this after 'preview_blog', but lacks explicit exclusions or sibling comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_postC
修改指定文章的内容或元数据
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | 文章文件名 | |
| content | Yes | 新的文章正文内容(Markdown) | |
| title | No | 可选,修改标题 | |
| tags | No | 可选,修改标签 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states this is a modification tool, implying mutation, but doesn't disclose behavioral traits like whether it overwrites or merges content, what permissions are required, if changes are reversible, or what happens on success/failure. For a mutation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Chinese that directly states the tool's purpose. It's front-loaded with the core action and resource, with no wasted words or redundant information. Every part of the sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool with 4 parameters, no annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects (e.g., side effects, error handling), usage context, or return values. The agent lacks critical information to use this tool safely and effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 4 parameters (filename, content, title, tags) with descriptions. The description adds no additional parameter semantics beyond what's in the schema—it doesn't explain format constraints, interactions between parameters, or default behaviors. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('修改' meaning modify/update) and the resource ('文章' meaning post/article), specifying it can modify content or metadata. It distinguishes from siblings like create_post (create) and delete_post (delete), but doesn't explicitly differentiate from other modification tools if they existed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing post), when not to use it, or how it differs from similar tools like quick_publish or create_post. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
12 tool updates
v1.0.0- First observed
backup_source - First observed
create_post - First observed
delete_post - First observed
deploy_blog - First observed
git_status - First observed
list_posts - First observed
preview_blog - First observed
quick_publish - First observed
read_post - First observed
search_posts - First observed
stop_preview - First observed
update_post
TDQS
Each tool has a clearly distinct purpose with no ambiguity. For example, create_post, read_post, update_post, and delete_post form a complete CRUD set for posts, while deploy_blog, preview_blog, and stop_preview handle different aspects of the publishing workflow. Tools like list_posts and search_posts are differentiated by their filtering mechanisms (list vs. search).
All tools follow a consistent verb_noun naming pattern in snake_case, such as create_post, delete_post, deploy_blog, and preview_blog. This uniformity makes the tool set predictable and easy to understand, with no deviations in style or convention across the 12 tools.
With 12 tools, the server is well-scoped for managing a Hexo blog, covering essential operations like post management, deployment, previewing, and backup. Each tool serves a specific function without redundancy, making the count appropriate for the domain's typical workflows.
The tool set provides complete coverage for Hexo blog management, including full CRUD for posts (create, read, update, delete), deployment (deploy_blog, preview_blog, stop_preview), backup (backup_source), and utilities like git_status and search. There are no obvious gaps, as all core lifecycle operations are supported.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Create, manage, publish, and analyze Inblog content through AI agents.
Create, edit, organize, publish, and configure JustBlogged blogs from MCP clients.
Publish to self-hosted WordPress from AI agents: markdown, images, SEO, and Notion sync.
- ZeroCMSOAuthio.zerocms
AI-native Git-based CMS for Astro. Create and publish content in the browser, without learning git.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to interact with Emlog blog systems through a standardized Model Context Protocol interface, supporting content management operations like creating/updating articles, managing comments, uploading files, and accessing blog resources.12172MIT
- AlicenseNot gradedqualityDmaintenanceManage your Ghost blog content directly from Claude, Cursor, or any MCP-compatible client, allowing you to create, edit, search, and delete posts with support for tag management and analytics.23MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Halo blog systems through natural language, supporting article creation/editing/publishing, categories, tags, attachments, and includes 10 AI writing prompts for content optimization and SEO.18MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to interact with the Google Blogger API v3 to manage blog posts and metadata. It supports the full post lifecycle including creating, updating, publishing, and deleting content through natural language.1017MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/leejersey/hexo-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server