AI agents and MCP

The HelpCenter.io MCP server

The HelpCenter.io MCP server lets an AI agent work in your help center: search and read articles, write and publish them, upload images, release several changes together, organize categories, answer reader comments, work through your team's notes, read your statistics, change the design, and set up the widget and FAQ sections. It speaks the Model Context Protocol (MCP) at https://mcp.helpcenter.io, so Claude, ChatGPT and agents you build see your help center as a set of tools.

The server is a thin layer over the HelpCenter.io REST API. Each tool call becomes a request to https://api.helpcenter.io/v1, made with the agent's own credential, so the API's permissions, validation and rate limits apply to the agent as they apply to your code. The server keeps no copy of your content and no credential between requests.

Connecting takes a minute: see Connect an AI assistant to your help center. Every tool, with its arguments and results, is in the MCP tool reference.

An agent acting for someone who has no HelpCenter.io account uses the server's second endpoint, https://mcp.helpcenter.io/agent: it creates a help center with no sign-in, fills it, and gives its user a link to claim it. See "The agent endpoint" below.

At a glance

Item

Details

Server URL

https://mcp.helpcenter.io. Add ?site=<id> to pin a connection to one help center.

Agent endpoint

https://mcp.helpcenter.io/agent, with no sign-in, for an agent building a help center for someone who has no account

Transport

Streamable HTTP, stateless. Every POST gets one JSON response. There is no session (Mcp-Session-Id) and no event stream.

Protocol versions

2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05, 2024-10-07

What it offers

Tools only. No prompts and no resources.

Sign-in

OAuth 2.1 (your MCP client signs you in), or an API key sent as Authorization: Bearer <key>

Plans

Growth and Catalyst, including their free trials

Limits

The API's per-credential rate limits: 300 requests a minute, of which at most 120 writes, and 6 a minute for the analytics tools. A tool call that waits more than 25 seconds for the API times out.

Your readers get a different server: every public help center also has a read-only, anonymous MCP server at its own address. See The public MCP server of a help center.

What agents can do

Area

The tools let an agent

Permission

Articles

Search published articles, list and read every article (drafts included), create and update articles in HTML or Markdown, import up to 50 in one call, and move an article to the Trash.

content.read, content.write

Images

Upload a screenshot, a diagram or an animated GIF (up to 4 MiB on the hosted server) and get a URL to place in an article, list and read the images uploaded this way, and delete one.

content.read, content.write

Staged changes and versions

Save an edit to a published article without readers seeing it, publish or discard it, and list or restore earlier versions.

content.read, content.write

Change sets

Group staged edits, drafts and category visibility changes into a named release, check that it is ready, publish it now or at a scheduled time, follow it until it is done, and cancel its schedule. Part of the Catalyst plan, in early preview.

content.read, content.write

Categories

List, create, update and reorder categories, set the article order inside one, and delete one after saying where its contents go.

content.read, content.write

Comments

Read reader comments and the moderation queue, approve or unpublish a comment, and reply.

content.read, content.write

Widget and FAQ sections

Read the snippet that puts the widget on your website and the websites allowed to embed it, add or remove those websites, and create, change, fill, order and delete embeddable FAQ sections.

content.read, content.write, and embed.manage for the websites

Analytics

Read traffic and ratings, per-article performance, and what readers searched for and did not find.

analytics.read

Team notes

Read the private notes your team leaves on articles, leave notes on passages, reply to them and resolve them.

notes.read, notes.write

Design

Read the design and the guide to what can be changed, start from a theme, edit the draft that the template editor opens (theme, pages and components, navigation, custom CSS and scripts), publish it, discard it, and load an earlier version into it.

design.read, design.write

Help centers

List the help centers the connection can reach, with their ids.

content.read

Articles an agent creates stay drafts unless it publishes them. Changes to a published article go live at once, unless the agent stages them first. Changes to the design go to a draft that you review in the template editor, and visitors see them only when that draft is published (see Design API).

What agents cannot do

  • Restore an article from the Trash, or delete a comment. They can unpublish an article or a comment, which you can reverse, and move an article to the Trash, which only a person can undo.

  • Manage webhooks, edit interface translations, export a help center, send article feedback or set an article's SEO title and description. Your own code can do all of these with the REST API.

  • Change settings other than the websites allowed to embed your help center, your team or billing.

  • Publish the help center itself. Articles an agent publishes reach readers once you publish the help center, in Settings.

  • Create a help center, import a knowledge base from another platform, or manage redirects and the custom domain. For someone who has no HelpCenter.io account, an agent does all of these through the agent endpoint (below) or the REST API: see Migrate a knowledge base as an AI agent. On a help center you already have, your own code imports, redirects and sets the custom domain with the REST API: see Imports, Redirects and Custom domain.

  • Translate the texts in your design, or switch a help center to the template editor. The design tools set texts in the help center's default language, and both of these are done in the dashboard.

  • Read reader email addresses or IP addresses. Comment tools leave out email addresses, and no tool returns an IP address.

  • See team notes through the comment tools. Team notes are only reachable through the team notes tools, with their own permission.

Tools that can change or remove something that already exists, or change what readers see, are marked as destructive in their MCP annotations (destructiveHint: true), which MCP clients can use to ask you before running them. The MCP tool reference shows the kind of every tool. These need the most care: discarding staged changes or the design draft, which can't be recovered; deleting a category, an image or a change set; moving an article to the Trash, which only a person can undo; and restoring an earlier version of an article, publishing a change set or publishing the design, which readers see at once.

How agents sign in

The same URL takes two kinds of credential, both in the Authorization: Bearer header.

OAuth sign-in

API key

Use it for

Claude, ChatGPT and other MCP clients that sign you in

Agents and scripts you run yourself

How it works

The client sends you to HelpCenter.io to sign in. You approve the permissions it asks for and choose the help centers it may reach.

Create a key in Settings → API keys and send it as Authorization: Bearer <key>. The X-HelpCenter-Api-Key and apikey headers also work.

Acts as

You, on the help centers you chose

The person who created the key, on the key's help center

Can do

What the permissions you approved allow

What the key's scope allows (Read only or Read & write), plus team notes and the design if the key was created with that access

Stop it

Disconnect the app in Account → Connected Apps

Delete the key in Settings → API keys

A client that connects without a credential gets 401 Unauthorized with a WWW-Authenticate header that points to the server's OAuth metadata, https://mcp.helpcenter.io/.well-known/oauth-protected-resource. MCP clients follow it to the HelpCenter.io authorization server and start the sign-in. OAuth 2.1 for apps and AI clients covers the flow in depth.

OAuth reaches only help centers that belong to the HelpCenter.io account you sign in with. To connect an agent to a help center another account owns, use an API key created in that help center.

Plans

The MCP server is part of the Growth and Catalyst plans, including their free trials. HelpCenter.io checks the plan on every request, for the help center the request acts on, so a plan change applies to the very next tool call.

The check covers API keys too. The REST API itself works on every plan, but the MCP server marks its own requests to the API with the header X-HCio-Client: mcp, and requests carrying it are checked. So a key that works against https://api.helpcenter.io/v1 on any plan is refused through the MCP server on a plan that does not include it.

On other plans:

  • The OAuth consent screen shows those help centers locked, with an Upgrade link. When none of your help centers qualifies, it says Your plan doesn't include the MCP server and shares nothing.

  • A tool call is refused by the API with 402 Payment Required:

{
  "status": "error",
  "code": "plan_upgrade_required",
  "feature": "mcp",
  "message": "The HelpCenter.io MCP server is available on the Growth and Catalyst plans. Acme does not have an active plan.",
  "upgrade_url": "https://helpcenter.io/app/account/billing",
  "plans": ["growth", "catalyst"]
}

When the help center has a plan, the second sentence names it, for example Acme is on the Bootstrap plan. The agent receives the refusal as a tool error it is asked to pass on, not to act on:

The HelpCenter.io MCP server is available on the Growth and Catalyst plans. Acme does not have an active plan.

Upgrade the plan: https://helpcenter.io/app/account/billing

This is the help center's subscription plan, not an authentication problem. Do not retry, and do not reconnect or re-authorize the HelpCenter.io connector — neither changes the plan, so both end in this same answer. Tell the user, so that someone who manages the HelpCenter.io account can change the plan.

