Halo
Halo is a Python-based server that seamlessly integrates the Halo blog system with various AI assistants like Claude, Cursor, and Qoder, transforming how users manage their blog content. It empowers AI to handle all aspects of blog administration, from article creation, editing, and publishing to advanced tasks like intelligent writing, content optimization, and SEO enhancement, all through intuitive natural language interaction.
Key Features
Use Cases
让AI成为你的博客管理助手
通过 MCP 将 Halo 博客系统与 AI 助手(如 Claude、Cursor、Qoder、Trae等)无缝集成
如果这个项目对你有帮助,欢迎赞赏支持 ☕
感谢您的支持!
Halo MCP Server 是一个基于 Python 的 MCP 服务器,为 AI 助手提供完整的 Halo 博客管理能力。通过自然语言对话,你可以轻松完成文章创建、编辑、发布等所有博客管理操作,并利用 AI 的强大能力进行智能写作、内容优化和 SEO 提升。
- 🤖 AI 驱动 - 用自然语言管理博客,无需记忆复杂命令
- ✍️ 智能写作 - 10个专业 Prompts 助手,覆盖写作全流程
- 🚀 高效管理 - 30+ 管理工具,一句话完成复杂操作
- 🔄 无缝集成 - 与 Claude Desktop 完美配合,开箱即用
- 📝 完整功能 - 支持文章、分类、标签、附件等全部管理功能
|
基础操作
|
高级功能
|
|
分类管理(6个)
|
标签管理(7个)
|
- ✅ 列出附件(支持筛选)
- ✅ 上传本地文件
- ✅ 从 URL 上传
- ✅ 删除附件
- ✅ 附件分组管理
- ✅ 查看附件详情
- ✅ 创建附件分组
- ✅ 查看存储策略
|
内容创作
|
辅助功能
|
-
Python 3.10 或更高版本
python --version # 确认版本 >= 3.10 -
运行中的 Halo 博客系统
- Halo 2.21 或更高版本
- 记录服务器地址��如
http://localhost:8091或https://yourdomain.com)
-
Claude Desktop 或其他 MCP 兼容客户端
- 下载地址:Claude Desktop
# 1. 克隆或下载项目
git clone https://github.com/Huangwh826/halo-mcp-server.git
cd halo-mcp-server
# 2. 创建虚拟环境(推荐)
python -m venv venv
# 3. 激活虚拟环境
# Windows:
venv\Scripts\activate
# macOS/Linux:
source venv/bin/activate
# 4. 安装项目(可编辑模式)
pip install -e .pip install halo-mcp-server- 登录 Halo 后台管理系统
- 进入 个人中心 → 个人令牌
- 点击 生成新令牌
- 设置令牌名称(如 "MCP Server")
- 选择权限(建议勾选所有内容管理权限)
- 保存并复制生成的令牌(仅显示一次)
找到并编辑 Claude Desktop 配置文件:
文件位置:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
配置内容:
{
"mcpServers": {
"halo-mcp-server": {
"command": "python",
"args": [
"-m",
"halo_mcp_server"
],
"env": {
"HALO_BASE_URL": "your_halo_base_url_here",
"HALO_TOKEN": "your_halo_token_here"
}
}
}
}📝 配置说明:
| 配置项 | 说明 | 示例 |
|---|---|---|
command |
Python 解释器路径 | python 或 C:\\Python310\\python.exe |
HALO_BASE_URL |
Halo 服务器地址 | http://localhost:8091 或 https://blog.example.com |
HALO_TOKEN |
API 访问令牌 | 从 Halo 后台获取的令牌 |
💡 提示:
-
使用虚拟环境时,将
command指向虚拟环境的 Python:"command": "D:\\Project\\halo-mcp\\venv\\Scripts\\python.exe"
-
查找 Python 路径:
# Windows where python # macOS/Linux which python
-
远程 Halo 服务,确保使用完整 URL(包含
http://或https://)
完全关闭并重新启动 Claude Desktop 以加载新配置。
在 Claude Desktop 中输入以下测试命令:
请列出我的所有博客文章
预期结果:
- Claude 会调用 Halo MCP Server
- 返回你的文章列表
- 如果没有文章,会提示"暂无文章"
成功标志:
- ✅ 没有报错
- ✅ 返回了文章列表或提示信息
- ✅ Claude 理解了"列出文章"的指令
📖 完整示例文档:查看 examples/README.md 获取 6 个详细示例和完整代码
🚀 快速开始:quick_start_example.md - 5分钟了解基本用法
Halo MCP Server 的最大优势是支持自然语言对话,无需记忆复杂命令:
👤 用户:帮我写一篇关于 Python 异步编程的技术文章并发布
🤖 Claude:
好的!我来帮你创作这篇文章。
[自动触发 halo_blog_writing_assistant Prompt]
→ 生成 2000 字专业文章
→ 推荐标签:Python、异步编程、asyncio
→ 推荐分类:技术���程
→ 调用 create_post 创建文章
→ 调用 publish_post 发布
✓ 文章《Python异步编程完全指南》已成功创建并发布!
# 查看文章
请显示我最近发布的5篇文章
# 搜索文章
搜索标题包含"Python"的文章
# 编辑文章
把"Python教程"这篇文章的标题改为"Python入门指南"
# 删除文章
删除名为"test-post"的文章
# 优化文章
请优化"Python教程"这篇文章,让它更通俗易懂
# 生成标题
为这篇文章生成5个吸引人的标题
# SEO优化
帮这篇文章做SEO优化,关键词是:Python、教程、入门
# 创建分类
创建一个名为"技术教程"的分类,描述是"各类技术教程文章"
# 创建标签
创建标签:Python、JavaScript、TypeScript,颜色设置为蓝色
# 批量操作
为"Python教程"文章添加标签:Python、编程、教程
# 上传图片
上传这张图片作为文章封面:https://example.com/image.jpg
# 查看附件
列出所有图片附件
# 创建分组
创建一个名为"文章配图"的附件分组
👤 用户:我想写一篇关于 Docker 容器化的技术文章
🤖 Claude:
好的!我来帮你完成整个创作和发布流程。
步骤1: 内容创作
[触发 halo_blog_writing_assistant]
→ 生成完整文章(包含简介、核心概念、实践示例、总结)
步骤2: 标题优化
[触发 halo_title_generator]
→ 提供5个标题选项供选择
步骤3: SEO优化
[触发 halo_seo_optimizer]
→ 优化关键词布局
→ 生成Meta描述
步骤4: 分类标签
[触发 halo_tag_suggester]
→ 推荐标签:Docker、容器化、DevOps、云原生
[触发 halo_category_suggester]
→ 推荐分类:云原生技术
步骤5: 创建并发布
[调用 create_post]
→ 创建文章
[调用 publish_post]
→ 发布文章
✓ 完成!文章《Docker容器化实践指南》已成功发布
- 字数:2000字
- 标签:Docker、容器化、DevOps、云原生
- 分类:云原生技术
- 文章链接:https://yourblog.com/posts/docker-guide
Halo MCP Server 提供两种不同的能力:
| 类型 | Tools(工具) | Prompts(提示助手) | 对比 |
|---|---|---|---|
| 数量 | 30 个 | 10 个 | 互补配合 |
| 用途 | 执行具体操作(CRUD) | 生成内容指导 | 工具执行 提示生成 |
| 显示 | ✅ 在工具列表中可见 | ❌ 后台自动触发 | 显式 vs 隐式 |
| 调用 | Claude 主动调用 API | 根据意图自动匹配 | API vs 智能 |
| 示例 |
• create_post - 创建文章 • list_categories - 列出分类 • upload_attachment - 上传附件 |
• 博客写作助手 - 生成文章 • SEO优化器 - 优化内容 • 标签建议器 - 推荐标签 |
操作 vs 创作 |
| 触发方式 |
明确的操作指令: "创建文章" "上传图片" |
描述性需求: "写一篇文章" "优化内容" |
命令 vs 对话 |
💡 实际工作流:
用户: "帮我写一篇Python教程并发布"
↓
Prompts: halo_blog_writing_assistant → 生成文章内容
↓
Tools: create_post → 创建文章到 Halo
↓
Tools: publish_post → 发布文章
↓
结果: ✓ 文章创建并发布成功
这是 MCP 的优秀设计:
- ✅ 用户友好 - 无需记忆 Prompt 名称
- ✅ 智能匹配 - AI 自动理解意图并选择合适的 Prompt
- ✅ 无感知 - 后台自动工作,用户只需描述需求
- ✅ 灵活性 - 可以用各种方式表达同一个需求
对比传统方式:
# ❌ 传统 CLI 方式
$ halo-cli create-post \
--title "Python教程" \
--content-file article.md \
--tags "Python,教程" \
--category "编程" \
--publish
# ✅ MCP 方式(自然语言)
帮我写一篇Python教程并发布| 文档 | 描述 |
|---|---|
| 快速开始 | 5分钟快速上手指南 |
| 设计文档 | 系统架构和设计理念 |
| MCP Prompts 指南 | 10个写作助手详细说明 |
| Prompts vs Tools | 两者区别和使用方法 |
| 使用示例 | 完整的使用示例集 |
| 文档 | 描述 |
|---|---|
| API 整理 | Halo API 整理 |
| Console API | Halo 控制台 API |
| Public API | Halo 公开 API |
| UC API | Halo 用户内容 API |
| Extension API | Halo 扩展 API |
💡 完整示例指南:查看 examples/README.md 获取详细的示例文档和使用说明
examples/
├── README.md # 📘 示例总览和详细指南
├── quick_start_example.md # ⚡ 快速开始(必读)
├── usage_examples.md # 📚 使用示例合集
├── category_management_examples.py # 🏷️ 分类管理完整示例
├── tag_management_examples.py # 🔖 标签管理完整示例
├── attachment_management_examples.py # 📎 附件管理完整示例
└── mcp_prompts_examples.py # 🤖 AI写作助手示例
新手推荐路径:
按功能学习:
| 示例文件 | 功能 | 难度 | 说明 |
|---|---|---|---|
| quick_start_example.md | 快速入门 | ⭐ | 实际调用示例,展示基本用法 |
| usage_examples.md | 综合示例 | ⭐⭐ | 涵盖所有工具的使用场景 |
| category_management_examples.py | 分类管理 | ⭐⭐ | 279行完整代码示例 |
| tag_management_examples.py | 标签管理 | ⭐⭐ | 375行完整代码示例 |
| attachment_management_examples.py | 附件管理 | ⭐⭐⭐ | 477行完整代码示例 |
| mcp_prompts_examples.py | AI写作助手 | ⭐⭐⭐ | 341行Prompts使用示例 |
- Markdown 示例 (
.md) - 适合阅���和理解,包含详细说明 - Python 示例 (
.py) - 可直接运行的完整代码,包含注释 - 从简到难 - 建议按上表顺序学习,逐步掌握所有功能
运行 Python 示例:
# 1. 确保已配置环境变量
export HALO_BASE_URL="your_url"
export HALO_TOKEN="your_token"
# 2. 运行示例(以分类管理为例)
cd examples
python category_management_examples.py创建 .env 文件或在 Claude Desktop 配置中设置:
# ========== 必需配置 ==========
HALO_BASE_URL=http://localhost:8091 # Halo 服务器地址
HALO_TOKEN=your_token_here # API 访问令牌
# ========== 可选配置 ==========
MCP_LOG_LEVEL=INFO # 日志级别: DEBUG, INFO, WARNING, ERROR
MCP_TIMEOUT=30 # HTTP 请求超时(秒)
# ========== 功能开关 ==========
ENABLE_IMAGE_COMPRESSION=true # 启用图片压缩
IMAGE_MAX_WIDTH=1920 # 压缩后最大宽度(像素)
IMAGE_QUALITY=85 # 图片质量 (1-100)
MAX_UPLOAD_SIZE_MB=10 # 最大上传大小(MB)
# ========== 高级配置 ==========
HTTP_POOL_SIZE=10 # HTTP 连接池大小
MAX_RETRIES=3 # 请求重试次数
ENABLE_CACHE=true # 启用缓存
CACHE_TTL=300 # 缓存过期时间(秒)完整配置说明请参考 .env.example
症状: Claude 不响应博客管理命令
解决方案:
# 检查配置文件
# Windows: %APPDATA%\Claude\claude_desktop_config.json
# macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
# 验证配置格式(JSON必须正确)
# 确认 Python 路径正确
# 重启 Claude Desktop症状: 报错"Authentication failed"或"Invalid token"
解决方案:
- 检查
HALO_TOKEN是否正确(无多余空格) - 确认 Token 未过期
- 验证
HALO_BASE_URL是否可访问 - 测试网络连接:
curl http://localhost:8091/apis/api.console.halo.run/v1alpha1/posts
症状: "No module named 'halo-mcp-server'"
解决方案:
# 重新安装
pip install -e .
# 验证安装
pip show halo-mcp-server
# 检查 Python 路径
python -c "import halo-mcp-server; print(halo_mcp_server.__version__)"症状: AI 不能自动生成文章内容
说明: Prompts 是隐藏的,通过自然语言触发
测试方法:
# ✅ 正确方式(会触发写作 Prompt)
帮��写一篇关于Python的文章
# ❌ 错误理解(不需要这样)
使用 halo_blog_writing_assistant 写文章
设置调试级别:
{
"mcpServers": {
"halo": {
"env": {
"MCP_LOG_LEVEL": "DEBUG"
}
}
}
}日志位置:
- Claude Desktop 日志:帮助 → 开发者工具 → Console
- MCP 服务日志:查看标准输出
测试认证:
# 使用 curl 测试
curl -H "Authorization: Bearer YOUR_TOKEN" \
http://localhost:8091/apis/uc.api.content.halo.run/v1alpha1/posts测试 Python 模块:
# 进入 Python 环境
python
# 导入并测试
>>> from halo_mcp_server.client import HaloClient
>>> import asyncio
>>> client = HaloClient()
>>> asyncio.run(client.authenticate())
>>> print("✓ 认证成功")# 1. 克隆项目
git clone https://github.com/Huangwh826/halo_mcp_server.git
cd halo-mcp-server
# 2. 创建虚拟环境
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 3. 安装开发依赖
pip install -e ".[dev]"
# 4. 安装 pre-commit hooks
pre-commit installhalo-mcp-server/
├── src/halo-mcp-server/ # 源代码
│ ├── __init__.py
│ ├── __main__.py # 入口文件
│ ├── config.py # 配置管理
│ ├── server.py # MCP 服务器
│ ├── exceptions.py # 异常定义
│ ├── client/ # Halo API 客户端
│ │ ├── base.py
│ │ └── halo_client.py
│ ├── tools/ # MCP Tools
│ │ ├── post_tools.py
│ │ ├── category_tools.py
│ │ ├── tag_tools.py
│ │ └── attachment_tools.py
│ ├── prompts/ # MCP Prompts
│ │ └── blog_prompts.py
│ ���── utils/ # 工具函数
│ └── logger.py
├── tests/ # 单元测试
├── examples/ # 使用示例
├── halo_apis_docs/ # API 文档
├── debug_tests/ # 调试脚本
├── pyproject.toml # 项目配置
└── README.md # 本文件
# 格式化代码
black src/ tests/
isort src/ tests/
# 类型检查
mypy src/
# 代码检查
ruff check src/ tests/
# 运行测试
pytest tests/ -v --cov=halo-mcp-server-
添加新 Tool:
# src/halo-mcp-server/tools/custom_tools.py from mcp.types import Tool async def my_custom_tool(client, arguments): """实现你的工具逻辑""" pass MY_TOOLS = [ Tool( name="my_tool", description="工具描述", inputSchema={...} ) ]
-
添加新 Prompt:
# src/halo-mcp-server/prompts/custom_prompts.py from mcp.types import Prompt, PromptArgument CUSTOM_PROMPTS = [ Prompt( name="my_prompt", description="Prompt 描述", arguments=[...] ) ]
-
注册到 Server:
# src/halo-mcp-server/server.py from halo_mcp_server.tools.custom_tools import MY_TOOLS from halo_mcp_server.prompts.custom_prompts import CUSTOM_PROMPTS # 添加到对应列表 all_tools += MY_TOOLS all_prompts += CUSTOM_PROMPTS
欢迎贡献!请查看 DEVELOPMENT.md 了解详细信息。
项目提供了全面的测试套件,覆盖所有 30 个 MCP 工具:
# 进入测试目录
cd tests
# 运行综合测试
python run_comprehensive_test.py✅ 分类管理 (6个工具): create_category, list_categories, get_category, update_category, get_category_posts, delete_category
✅ 标签管理 (7个工具): create_tag, list_tags, get_tag, update_tag, list_console_tags, get_tag_posts, delete_tag
✅ 附件管理 (8个工具): 上传、列表、删除、分组等
✅ 文章管理 (9个工具): 创建、编辑、发布、草稿等
查看 tests/README.md 了解:
- 📝 详细的测试指南
- 🔧 环境配置说明
- 🐛 故障排除方法
- 📊 测试报告生成
📝 文章管理工具(9个)
| 工具名称 | 功能说明 | 调用示例 |
|---|---|---|
list_my_posts |
列出我的文章 | "列出我的所有文章" |
get_post |
获取文章详情 | "显示post-xxx的详情" |
create_post |
创建文章 | "创建一篇文章" |
update_post |
更新文章 | "更新文章标题" |
publish_post |
发布文章 | "发布这篇文章" |
unpublish_post |
取消发布 | "下线这篇文章" |
delete_post |
删除文章 | "删除这篇文章" |
get_post_draft |
获取草稿 | "查看草稿内容" |
update_post_draft |
更新草稿 | "修改草稿" |
🏷️ 分类管理工具(6个)
| 工具名称 | 功能说明 | 调用示例 |
|---|---|---|
list_categories |
列出分类 | "列出所有分类" |
get_category |
获取分类详情 | "查看分类详情" |
create_category |
创建分类 | "创建技术分类" |
update_category |
更新分类 | "修改分类名称" |
delete_category |
删除分类 | "删除这个分类" |
get_category_posts |
获取分类下文章 | "查看分类下的文章" |
🔖 标签管理工具(7个)
| 工具名称 | 功能说明 | 调用示例 |
|---|---|---|
list_tags |
列出标签 | "列出所有标签" |
get_tag |
获取标签详情 | "查看标签详情" |
create_tag |
创建标签 | "创建Python标签" |
update_tag |
更新标签 | "修改标签颜色" |
delete_tag |
删除标签 | "删除这个标签" |
get_tag_posts |
获取标签下文章 | "查看标签下的文章" |
list_console_tags |
控制台标签列表 | "查看控制台标签" |
📎 附件管理工具(8个)
| 工具名称 | 功能说明 | 调用示例 |
|---|---|---|
list_attachments |
列出附件 | "列出所有附件" |
get_attachment |
获取附件详情 | "查看附件详情" |
upload_attachment |
上传文件 | "上传这个文件" |
upload_attachment_from_url |
从URL上传 | "从URL上传图片" |
delete_attachment |
删除附件 | "删除这个附件" |
list_attachment_groups |
列出附件分组 | "列出附件分组" |
create_attachment_group |
创建分组 | "创建图片分组" |
get_attachment_policies |
获取存储策略 | "查看存储策略" |
🤖 AI 写作助手详细说明
| Prompt 名称 | 功能说明 | 触发示例 | 主要参数 |
|---|---|---|---|
halo_blog_writing_assistant |
博客写作助手 | "写一篇Python文章" | topic, audience, type, word_count |
halo_content_optimizer |
内容优化器 | "优化这篇文章" | content, focus, length |
halo_seo_optimizer |
SEO优化器 | "SEO优化" | title, content, keywords |
halo_title_generator |
标题生成器 | "生成5个标题" | content_summary, style, count |
halo_excerpt_generator |
摘要生成器 | "生成摘要" | content, length, style |
halo_tag_suggester |
标签建议器 | "推荐标签" | title, content, existing_tags |
halo_category_suggester |
分类建议器 | "推荐分类" | title, content, existing_categories |
halo_content_translator |
内容翻译器 | "翻译成英文" | content, target_language |
halo_content_proofreader |
内容校对器 | "校对文章" | content, language, focus |
halo_series_planner |
系列规划器 | "规划系列文章" | series_topic, audience, count |
欢迎贡献代码、报告问题或提出建议!
- Fork 项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
感谢所有为项目做出贡献的开发者!
本项目采用 MIT 许可证 - 详见 LICENSE 文件
- Halo - 优秀的开源博客系统
- Model Context Protocol - 强大的 AI 集成协议
- Claude - 智能的 AI 助手
- 所有贡献者和用户
- 项目主页: GitHub
- 问题反馈: Issues
- 文档: Documentation
如果这个项目对你有帮助,欢迎通过以下方式支持:
- ⭐ 给项目点个 Star
- 🐛 提交 Issue 或 PR
- 💬 分享给更多人
- ☕ 赞赏作者
感谢您的支持!
⭐ 如果这个项目对你有帮助,请给它一个 Star!
Can Halo help improve my blog's SEO?
Absolutely. Halo includes an 'SEO Optimizer' AI prompt designed to enhance your content's search engine ranking. It also offers tools for tag suggestions and content optimization to boost visibility.
How does Halo utilize AI for content management and creation?
Halo allows you to manage your blog using natural language commands with AI assistants. It includes 10 professional AI writing prompts for intelligent content creation, optimization, SEO, title generation, and more.
What is Halo MCP Server?
Halo MCP Server integrates the Halo blog system with AI assistants, enabling AI-driven content management and publishing through natural language, streamlining your blogging workflow.
Is Halo compatible with specific AI clients?
Yes, Halo offers seamless integration with Claude Desktop and other Model Context Protocol (MCP)-compatible clients, allowing you to manage your blog directly through natural language conversations.
What kind of blog management tools does Halo offer?
Halo provides over 30 dedicated tools for comprehensive blog management, covering articles, categories, tags, attachments, and more. You can create, edit, publish, delete, and organize all your content efficiently.
List My Posts
列出当前用户的所有文章,支持按发布状态、关键词和分类筛选。推荐用法:浏览或检索我的文章列表;结合 `publish_phase`、`keyword`、`category` 过滤。
Parameters
5pagenumberOptional▼
页码(默认:0)
sizenumberOptional▼
每页数量(默认:20)
keywordstringOptional▼
搜索关键词
categorystringOptional▼
按分类名称筛选(包含子分类)
publish_phasestringOptional▼
按发布状态筛选:DRAFT(草稿)、PENDING_APPROVAL(待审核)、PUBLISHED(已发布)、FAILED(失败)
Get Post
获取指定文章的详细信息,包括内容、元数据和设置。推荐用法:查看某篇文章的完整数据,用于后续更新或发布决策。
Parameters
1namestringRequired▼
文章名称/标识符(必填)
Create Post
创建一篇新的文章,内容推荐使用 HTML 富文本(兼容 ProseMirror + CodeMirror),也支持 Markdown。推荐用法:新建文章;若传 Markdown,设 `content_format=MARKDOWN`,或用 `AUTO` 自动识别。
Parameters
12slugstringOptional▼
URL 别名(不提供则自动生成)
tagsarrayOptional▼
标签内部标识符列表(必须使用标签的 metadata.name 字段,而非 displayName!例如:['tag-LrsQn', 'c33ceabb-d8f1-4711-8991-bb8f5c92ad7c'])。可通过 list_tags 工具获取所有标签的标识符。
coverstringOptional▼
封面图片 URL
titlestringRequired▼
文章标题(必填)
pinnedbooleanOptional▼
是否置顶(默认:false)
contentstringRequired▼
文章内容,推荐使用 HTML 富文本(兼容 ProseMirror + CodeMirror),也支持 Markdown(必填)
excerptstringOptional▼
文章摘要/简介
visiblestringOptional▼
可见性:PUBLIC(公开)或 PRIVATE(私密),默认:PUBLIC
categoriesarrayOptional▼
分类内部标识符列表(必须使用分类的 metadata.name 字段,而非 displayName!例如:['category-yJfRu', 'category-kfyBb'])。可通过 list_categories 工具获取所有分类的标识符。
allow_commentbooleanOptional▼
是否允许评论(默认:true)
content_formatstringOptional▼
内容格式:MARKDOWN、HTML 或 AUTO(默认:HTML)
publish_immediatelybooleanOptional▼
创建后立即发布(默认:false)
Update Post
更新现有文章的标题、内容(推荐 HTML 富文本,兼容 ProseMirror + CodeMirror,也支持 Markdown)、分类、标签或其他设置。推荐用法:局部或整体修改文章;同时可更新分类、标签、封面、摘要等元数据。
Parameters
11namestringRequired▼
文章名称/标识符(必填)
tagsarrayOptional▼
新标签内部标识符列表(必须使用标签的 metadata.name 字段,而非 displayName!例如:['tag-LrsQn', 'c33ceabb-d8f1-4711-8991-bb8f5c92ad7c'])。可通过 list_tags 工具获取所有标签的标识符。
coverstringOptional▼
新封面图片 URL
titlestringOptional▼
新标题
pinnedbooleanOptional▼
是否置顶
contentstringOptional▼
新内容,推荐使用 HTML 富文本(兼容 ProseMirror + CodeMirror),也支持 Markdown
excerptstringOptional▼
新摘要
visiblestringOptional▼
可见性:PUBLIC(公开)或 PRIVATE(私密)
categoriesarrayOptional▼
新分类内部标识符列表(必须使用分类的 metadata.name 字段,而非 displayName!例如:['category-yJfRu', 'category-kfyBb'])。可通过 list_categories 工具获取所有分类的标识符。
allow_commentbooleanOptional▼
是否允许评论
content_formatstringOptional▼
内容格式:MARKDOWN、HTML 或 AUTO(默认:HTML)
Publish Post
发布草稿文章,使其公开可见。推荐用法:将草稿上线;需传文章 `name`。
Parameters
1namestringRequired▼
文章名称/标识符(必填)
Unpublish Post
取消发布文章,将其转换回草稿状态。推荐用法:将已发布文章退回草稿;用于暂时下线。
Parameters
1namestringRequired▼
文章名称/标识符(必填)
Delete Post
删除文章(移至回收站)。推荐用法:回收站删除;谨慎使用,传 `name` 即可。
Parameters
1namestringRequired▼
文章名称/标识符(必填)
Get Post Draft
获取文章的草稿版本及可编辑内容。推荐用法:拉取草稿编辑态;必要时 `patched=true` 查看补丁(修订/差异)信息。
Parameters
2namestringRequired▼
文章名称/标识符(必填)
patchedbooleanOptional▼
是否同时返回补丁(修订/差异)后的内容与原始内容(默认:false)
Update Post Draft
更新文章草稿内容(推荐 HTML 富文本,兼容 ProseMirror + CodeMirror,也支持 Markdown),不会发布。推荐用法:仅更新草稿内容,不影响线上版本;支持 `content_format` 选择或 `AUTO`。
Parameters
3namestringRequired▼
文章名称/标识符(必填)
contentstringRequired▼
草稿内容,推荐使用 HTML 富文本(兼容 ProseMirror + CodeMirror),也支持 Markdown(必填)
content_formatstringOptional▼
内容格式:MARKDOWN、HTML 或 AUTO(默认:HTML)
List Categories
列出所有分类,支持分页和关键词搜索。返回结果中 items 列表的每个分类对象包含:'name' 字段(内部标识符,如 'category-yJfRu')和 'display_name' 字段(显示名称,如 'Linux')。重要:创建或更新文章时必须使用 'name' 字段作为分类标识符,而非 'display_name'。推荐用法:获取分类字典;配合文章创建/更新时选取正确的内部标识符。
Parameters
4pagenumberOptional▼
页码(默认:0)
sizenumberOptional▼
每页数量(默认:50)
sortarrayOptional▼
排序条件,格式: ['property,(asc|desc)']
keywordstringOptional▼
搜索关键词
Get Category
获取指定分类的详细信息。推荐用法:查看某分类详情,用于校验或展示。
Parameters
1namestringRequired▼
分类名称/标识符(必填)
Create Category
创建新的分类。推荐用法:新增分类;可选 `slug`、`cover`、`template`、`priority` 等。
Parameters
9slugstringOptional▼
URL 别名(不提供则自动生成)
coverstringOptional▼
封面图片 URL
childrenarrayOptional▼
子分类名称列表
prioritynumberOptional▼
优先级,数字越大优先级越高(默认:0)
templatestringOptional▼
模板名称
descriptionstringOptional▼
分类描述
display_namestringRequired▼
分类显示名称(必填)
hide_from_listbooleanOptional▼
是否在分类列表中隐藏(默认:false)
prevent_parent_post_cascade_querybooleanOptional▼
是否阻止父级分类的级联查询(默认:false)
Update Category
更新现有分类的信息。推荐用法:修改分类的显示名、描述、封面、排序与子分类列表等。
Parameters
10namestringRequired▼
分类名称/标识符(必填)
slugstringOptional▼
新的 URL 别名
coverstringOptional▼
新的封面图片 URL
childrenarrayOptional▼
新的子分类名称列表
prioritynumberOptional▼
新的优先级
templatestringOptional▼
新的模板名称
descriptionstringOptional▼
新的描述
display_namestringOptional▼
新的显示名称
hide_from_listbooleanOptional▼
是否在分类列表中隐藏
prevent_parent_post_cascade_querybooleanOptional▼
是否阻止父级分类的级联查询
Delete Category
删除分类。推荐用法:删除指定分类;先确认无关键依赖。
Parameters
1namestringRequired▼
分类名称/标识符(必填)
Get Category Posts
获取指定分类下的文章列表。推荐用法:按分类浏览文章;支持分页与排序。
Parameters
4namestringRequired▼
分类名称/标识符(必填)
pagenumberOptional▼
页码(默认:0)
sizenumberOptional▼
每页数量(默认:20)
sortarrayOptional▼
排序条件,格式: ['property,(asc|desc)']
List Tags
列出所有标签,支持分页和关键词搜索。返回结果中 items 列表的每个标签对象包含:`metadata.name` 字段(内部标识符,如 'tag-LrsQn' 或 'c33ceabb-d8f1-4711-8991-bb8f5c92ad7c')和 `spec.displayName` 字段(显示名称,如 'Linux')。重要:创建或更新文章时必须使用 `metadata.name` 字段作为标签标识符,而非 `spec.displayName`。推荐用法:获取标签字典;用于文章的标签选择与校验。
Parameters
4pagenumberOptional▼
页码(默认:0)
sizenumberOptional▼
每页数量(默认:100)
sortarrayOptional▼
排序条件,格式: ['property,(asc|desc)']
keywordstringOptional▼
搜索关键词
Get Tag
获取指定标签的详细信息。推荐用法:查看标签详情,用于展示或管理。
Parameters
1namestringRequired▼
标签名称/标识符(必填)
Create Tag
创建新的标签。推荐用法:新增标签;可选 `slug`、`color`、`cover`。
Parameters
4slugstringOptional▼
URL 别名(不提供则自动生成)
colorstringOptional▼
标签颜色(十六进制颜色代码,如 #FF0000)
coverstringOptional▼
封面图片 URL
display_namestringRequired▼
标签显示名称(必填)
Update Tag
更新现有标签的信息。推荐用法:修改标签显示名、别名、颜色与封面等。
Parameters
5namestringRequired▼
标签名称/标识符(必填)
slugstringOptional▼
新的 URL 别名
colorstringOptional▼
新的标签颜色(十六进制颜色代码)
coverstringOptional▼
新的封面图片 URL
display_namestringOptional▼
新的显示名称
Delete Tag
删除标签。推荐用法:删除指定标签;谨慎确认未被大量使用。
Parameters
1namestringRequired▼
标签名称/标识符(必填)
Get Tag Posts
获取指定标签下的文章列表。推荐用法:按标签浏览文章;支持分页与排序。
Parameters
4namestringRequired▼
标签名称/标识符(必填)
pagenumberOptional▼
页码(默认:0)
sizenumberOptional▼
每页数量(默认:20)
sortarrayOptional▼
排序条件,格式: ['property,(asc|desc)']
List Console Tags
列出控制台标签(用于后台管理),支持分页和关键词搜索。推荐用法:管理后台场景下的标签查询;与公开标签列表区分使用。
Parameters
4pagenumberOptional▼
页码(默认:0)
sizenumberOptional▼
每页数量(默认:100)
sortarrayOptional▼
排序条件,格式: ['property,(asc|desc)']
keywordstringOptional▼
搜索关键词
List Attachments
搜索和列出附件,支持分页、关键词搜索和文件类型过滤。推荐用法:附件库检索;可用 `accepts`(如 `image/*`)与分组过滤。
Parameters
6pagenumberOptional▼
页码(默认:0)
sizenumberOptional▼
每页数量(默认:50)
sortarrayOptional▼
排序条件,格式: ['property,(asc|desc)']
acceptsarrayOptional▼
接受的文件类型,如 ['image/*', 'video/*']
keywordstringOptional▼
搜索关键词
group_namestringOptional▼
附件分组名称
Get Attachment
获取指定附件的详细信息。推荐用法:查看附件元数据与可用链接。
Parameters
1namestringRequired▼
附件名称/标识符(必填)
Upload Attachment
上传本地文件作为附件。推荐用法:通过本地路径上传;若未指定策略,默认 `default-policy`。
Parameters
3file_pathstringRequired▼
本地文件路径(必填)
group_namestringOptional▼
附件分组名称
policy_namestringOptional▼
存储策略名称(默认:default-policy)
Upload Attachment From Url
从 URL 上传附件。推荐用法:直接拉取远端文件到附件库;支持分组与策略选择。
Parameters
3urlstringRequired▼
文件 URL(必填)
group_namestringOptional▼
附件分组名称
policy_namestringOptional▼
存储策略名称(默认:default-policy)
Delete Attachment
删除附件。推荐用法:删除不再需要的附件;注意可能存在引用关系。
Parameters
1namestringRequired▼
附件名称/标识符(必填)
List Attachment Groups
列出附件分组。推荐用法:浏览分组并用于上传或检索时的分组过滤。
Parameters
3pagenumberOptional▼
页码(默认:0)
sizenumberOptional▼
每页数量(默认:100)
sortarrayOptional▼
排序条件,格式: ['property,(asc|desc)']
Create Attachment Group
创建附件分组。推荐用法:新增分组提升管理有序性;仅需显示名称。
Parameters
1display_namestringRequired▼
分组显示名称(必填)
Get Attachment Policies
获取存储策略列表。推荐用法:查看可用存储策略;选择上传时的目标策略。
Get Halo Base Url
获取当前 Halo 站点的基础链接地址(来源:环境变量 HALO_BASE_URL)。推荐用法:获取基准站点 URL,用于拼接外链、生成预览链接或调试环境差异。
Источник: https://mcpmarket.com/server/halo
Комментарии
Комментариев пока нет. Будьте первым.