Halo

通过 MCP 将 Halo 博客系统与 AI 助手(如 Claude、Cursor、Qoder、Trae等)无缝集成,让AI成为你的博客管理助手
  • python

10

GitHub Stars

python

Language

6 months ago

First Indexed

2 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "huangwh826-halo-mcp-server": {
      "command": "python",
      "args": [
        "-m",
        "halo_mcp_server"
      ],
      "env": {
        "HALO_TOKEN": "your_halo_token_here",
        "HALO_BASE_URL": "your_halo_base_url_here"
      }
    }
  }
}

Halo MCP Server is a Python-based bridge that lets you manage your Halo blog with natural language through MCP clients. It enables AI assistants to create, edit, publish, and organize posts and related content, turning blog management into a conversational workflow.

How to use

You connect an MCP client (like Claude Desktop) to Halo MCP Server to manage your Halo blog using everyday language. Start by configuring the MCP client with your Halo server URL and API token, then ask questions or give commands such as creating a post, updating a draft, or listing categories. The system automatically routes your intent to the right tools and prompts, so you don’t need to memorize specific commands.

How to install

Prerequisites you need before installing are Python 3.10 or newer and a Halo blog system version 2.21 or newer. You also need MCP-compatible clients like Claude Desktop.

# 1) Ensure Python is available
python --version  # should be 3.10+

# 2) Install Halo MCP Server from source or via package manager
# From source (development):
# 1. Clone the repository
# git clone https://github.com/Huangwh826/halo_mcp_server.git
# 2. Create and activate a virtual environment
python -m venv venv
# Windows:
venv\Scripts\activate
# macOS/Linux:
source venv/bin/activate
# 3. Install in editable mode
pip install -e .

# Or install from PyPI (recommended for stable use)
pip install halo-mcp-server

# 4. Run the server (if running locally and not managed by a process manager)
python -m halo_mcp_server

If you installed via source, you can run the server with Python directly. If you installed from PyPI, use the same runtime entry point depending on how your environment handles Python packages.

Configuration and initial setup

You configure the client with the Halo base URL and an access token you obtain from Halo. Create a token with full management rights from Halo’s user center, then place the values into your MCP client configuration.

{
  "mcpServers": {
    "halo_mcp": {
      "command": "python",
      "args": [
        "-m",
        "halo_mcp_server"
      ],
      "env": {
        "HALO_BASE_URL": "your_halo_base_url_here",
        "HALO_TOKEN": "your_halo_token_here"
      }
    }
  }
}

Security and tokens

Treat your Halo API token like a password. Do not expose it in public scripts or logs. When configuring the MCP client, store tokens securely and restrict token permissions to the minimum necessary for blog management.

Troubleshooting

If the client cannot recognize Halo MCP tools, verify that the HALO_BASE_URL is reachable and that HALO_TOKEN is valid. Check client configuration paths, restart the MCP client after changes, and review logs for authentication or network errors.

Examples and workflow notes

A typical flow starts with drafting content using the AI prompts, then using MCP tools to publish or organize posts. You can chain actions like create_post, update_post, publish_post, and list_categories to complete a full publishing pipeline through natural language.

Additional notes

Halo MCP Server supports a broad set of content-management capabilities, including posts, categories, tags, and attachments, all operable via natural language through MCP clients. You work with the server by providing intents and letting the system handle the exact tool calls and prompts behind the scenes.

Available tools

list_my_posts

List all your articles with pagination and filters.

get_post

Retrieve full details for a single post.

create_post

Create a new article with title, content, and metadata.

update_post

Update an existing article's title, content, or settings.

publish_post

Publish an article to make it visible on the site.

unpublish_post

Hide an article from public view without deleting it.

delete_post

Move an article to the recycle bin or permanently delete it.

get_post_draft

Fetch the content of a draft post.

update_post_draft

Modify the content of a draft post.

list_categories

List all categories with details.

get_category

Get details for a specific category.

create_category

Create a new category with optional parent, description, and cover.

update_category

Update a category's name, description, or cover.

delete_category

Remove a category.

get_category_posts

List posts under a specific category.

list_tags

List all tags with details.

get_tag

Get details for a specific tag.

create_tag

Create a new tag with optional color.

update_tag

Update a tag's name or color.

delete_tag

Delete a tag.

get_tag_posts

List posts associated with a tag.

list_console_tags

Show tags as shown in the console UI.

list_attachments

List uploaded attachments with filters.

get_attachment

Get details for a specific attachment.

upload_attachment

Upload a local file as an attachment.

upload_attachment_from_url

Upload an attachment directly from a URL.

delete_attachment

Delete an attachment.

list_attachment_groups

List attachment groups.

create_attachment_group

Create a new attachment group.

get_attachment_policies

View storage and retention policies for attachments.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational