MCP tools reference

The MCP server has 12 tools. Your AI tool calls them to read and write the pages of one website.

  • One MCP token = one website. No tool takes a website id.
  • Auth: Authorization: Bearer <token>, or the token in the URL path (https://mcp.flocon-ai.com/<token>). Only the mcp token works. A bad token gives 401.
  • Tools see drafts and published pages.
  • Every tool returns JSON as text, except list_docs and read_doc (plain text). Errors come back as a tool error with one plain sentence.

See Connect the MCP server to set it up. See the blocks reference for the blocks field.

Read tools

get_website

Call this first. No inputs.

Returns:

  • name, locales, defaultLocale
  • plan
  • limits: published and maxPages
  • counts: published, drafts, total

list_pages

Lists pages, drafts included. No blocks.

InputTypeRequired
localestringno
statusdraft or publishedno
pathPrefixstring, e.g. /vs/no

Returns { pages }. Each page has path, locale, title, status, updatedAt.

search_pages

Searches the title, SEO description, path and block text. Case-insensitive. Drafts included.

InputTypeRequired
querystring, 1 character or moreyes
localestringno

Returns { pages }, same fields as list_pages.

get_page

InputTypeRequired
localestringyes
pathstringyes

Returns the full page (seo and blocks included), draft or published.

Error: No page at <path> in locale "<locale>".

get_setup

Returns ready-to-paste code for the website.

InputTypeRequired
frameworknextjs (default)no

Returns framework, files (each with path and code), env and notes.

list_docs

Lists the Flocon AI docs: the title, URL and summary of every page. No inputs.

Returns https://flocon-ai.com/llms.txt as plain text. Your AI tool uses it to answer questions about Flocon AI itself (plans, drafts, setup, blocks).

read_doc

Returns one docs page as Markdown.

InputTypeRequired
urla docs URL from list_docsyes

Error: Not a Flocon AI docs URL. Only flocon-ai.com/docs/... URLs work.

Write tools

create_page

Creates a page. It is published if there is room, else saved as a draft. The message says which.

InputTypeRequired
localestringyes
pathstringyes
titlestring, the H1yes
seoobjectyes
blocksarray of blocksyes
publishboolean, default true. false saves a draftno
publishAtISO date-time. Schedules the page. It uses a published slot nowno

seo fields: title, description (required), keywords, author, schemas (optional).

Returns path, locale, status, publishAt, message, warnings.

Errors:

  • Path exists: use update_page.
  • Page limit reached: nothing is saved.
  • Published limit reached: the page is saved as a draft instead (not an error). The message says so.
  • Validation failed: Not saved. Fix this and try again: plus a list.

update_page

Changes a page. The status does not change.

InputTypeRequired
localestringyes
pathstringyes
titlestringno
seopartial object, merged with the current seono
blocksarray of blocks, replaced wholeno
publishAtISO date-time. Only applies to a published pageno

Returns path, locale, status, publishAt, message, warnings. On a draft, publishAt is ignored and the message says so.

Errors: page not found, validation failed.

publish_page

Publishes a draft.

InputTypeRequired
localestringyes
pathstringyes

Returns path, locale, status, message.

Errors: page not found, published limit reached.

unpublish_page

Turns a published page back into a draft. It frees a published slot.

InputTypeRequired
localestringyes
pathstringyes

Returns path, locale, status (draft), message.

Error: page not found.

delete_page

Deletes a page for good. This cannot be undone.

InputTypeRequired
localestringyes
pathstringyes

Returns path, locale, message.

Error: page not found.

Validation rules

A write is refused if:

  • the locale is not enabled on the website
  • the path:
    • does not start with /
    • ends with /
    • contains //
    • uses anything but lowercase a-z, 0-9, - and /
    • starts with a locale
    • is longer than 200 characters
  • there are more than 100 blocks
  • the blocks are bigger than 50 KB
  • title is empty

These give warnings, not errors (the page is still saved):

  • seo.title is longer than 60 characters
  • seo.description is not between 140 and 160 characters

Limits

PlanPublished pagesTotal pages (published + drafts)
Free1020
Pro50100
Business5001000
  • Published limit: blocks publish_page and a published create_page.
  • Page limit: blocks any create_page, draft or not.
  • Errors show the counts, for example Published limit reached (10/10 on free).

Updated