foliade

MCP · 1.2.0

Foliade MCP server documentation

The same hosted server connects Codex and Claude Code to your account. Both plugins provide instructions for transferring a local PDF securely.

Install in Codex · Install in Claude Code

Connect your account in Codex

Installing the plugin does not connect your account yet. After installation, run this command in your computer's terminal, outside the Codex conversation:

codex mcp login foliade

On the Foliade page that opens, sign in, check the account email and authorize the connection. Then return to your assistant.

If the browser does not open, open the link shown in the terminal. Do not share this sign-in link.

Wait for the terminal to confirm that login succeeded before continuing. There is no API key to copy.

Check the connection and send your first PDF · Install in Claude Code

Transport and authentication

MCP is included for free, with or without an account. Codex and Claude Code follow your plan permissions; their own access terms remain separate.

Free account: 5 published catalogues, 50 MB and 100 pages per PDF. The website and MCP share 10 upload attempts per 24 hours, including replacements and failures, with only one upload in progress. Views remain unlimited.

Without an account, on the website or through MCP: 3 PDFs per IP per 24 hours, 50 MB and 100 pages per PDF, one upload in progress. Publication lasts 30 days; private management lasts 30 minutes. Keep the private link to attach the catalogue to an account before it expires.

Free tier protection: processing is limited to 120 seconds, 512 MB per result and 2 GB of storage per account. Overall capacity is limited; paid plans have priority. If a request is refused, wait for the stated delay without automatic retries.

Before each transfer, the assistant checks the account or guest mode and explains the limits returned by Foliade. The draft remains private until you request publication.

https://foliade.gekkode.com/mcp

OAuth sign-in is optional for a guest upload and required to access your account, including a free account. The server checks permissions for every action; an expired connection never becomes guest access.

Access tokens last one hour. Refresh tokens rotate on each use without extending the connection beyond 30 days. Reusing a refresh token revokes the entire connection.

Customers can use dynamic registration or customer identity documents OpenAI and Anthropic. Metadata is public:

/.well-known/oauth-authorization-server
/.well-known/oauth-protected-resource/mcp

The permissions are separated:

  • foliade:read — lire le compte, les rĂ©glages, les links de suivi et les statistiques ;
  • foliade:write — transfĂ©rer un PDF et configurer les catalogues, thèmes, enrichissements et Ă©tagères ;
  • foliade:publish — gĂ©rer les publications, les protections et les adresses publiques.

Upload and publication tools

ToolSettingsResult
foliade_account—Account email, plan and maximum PDF size.
foliade_list_catalogueslimit=25 (1–100), offset=0Account catalogues and pagination cursor.
foliade_prepare_uploadfilename, size_bytes, sha256, notice_version, guest_mode=false, title="", language="fr"Upload ID, HTTPS URL and temporary header for transferring the PDF.
foliade_import_urlurl, notice_version, guest_mode=false, title="", language="fr"The server downloads a PDF that is already online, with no transfer from your machine.
foliade_finalize_uploadupload_id, guest_token=""Private draft and conversion status. Retrying returns the same catalogue.
foliade_catalogue_statuscatalogue_id, guest_token=""Catalog status, pages and conversion progress.
foliade_publish_cataloguecatalogue_id, guest_token=""Publication of the existing catalog, without reconversion.
foliade_catalogue_statscatalogue_id, days=30 (1–3650)Aggregated statistics, without contact details.
foliade_unpublish_cataloguecatalogue_id, guest_token=""Closing the public link, without deleting the data.

Customize Foliade from an assistant

The server provides 35 tools. The 26 configuration tools require a connected account and respect your plan permissions.

Commencez par découvrir les capacités, puis lisez les réglages de la cible. Envoyez seulement les champs à modifier avec la révision reçue. Un conflit impose une nouvelle lecture ; les champs inconnus, valeurs nulles et valeurs invalides sont refusés.

Un aperçu avec dry_run ne sauvegarde rien. Pour enregistrer, utilisez la révision initiale, pas celle de l’aperçu. Les réglages d’un catalogue publié sont visibles immédiatement ; les enrichissements disposent d’un brouillon et d’une publication distincte.

FeatureOutils MCP
Capacités et schémasfoliade_capabilities
Lecteur et métadonnéesfoliade_get_catalogue_settings
foliade_update_catalogue
Protection et adressesfoliade_set_catalogue_access
Capture de contactsfoliade_set_lead_capture
Sommaire et signets PDFfoliade_set_chapters
foliade_import_chapters
Marque du comptefoliade_get_brand
foliade_update_brand
Thèmes réutilisablesfoliade_list_themes
foliade_create_theme
foliade_update_theme
foliade_apply_theme
Enrichissements et historiquefoliade_get_enrichments
foliade_update_enrichments
foliade_publish_enrichments
foliade_restore_enrichments
Étagères et collectionsfoliade_list_shelves
foliade_get_shelf
foliade_create_shelf
foliade_update_shelf
foliade_set_shelf_catalogues
foliade_set_shelf_access
Tracking linksfoliade_list_tracking_links
foliade_create_tracking_link
foliade_update_tracking_link

Le lecteur expose ses couleurs, fonds, barre, contrôles, effets, sens de lecture, son, page de départ, disposition, link et position du logo, langue et téléchargement PDF. Les éléments interactifs utilisent les 13 types de l’éditeur, avec coordonnées en pourcentage de page.