Staging an edit also needs staged changes on the help center, part of the Catalyst plan (see Staged changes and versions). Listing and restoring versions has no extra plan requirement, but versions are only recorded when staged changes are published or a version is restored, so a help center without staged changes usually has none. The change set tools need change sets on the help center, part of the Catalyst plan in early preview (see Change sets); without them they are refused with 402 Payment Required.

Which help center the agent works on

Every tool except helpcenter_list_sites takes an optional site_id argument: the id of the help center that call acts on. What a connection needs depends on how it signed in:

  • API key: always the help center the key was created in. A ?site= on the URL is ignored, and a site_id that names another help center is refused before any request is made.

  • OAuth, one help center approved: that one, with nothing to configure.

  • OAuth, several approved: the agent names one on each call, with site_id. The helpcenter_list_sites tool lists the ids. A call that names none is refused with site_required, and the refusal lists the ids, so nothing is written to a help center the agent did not name.

  • OAuth, pinned: add ?site=<id> to the server URL, for example https://mcp.helpcenter.io/?site=1234, and every call acts on that help center. A pinned connection refuses a site_id that names a different one.

site_id applies to one call. The server keeps nothing between requests, so an agent passes it on every call of a task, and one conversation can work in several help centers. The server's initialize response carries instructions that tell the agent to list the help centers, to pass site_id, and to ask you when your request does not say which help center you mean. Pin the connection when an agent should stay in one help center. See Choose which help center a request acts on.

Security model

  • It acts as a person. Every request carries the credential of the person who connected the agent (or who created the key). Replies to comments are posted in their name.

  • It is limited twice. A connection reaches only the help centers you approved and only what its permissions allow. The API enforces both on every request, including which help center an id belongs to: an id from another help center answers as not found.

  • Tokens are bound to this server. The server accepts only OAuth access tokens that HelpCenter.io signed for https://mcp.helpcenter.io. A token issued for anything else is refused with 401, however valid it is elsewhere.

  • Revoking works on the next request. Unticking a help center in Connected Apps applies to the agent's next call, and Disconnect revokes its tokens at once. Deleting an API key stops it immediately.

  • Team notes need two things. The notes.read or notes.write permission (or a key created with team notes access), and the person behind the credential must still have access to team notes in the dashboard. HelpCenter.io checks the second on every request.

  • The design needs two things too. The design.read or design.write permission (or a key created with design access), and the person behind the credential must be able to edit the design in the dashboard: an Owner, Admin or Editor. HelpCenter.io checks the second on every request. design.write reaches custom CSS and scripts, which run in every visitor's browser once the design is published, so approve it only for agents you trust.

  • Nothing is kept. The server stores no content. It logs one line per request (method, status, tool name, timing), never the arguments, the results or the credential.

The agent endpoint

https://mcp.helpcenter.io/agent is for an AI agent acting for someone who has no HelpCenter.io account yet. The agent creates an unpublished help center, fills it by hand or with an import, checks it with a preview link, and gives its user a link to claim it. Migrate a knowledge base as an AI agent is the whole flow, and the MCP tool reference lists the endpoint's tools.

  • No sign-in. The endpoint never asks for a credential and ignores any it is sent. helpcenter_create_help_center creates the help center and returns its key, once. Every tool that acts on the help center takes that key as a required agent_key argument, and sends it to the API as that call's credential. The server keeps nothing between calls, and the key is never logged and never returned by any other tool.

  • Its tools. Creating, reading and deleting the help center, migration requests, imports, redirects and the custom domain, plus this server's article, staged changes, category and design tools. It has none for images, change sets, deleting an article, comments, analytics or team notes, and no helpcenter_list_sites: a key belongs to one help center, so its content and design tools take no site_id.

  • The key's limits apply. Until the user claims the help center, the key reaches only its content and design. The redirect and custom domain tools work once the user has claimed it, verified their email address and activated a plan. Only the user can make the help center public.

  • Creating counts in a shared pool. In ChatGPT, creating counts in a pool shared by every ChatGPT agent. From any other client it counts in the endpoint's own: 60 help centers an hour and 300 open at once, across every agent that uses it. Migration requests are limited to 30 a day across every agent that uses the endpoint.

The main endpoint leaves this flow out on purpose. There, a request without a credential is answered with the sign-in challenge that starts OAuth in Claude and ChatGPT, so it can't also serve an agent that has no account to sign in with.

Was this article helpful?