Les listes sont paginées. Les links de suivi ne déclenchent aucun envoi de message. Modifier la marque du compte peut affecter plusieurs catalogues ; pour un seul PDF, préférez ses réglages propres.

Exemple : harmoniser les couleurs du lecteur

foliade_get_catalogue_settings({"catalogue_id": "IDENTIFIANT"})
foliade_update_catalogue({
  "catalogue_id": "IDENTIFIANT",
  "expected_revision": "REVISION_RENVOYEE_PAR_LA_LECTURE",
  "patch": {
    "fond": "#f7f5f0",
    "barre_fond": "#111111",
    "barre_icones": "#f7f5f0",
    "progression": "#ad935a"
  },
  "dry_run": true
})

Les imports de médias binaires, le remplacement du PDF, la synchronisation des produits, la gestion des clés API, des webhooks, de l’équipe et de la facturation restent accessibles par l’espace web ou l’API REST selon la fonction. Le MCP ne configure pas le DNS ou les certificats TLS.

Si votre assistant ne voit encore que neuf outils, actualisez la liste des outils dans son interface MCP ou relancez la session. Une réinstallation ne doit pas être la première réponse à un cache ancien. Vérifiez ensuite la présence de foliade_capabilities.

Transferring a local PDF

The remote server cannot read files from a path on your computer. The plugin computes the selected file's size and SHA-256 digest, prepares an upload, transfers its bytes over HTTPS, then finalizes the draft.

The ticket expires after 10 minutes and only allows transfer of the declared PDF, within 120 seconds. The free tier allows one upload in progress; paid accounts can open five transfers.

The conversion is asynchronous. The assistant checks its result before announcing success. Public publication requires a separate action; the draft remains private by default.

The PDF must be readable, password-free, and within the limit displayed by the account verification tool.

Errors and revocation

  • 401: connection missing, expired or revoked. Reconnect the account.
  • 403 returned by Foliade: insufficient permission. Check the granted permissions. For a Cloudflare 403/1010 rejection, see the troubleshooting section below.
  • 413: file too large. Reduce the PDF.
  • 422: the received file differs from the declared file. Start a new upload.
  • 429: too many requests. Respect the retry timeout.

Tool errors are reported in their MCP result. A catalog from another account remains inaccessible. A corrupted PDF or failed conversion should never be presented as successful.

In Foliade → API → Connected assistants, you can revoke each connection. Access ends immediately without deleting your catalogues.

Plugin enabled, but MCP tools unavailable

An enabled plugin may still fail to connect to the server. Check the MCP status and error message before reinstalling the plugin or reconnecting your account.

  1. If the server cannot be found, check that the plugin is installed and enabled.
  2. If the connection exceeds the startup timeout, check the MCP logs. A timeout after 30 seconds does not prove that your OAuth connection has expired.
  3. If a Cloudflare 403 response reports error 1010 or browser_signature_banned, Browser Integrity Check is blocking the HTTP client before it reaches Foliade. Increasing the startup timeout does not fix this rejection.
  4. If Foliade returns 401 or invalid_token, reconnect your account through OAuth. Do not replace this connection with guest access.

What should I do if Cloudflare blocks the connection?

For the hosted Foliade service, contact our support team with the time and time zone, affected URL, error code and Cloudflare Ray ID if shown. Do not send tokens, cookies, login links or private documents. There are no Cloudflare settings to change on your computer.

Service Status · Contact Foliade support

After the server has been fixed, restart your assistant to reload the MCP tools, then ask it to check the connected Foliade account. Send the PDF only once the tools are available and the account email has been confirmed.

For server operators: fix Browser Integrity Check

This procedure is for the server’s Cloudflare administrator. First check that Browser Integrity Check caused the rejection; a timeout alone may have another cause.

  1. In Cloudflare, open the server’s zone, then Rules → Configuration Rules. Create a rule with a custom expression limited to the hostname and MCP and OAuth routes.
  2. Add only the Browser Integrity Check setting and turn it off in this rule. Keep the other protections, authentication and rate limits in place.

Expression used for the Foliade server. For another server, adapt the hostname and routes to its implementation:

(http.host eq "foliade.gekkode.com" and (
  http.request.uri.path in {
    "/mcp" "/authorize" "/token" "/register" "/revoke"
    "/.well-known/oauth-authorization-server"
    "/.well-known/oauth-protected-resource"
    "/.well-known/oauth-protected-resource/mcp"
  }
  or starts_with(http.request.uri.path, "/mcp/uploads/")
))

After deployment, test with the same HTTP client: initialize, tools/list and OAuth metadata discovery must succeed. Foliade advertises 35 tools; access to catalogues without authentication must still return 401.

To roll back, disable only this rule. Avoid disabling Cloudflare protections globally or changing the user agent to conceal the problem.

Cloudflare: error 1010 · Cloudflare: disable this check for specific routes

Sources and distribution

Public connector repository · README · Skill Foliade

Plugin ZIP · Skill ZIP · SHA-256

This public marketplace is maintained by Foliade. It is not a listing in the official OpenAI or Anthropic directories, which require a separate review.

Compatibility with the old installation

The local Python script remains available as an advanced solution with an API key and its five historical tools. It is no longer launched by plugins 1.1.0. Its keys and settings are independent of the OAuth connection.

Historical STDIO script · API documentation REST