_ registry / mcp streamable-http · checked 2h ago

Foliade

https://foliade.gekkode.com

Registry code: c0f95bbc521425c4

api record

Foliade manages PDF catalogues. Call foliade_account BEFORE every upload and explain its notice to the user in their language. Pass notice_version to prepare_upload. Never switch to guest after an authentication error. Never loop, split documents, rotate accounts or retry uploads to evade quotas. Guest mode requires explicit user intent to use Foliade without an account. To upload a local PDF, prepare an upload, transfer its exact bytes directly to the returned Foliade HTTPS endpoint using the temporary header, then finalize the upload. Never send a local path to this remote server. Never…

endpoint
https://foliade.gekkode.com/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is Foliade live?
Yes — it answered the hub's last check (checked 2h ago). It answered 99% of checks over the last 30 days.
Is Foliade free to use?
Partly — some of its tools are open, others need a key or payment.
What tools does Foliade have?
35 tools: foliade_get_catalogue_settings, foliade_create_theme, foliade_publish_catalogue, foliade_unpublish_catalogue, foliade_import_chapters, foliade_catalogue_status, foliade_prepare_upload, foliade_import_url, ….
Is Foliade safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
98.8%

90 days 98%· all time 98%

latency
184ms

last good check

priced tools
0

of 35 tools

_ answered our checks, 90 days 391 checks · signed record
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
  • live → degraded· timeout after 20000ms
  • down → live
_ what it is for
used for
  • upload a pdf as an interactive catalogue
  • publish or unpublish a catalogue
  • set catalogue access and lead capture
  • create tracking links
  • organize catalogues on shelves
takes → gives
documents, text → data, web pages
tools
9 reads16 changes data
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 35 tools
1 open9 auth-required 25 never probed 10 of 35 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • foliade_account reads open 12h ago

    Confirms the address and the plan of the destination account, without secrets or payment data.

    mcp-tool

    {
      "type": "object",
      "title": "accountArguments",
      "properties": {}
    }
    arguments 5 lines
  • foliade_get_enrichments reads auth-required 32h ago

    Elements, published version, differences and revision. The files remain those of the catalogue.

    mcp-tool

    {
      "type": "object",
      "title": "get_enrichmentsArguments",
      "required": [
        "catalogue_id"
      ],
      "properties": {
        "catalogue_id": {
          "type": "string",
          "title": "Catalogue Id",
          "pattern": "^[A-Za-z0-9_-]{1,64}$"
        }
      }
    }
    arguments 14 lines
  • foliade_get_brand reads auth-required 6h ago

    Brand name, colour and default PDF download; without any billing information.

    mcp-tool

    {
      "type": "object",
      "title": "get_brandArguments",
      "properties": {}
    }
    arguments 5 lines
  • foliade_get_shelf reads auth-required 28h ago

    Settings, catalogues in order, and revision of the shelf.

    mcp-tool

    {
      "type": "object",
      "title": "get_shelfArguments",
      "required": [
        "shelf_id"
      ],
      "properties": {
        "shelf_id": {
          "type": "string",
          "title": "Shelf Id",
          "pattern": "^[A-Za-z0-9_-]{1,64}$"
        }
      }
    }
    arguments 14 lines
  • foliade_list_tracking_links reads auth-required 16h ago

    Named links of the catalogue owned by the account. Contains the recipients; do not disclose them publicly.

    mcp-tool

    {
      "type": "object",
      "title": "list_tracking_linksArguments",
      "required": [
        "catalogue_id"
      ],
      "properties": {
        "limit": {
          "type": "integer",
          "title": "Limit",
          "default": 25,
          "maximum": 100,
          "minimum": 1
        },
        "offset": {
          "type": "integer",
          "title": "Offset",
          "default": 0,
          "minimum": 0
        },
        "catalogue_id": {
          "type": "string",
          "title": "Catalogue Id",
          "pattern": "^[A-Za-z0-9_-]{1,64}$"
        }
      }
    }
    arguments 27 lines
  • foliade_list_shelves reads auth-required 42h ago

    Paginated list of the shelves and their settings, without passwords.

    mcp-tool

    {
      "type": "object",
      "title": "list_shelvesArguments",
      "properties": {
        "limit": {
          "type": "integer",
          "title": "Limit",
          "default": 25,
          "maximum": 100,
          "minimum": 1
        },
        "offset": {
          "type": "integer",
          "title": "Offset",
          "default": 0,
          "minimum": 0
        }
      }
    }
    arguments 19 lines
  • foliade_list_themes auth-required 39h ago

    Account themes, their settings and revisions; a theme is a copy, not a live link.

    mcp-tool

    {
      "type": "object",
      "title": "list_themesArguments",
      "properties": {
        "limit": {
          "type": "integer",
          "title": "Limit",
          "default": 25,
          "maximum": 100,
          "minimum": 1
        },
        "offset": {
          "type": "integer",
          "title": "Offset",
          "default": 0,
          "minimum": 0
        }
      }
    }
    arguments 19 lines
  • foliade_catalogue_stats auth-required 37h ago

    Aggregated statistics: reads and contacts, without disclosing the contact details.

    mcp-tool

    {
      "type": "object",
      "title": "catalogue_statsArguments",
      "required": [
        "catalogue_id"
      ],
      "properties": {
        "days": {
          "type": "integer",
          "title": "Days",
          "default": 30,
          "maximum": 3650,
          "minimum": 1
        },
        "catalogue_id": {
          "type": "string",
          "title": "Catalogue Id"
        }
      }
    }
    arguments 20 lines
  • foliade_capabilities reads auth-required 9h ago

    Effective entitlements, JSON schemas and examples. Read before configuring; omitted fields are kept, null is refused. Setting changes are visible immediately on a published catalogue. Binary media, PDF replacements, API keys, REST webhooks, team and billing stay in the workspace/API.

    mcp-tool

    {
      "type": "object",
      "title": "capabilitiesArguments",
      "properties": {}
    }
    arguments 5 lines
  • foliade_list_catalogues reads auth-required 2h ago

    Lists the private and public catalogues of the connected account, with pagination.

    mcp-tool

    {
      "type": "object",
      "title": "list_cataloguesArguments",
      "properties": {
        "limit": {
          "type": "integer",
          "title": "Limit",
          "default": 25,
          "maximum": 100,
          "minimum": 1
        },
        "offset": {
          "type": "integer",
          "title": "Offset",
          "default": 0,
          "minimum": 0
        }
      }
    }
    arguments 19 lines
  • foliade_get_catalogue_settings unknown never probed

    Settings, table of contents, lead capture, protection without secrets, and the revision needed for changes.

    mcp-tool

    {
      "type": "object",
      "title": "get_catalogue_settingsArguments",
      "required": [
        "catalogue_id"
      ],
      "properties": {
        "catalogue_id": {
          "type": "string",
          "title": "Catalogue Id",
          "pattern": "^[A-Za-z0-9_-]{1,64}$"
        }
      }
    }
    arguments 14 lines
  • foliade_create_theme unknown never probed

    Saves the existing styling and media of the catalogue as a theme, within the limit of the plan.

    mcp-tool

    {
      "type": "object",
      "title": "create_themeArguments",
      "required": [
        "catalogue_id",
        "name",
        "expected_revision"
      ],
      "properties": {
        "name": {
          "type": "string",
          "title": "Name",
          "maxLength": 80,
          "minLength": 1
        },
        "catalogue_id": {
          "type": "string",
          "title": "Catalogue Id",
          "pattern": "^[A-Za-z0-9_-]{1,64}$"
        },
        "expected_revision": {
          "type": "string",
          "title": "Expected Revision",
          "pattern": "^[a-f0-9]{64}$"
        }
      }
    }
    arguments 27 lines
  • foliade_publish_catalogue unknown never probed

    Makes the catalogue public, on explicit request only. Keeps its identifier. It does not change the password or the addresses: those belong to foliade_set_catalogue_access.

    mcp-tool

    {
      "type": "object",
      "title": "publish_catalogueArguments",
      "required": [
        "catalogue_id"
      ],
      "properties": {
        "guest_token": {
          "type": "string",
          "title": "Guest Token",
          "default": ""
        },
        "catalogue_id": {
          "type": "string",
          "title": "Catalogue Id"
        }
      }
    }
    arguments 18 lines
  • foliade_unpublish_catalogue changes data unknown never probed

    Closes the public link without deleting the data. Requires an explicit request.

    mcp-tool

    {
      "type": "object",
      "title": "unpublish_catalogueArguments",
      "required": [
        "catalogue_id"
      ],
      "properties": {
        "guest_token": {
          "type": "string",
          "title": "Guest Token",
          "default": ""
        },
        "catalogue_id": {
          "type": "string",
          "title": "Catalogue Id"
        }
      }
    }
    arguments 18 lines
  • foliade_import_chapters unknown never probed

    Merges the PDF bookmarks into the table of contents without duplicates.

    mcp-tool

    {
      "type": "object",
      "title": "import_chaptersArguments",
      "required": [
        "catalogue_id",
        "expected_revision"
      ],
      "properties": {
        "dry_run": {
          "type": "boolean",
          "title": "Dry Run",
          "default": false
        },
        "catalogue_id": {
          "type": "string",
          "title": "Catalogue Id",
          "pattern": "^[A-Za-z0-9_-]{1,64}$"
        },
        "expected_revision": {
          "type": "string",
          "title": "Expected Revision",
          "pattern": "^[a-f0-9]{64}$"
        }
      }
    }
    arguments 25 lines
  • foliade_catalogue_status reads unknown 35h ago

    Private state: owner OAuth or guest token, never the public link alone.

    mcp-tool

    {
      "type": "object",
      "title": "catalogue_statusArguments",
      "required": [
        "catalogue_id"
      ],
      "properties": {
        "guest_token": {
          "type": "string",
          "title": "Guest Token",
          "default": ""
        },
        "catalogue_id": {
          "type": "string",
          "title": "Catalogue Id"
        }
      }
    }
    arguments 18 lines
  • foliade_prepare_upload changes data unknown never probed

    Creates a single-use 10-minute deposit. Compute the size and the SHA-256 of the local PDF. Transfer the bytes to upload_url with PUT, Content-Type application/pdf, with the headers returned. Do not publish these headers in your reply. This ticket allows no reading and is not an API key for the account.

    mcp-tool

    {
      "type": "object",
      "title": "prepare_uploadArguments",
      "required": [
        "filename",
        "size_bytes",
        "sha256"
      ],
      "properties": {
        "title": {
          "type": "string",
          "title": "Title",
          "default": "",
          "maxLength": 240
        },
        "sha256": {
          "type": "string",
          "title": "Sha256",
          "pattern": "^[a-fA-F0-9]{64}$"
        },
        "filename": {
          "type": "string",
          "title": "Filename",
          "maxLength": 240,
          "minLength": 1
        },
        "language": {
          "type": "string",
          "title": "Language",
          "default": "fr",
          "maxLength": 5
        },
        "guest_mode": {
          "type": "boolean",
          "title": "Guest Mode",
          "default": false
        },
        "size_bytes": {
          "type": "integer",
          "title": "Size Bytes",
          "minimum": 1
        },
        "notice_version": {
          "type": "string",
          "title": "Notice Version",
          "default": ""
        }
      }
    }
    arguments 49 lines
  • foliade_import_url changes data unknown never probed

    Fetches a PDF that is already online and prepares it as a private draft. Use this when the user gives a link, or when your host hands you an attachment as a download URL rather than a local file. For a file on the user's machine, use foliade_prepare_upload instead. Only public https links are accepted, and the server checks that the link really returns a PDF. Call foliade_finalize_upload next with the upload_id.

    mcp-tool

    {
      "type": "object",
      "title": "import_pdf_urlArguments",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "title": "Url",
          "maxLength": 2048,
          "minLength": 8
        },
        "title": {
          "type": "string",
          "title": "Title",
          "default": "",
          "maxLength": 240
        },
        "language": {
          "type": "string",
          "title": "Language",
          "default": "fr",
          "maxLength": 5
        },
        "guest_mode": {
          "type": "boolean",
          "title": "Guest Mode",
          "default": false
        },
        "notice_version": {
          "type": "string",
          "title": "Notice Version",
          "default": ""
        }
      }
    }
    arguments 37 lines
  • foliade_finalize_upload changes data unknown never probed

    Finalises an upload that has been received. A repeat returns the same catalogue, never a duplicate. Conversion is asynchronous: check foliade_catalogue_status before giving the final result. The catalogue stays private until it is published explicitly.

    mcp-tool

    {
      "type": "object",
      "title": "finalize_uploadArguments",
      "required": [
        "upload_id"
      ],
      "properties": {
        "upload_id": {
          "type": "string",
          "title": "Upload Id"
        },
        "guest_token": {
          "type": "string",
          "title": "Guest Token",
          "default": ""
        }
      }
    }
    arguments 18 lines
  • foliade_update_catalogue changes data unknown never probed

    Changes only the fields supplied: colours, bar, controls, sound, reading, logo, title, language, PDF. It never touches the table of contents, which belongs to foliade_set_chapters. dry_run returns a preview without writing. No change to the publication state.

    mcp-tool

    {
      "type": "object",
      "$defs": {
        "CataloguePatch": {
          "type": "object",
          "title": "CataloguePatch",
          "properties": {
            "fond": {
              "type": "string",
              "title": "Fond",
              "default": null,
              "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
            },
            "effet": {
              "enum": [
                "magazine",
                "book",
                "slide",
                "cards",
                "coverflow",
                "single"
              ],
              "type": "string",
              "title": "Effet",
              "default": null
            },
            "titre": {
              "type": "string",
              "title": "Titre",
              "default": null,
              "maxLength": 240,
              "minLength": 1
            },
            "invite": {
              "enum": [
                "coin",
                "fleches",
                "survol",
                "aucune"
              ],
              "type": "string",
              "title": "Invite",
              "default": null
            },
            "langue": {
              "enum": [
                "fr",
                "en",
                "es",
                "de",
                "it",
                "pt",
                "pl",
                "nl"
              ],
              "type": "string",
              "title": "Langue",
              "default": null
            },
            "barre_ton": {
              "enum": [
                "sombre",
                "clair"
              ],
              "type": "string",
              "title": "Barre Ton",
              "default": null
            },
            "fond_flou": {
              "type": "integer",
              "title": "Fond Flou",
              "default": null,
              "maximum": 40,
              "minimum": 0
            },
            "fond_type": {
              "enum": [
                "couleur",
                "degrade",
                "image"
              ],
              "type": "string",
              "title": "Fond Type",
              "default": null
            },
            "logo_coin": {
              "enum": [
                "haut-gauche",
                "haut-droite",
                "bas-gauche",
                "bas-droite"
              ],
              "type": "string",
              "title": "Logo Coin",
              "default": null
            },
            "logo_lien": {
              "type": "string",
              "title": "Logo Lien",
              "default": null,
              "maxLength": 300,
              "minLength": 0
            },
            "son_actif": {
              "type": "boolean",
              "title": "Son Actif",
              "default": null
            },
            "barre_auto": {
              "type": "boolean",
              "title": "Barre Auto",
              "default": null
            },
            "barre_fond": {
              "type": "string",
              "title": "Barre Fond",
              "default": null,
              "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
            },
            "son_volume": {
              "type": "integer",
              "title": "Son Volume",
              "default": null,
              "maximum": 100,
              "minimum": 0
            },
            "description": {
              "type": "string",
              "title": "Description",
              "default": null,
              "maxLength": 2000,
              "minLength": 0
            },
            "disposition": {
              "enum": [
                "auto",
                "simple",
                "double"
              ],
              "type": "string",
              "title": "Disposition",
              "default": null
            },
            "logo_taille": {
              "enum": [
                "petit",
                "moyen",
                "grand"
              ],
              "type": "string",
              "title": "Logo Taille",
              "default": null
            },
            "page_depart": {
              "type": "integer",
              "title": "Page Depart",
              "default": null,
              "maximum": 100000,
              "minimum": 1
            },
            "progression": {
              "type": "string",
              "title": "Progression",
              "default": null,
              "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
            },
            "barre_icones": {
              "type": "string",
              "title": "Barre Icones",
              "default": null,
              "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
            },
            "fond_opacite": {
              "type": "integer",
              "title": "Fond Opacite",
              "default": null,
              "maximum": 100,
              "minimum": 0
            },
            "fond_couleur2": {
              "type": "string",
              "title": "Fond Couleur2",
              "default": null,
              "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
            },
            "fond_position": {
              "enum": [
                "haut",
                "centre",
                "bas"
              ],
              "type": "string",
              "title": "Fond Position",
              "default": null
            },
            "barre_position": {
              "enum": [
                "bas",
                "haut"
              ],
              "type": "string",
              "title": "Barre Position",
              "default": null
            },
            "fond_direction": {
              "enum": [
                "vertical",
                "diagonal",
                "horizontal"
              ],
              "type": "string",
              "title": "Fond Direction",
              "default": null
            },
            "titre_sur_fond": {
              "type": "boolean",
              "title": "Titre Sur Fond",
              "default": null
            },
            "surligner_liens": {
              "type": "boolean",
              "title": "Surligner Liens",
              "default": null
            },
            "controles_masques": {
              "type": "array",
              "items": {
                "enum": [
                  "premiere",
                  "zoom",
                  "sommaire",
                  "recherche",
                  "partager",
                  "imprimer",
                  "pleinecran",
                  "telecharger"
                ],
                "type": "string"
              },
              "title": "Controles Masques",
              "default": null,
              "maxItems": 8
            },
            "droite_vers_gauche": {
              "type": "boolean",
              "title": "Droite Vers Gauche",
              "default": null
            },
            "telechargement_pdf": {
              "enum": [
                "heriter",
                "autoriser",
                "interdire"
              ],
              "type": "string",
              "title": "Telechargement Pdf",
              "default": null
            }
          },
          "additionalProperties": false
        }
      },
      "title": "update_catalogueArguments",
      "required": [
        "catalogue_id",
        "patch",
        "expected_revision"
      ],
      "properties": {
        "patch": {
          "$ref": "#/$defs/CataloguePatch"
        },
        "dry_run": {
          "type": "boolean",
          "title": "Dry Run",
          "default": false
        },
        "catalogue_id": {
          "type": "string",
          "title": "Catalogue Id",
          "pattern": "^[A-Za-z0-9_-]{1,64}$"
        },
        "expected_revision": {
          "type": "string",
          "title": "Expected Revision",
          "pattern": "^[a-f0-9]{64}$"
        }
      }
    }
    arguments 289 lines
  • foliade_set_catalogue_access changes data unknown never probed

    Changes access on explicit request only. Never publishes a draft. The password is never returned. This tool sets the password and the addresses; to make a draft public, use foliade_publish_catalogue. Declaring a domain does not configure DNS/TLS; activation remains a separate operation.

    mcp-tool

    {
      "type": "object",
      "title": "set_catalogue_accessArguments",
      "required": [
        "catalogue_id",
        "expected_revision"
      ],
      "properties": {
        "domaine": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 160
            },
            {
              "type": "null"
            }
          ],
          "title": "Domaine",
          "default": null
        },
        "dry_run": {
          "type": "boolean",
          "title": "Dry Run",
          "default": false
        },
        "password": {
          "type": "string",
          "title": "Password",
          "default": "",
          "maxLength": 128
        },
        "protection": {
          "enum": [
            "keep",
            "none",
            "password"
          ],
          "type": "string",
          "title": "Protection",
          "default": "keep"
        },
        "catalogue_id": {
          "type": "string",
          "title": "Catalogue Id",
          "pattern": "^[A-Za-z0-9_-]{1,64}$"
        },
        "sous_domaine": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 64
            },
            {
              "type": "null"
            }
          ],
          "title": "Sous Domaine",
          "default": null
        },
        "expected_revision": {
          "type": "string",
          "title": "Expected Revision",
          "pattern": "^[a-f0-9]{64}$"
        }
      }
    }
    arguments 67 lines
  • foliade_set_lead_capture changes data unknown never probed

    Sets activation, page, blocking mode, fields and consent. A plan with lead capture is required; email is mandatory.

    mcp-tool

    {
      "type": "object",
      "$defs": {
        "LeadPatch": {
          "type": "object",
          "title": "LeadPatch",
          "properties": {
            "page": {
              "type": "integer",
              "title": "Page",
              "default": null,
              "maximum": 100000,
              "minimum": 1
            },
            "actif": {
              "type": "boolean",
              "title": "Actif",
              "default": null
            },
            "champs": {
              "type": "array",
              "items": {
                "enum": [
                  "email",
                  "nom",
                  "societe",
                  "telephone"
                ],
                "type": "string"
              },
              "title": "Champs",
              "default": null,
              "maxItems": 4
            },
            "bloquant": {
              "type": "boolean",
              "title": "Bloquant",
              "default": null
            },
            "consentement": {
              "type": "string",
              "title": "Consentement",
              "default": null,
              "maxLength": 4000,
              "minLength": 1
            }
          },
          "additionalProperties": false
        }
      },
      "title": "set_lead_captureArguments",
      "required": [
        "catalogue_id",
        "patch",
        "expected_revision"
      ],
      "properties": {
        "patch": {
          "$ref": "#/$defs/LeadPatch"
        },
        "dry_run": {
          "type": "boolean",
          "title": "Dry Run",
          "default": false
        },
        "catalogue_id": {
          "type": "string",
          "title": "Catalogue Id",
          "pattern": "^[A-Za-z0-9_-]{1,64}$"
        },
        "expected_revision": {
          "type": "string",
          "title": "Expected Revision",
          "pattern": "^[a-f0-9]{64}$"
        }
      }
    }
    arguments 77 lines
  • foliade_set_chapters unknown never probed

    Replaces the table of contents with the ordered list supplied; an empty list removes it. Only the table of contents: every other reader setting stays with foliade_update_catalogue.

    mcp-tool

    {
      "type": "object",
      "$defs": {
        "Chapter": {
          "type": "object",
          "title": "Chapter",
          "required": [
            "titre",
            "page"
          ],
          "properties": {
            "page": {
              "type": "integer",
              "title": "Page",
              "minimum": 1
            },
            "titre": {
              "type": "string",
              "title": "Titre",
              "maxLength": 120,
              "minLength": 1
            }
          },
          "additionalProperties": false
        }
      },
      "title": "set_chaptersArguments",
      "required": [
        "catalogue_id",
        "chapters",
        "expected_revision"
      ],
      "properties": {
        "dry_run": {
          "type": "boolean",
          "title": "Dry Run",
          "default": false
        },
        "chapters": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Chapter"
          },
          "title": "Chapters",
          "maxItems": 300
        },
        "catalogue_id": {
          "type": "string",
          "title": "Catalogue Id",
          "pattern": "^[A-Za-z0-9_-]{1,64}$"
        },
        "expected_revision": {
          "type": "string",
          "title": "Expected Revision",
          "pattern": "^[a-f0-9]{64}$"
        }
      }
    }
    arguments 58 lines
  • foliade_update_brand changes data unknown never probed

    Account-wide impact: use it when a global customisation is asked for, prefer update_catalogue for a single PDF.

    mcp-tool

    {
      "type": "object",
      "$defs": {
        "BrandPatch": {
          "type": "object",
          "title": "BrandPatch",
          "properties": {
            "couleur": {
              "type": "string",
              "title": "Couleur",
              "default": null,
              "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
            },
            "societe": {
              "type": "string",
              "title": "Societe",
              "default": null,
              "maxLength": 160,
              "minLength": 0
            },
            "telechargement_pdf_defaut": {
              "type": "boolean",
              "title": "Telechargement Pdf Defaut",
              "default": null
            }
          },
          "additionalProperties": false
        }
      },
      "title": "update_brandArguments",
      "required": [
        "patch",
        "expected_revision"
      ],
      "properties": {
        "patch": {
          "$ref": "#/$defs/BrandPatch"
        },
        "dry_run": {
          "type": "boolean",
          "title": "Dry Run",
          "default": false
        },
        "expected_revision": {
          "type": "string",
          "title": "Expected Revision",
          "pattern": "^[a-f0-9]{64}$"
        }
      }
    }
    arguments 50 lines
  • foliade_update_theme changes data unknown never probed

    Changes the theme for its future applications. make_default changes the starting point of new catalogues.

    mcp-tool

    {
      "type": "object",
      "$defs": {
        "ReaderPatch": {
          "type": "object",
          "title": "ReaderPatch",
          "properties": {
            "fond": {
              "type": "string",
              "title": "Fond",
              "default": null,
              "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
            },
            "effet": {
              "enum": [
                "magazine",
                "book",
                "slide",
                "cards",
                "coverflow",
                "single"
              ],
              "type": "string",
              "title": "Effet",
              "default": null
            },
            "invite": {
              "enum": [
                "coin",
                "fleches",
                "survol",
                "aucune"
              ],
              "type": "string",
              "title": "Invite",
              "default": null
            },
            "barre_ton": {
              "enum": [
                "sombre",
                "clair"
              ],
              "type": "string",
              "title": "Barre Ton",
              "default": null
            },
            "fond_flou": {
              "type": "integer",
              "title": "Fond Flou",
              "default": null,
              "maximum": 40,
              "minimum": 0
            },
            "fond_type": {
              "enum": [
                "couleur",
                "degrade",
                "image"
              ],
              "type": "string",
              "title": "Fond Type",
              "default": null
            },
            "logo_coin": {
              "enum": [
                "haut-gauche",
                "haut-droite",
                "bas-gauche",
                "bas-droite"
              ],
              "type": "string",
              "title": "Logo Coin",
              "default": null
            },
            "logo_lien": {
              "type": "string",
              "title": "Logo Lien",
              "default": null,
              "maxLength": 300,
              "minLength": 0
            },
            "son_actif": {
              "type": "boolean",
              "title": "Son Actif",
              "default": null
            },
            "barre_auto": {
              "type": "boolean",
              "title": "Barre Auto",
              "default": null
            },
            "barre_fond": {
              "type": "string",
              "title": "Barre Fond",
              "default": null,
              "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
            },
            "son_volume": {
              "type": "integer",
              "title": "Son Volume",
              "default": null,
              "maximum": 100,
              "minimum": 0
            },
            "disposition": {
              "enum": [
                "auto",
                "simple",
                "double"
              ],
              "type": "string",
              "title": "Disposition",
              "default": null
            },
            "logo_taille": {
              "enum": [
                "petit",
                "moyen",
                "grand"
              ],
              "type": "string",
              "title": "Logo Taille",
              "default": null
            },
            "progression": {
              "type": "string",
              "title": "Progression",
              "default": null,
              "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
            },
            "barre_icones": {
              "type": "string",
              "title": "Barre Icones",
              "default": null,
              "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
            },
            "fond_opacite": {
              "type": "integer",
              "title": "Fond Opacite",
              "default": null,
              "maximum": 100,
              "minimum": 0
            },
            "fond_couleur2": {
              "type": "string",
              "title": "Fond Couleur2",
              "default": null,
              "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
            },
            "fond_position": {
              "enum": [
                "haut",
                "centre",
                "bas"
              ],
              "type": "string",
              "title": "Fond Position",
              "default": null
            },
            "barre_position": {
              "enum": [
                "bas",
                "haut"
              ],
              "type": "string",
              "title": "Barre Position",
              "default": null
            },
            "fond_direction": {
              "enum": [
                "vertical",
                "diagonal",
                "horizontal"
              ],
              "type": "string",
              "title": "Fond Direction",
              "default": null
            },
            "titre_sur_fond": {
              "type": "boolean",
              "title": "Titre Sur Fond",
              "default": null
            },
            "surligner_liens": {
              "type": "boolean",
              "title": "Surligner Liens",
              "default": null
            },
            "controles_masques": {
              "type": "array",
              "items": {
                "enum": [
                  "premiere",
                  "zoom",
                  "sommaire",
                  "recherche",
                  "partager",
                  "imprimer",
                  "pleinecran",
                  "telecharger"
                ],
                "type": "string"
              },
              "title": "Controles Masques",
              "default": null,
              "maxItems": 8
            }
          },
          "additionalProperties": false
        }
      },
      "title": "update_themeArguments",
      "required": [
        "theme_id",
        "patch",
        "expected_revision"
      ],
      "properties": {
        "name": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 80,
              "minLength": 1
            },
            {
              "type": "null"
            }
          ],
          "title": "Name",
          "default": null
        },
        "patch": {
          "$ref": "#/$defs/ReaderPatch"
        },
        "dry_run": {
          "type": "boolean",
          "title": "Dry Run",
          "default": false
        },
        "theme_id": {
          "type": "integer",
          "title": "Theme Id",
          "minimum": 1
        },
        "make_default": {
          "type": "boolean",
          "title": "Make Default",
          "default": false
        },
        "expected_revision": {
          "type": "string",
          "title": "Expected Revision",
          "pattern": "^[a-f0-9]{64}$"
        }
      }
    }
    arguments 257 lines
  • foliade_update_enrichments unknown never probed

    Replaces the draft: 13 types, links, buttons, videos, forms, products, galleries, tours, questions. No element that is invalid or closed off by the plan is accepted. Nothing is published before publish_enrichments. See capabilities and get_enrichments for the examples and the native structure.

    mcp-tool

    {
      "type": "object",
      "title": "update_enrichmentsArguments",
      "required": [
        "catalogue_id",
        "elements",
        "expected_revision"
      ],
      "properties": {
        "dry_run": {
          "type": "boolean",
          "title": "Dry Run",
          "default": false
        },
        "elements": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": true
          },
          "title": "Elements",
          "maxItems": 400
        },
        "catalogue_id": {
          "type": "string",
          "title": "Catalogue Id",
          "pattern": "^[A-Za-z0-9_-]{1,64}$"
        },
        "expected_revision": {
          "type": "string",
          "title": "Expected Revision",
          "pattern": "^[a-f0-9]{64}$"
        }
      }
    }
    arguments 35 lines
  • foliade_publish_enrichments changes data unknown never probed

    Publishes the interactive elements explicitly, with history. Does not publish the catalogue itself.

    mcp-tool

    {
      "type": "object",
      "title": "publish_enrichmentsArguments",
      "required": [
        "catalogue_id",
        "expected_revision"
      ],
      "properties": {
        "catalogue_id": {
          "type": "string",
          "title": "Catalogue Id",
          "pattern": "^[A-Za-z0-9_-]{1,64}$"
        },
        "expected_revision": {
          "type": "string",
          "title": "Expected Revision",
          "pattern": "^[a-f0-9]{64}$"
        }
      }
    }
    arguments 20 lines
  • foliade_restore_enrichments changes data unknown never probed

    Restores a version of this catalogue after re-checking the plan; creates a new history entry.

    mcp-tool

    {
      "type": "object",
      "title": "restore_enrichmentsArguments",
      "required": [
        "catalogue_id",
        "publication_id",
        "expected_revision"
      ],
      "properties": {
        "catalogue_id": {
          "type": "string",
          "title": "Catalogue Id",
          "pattern": "^[A-Za-z0-9_-]{1,64}$"
        },
        "publication_id": {
          "type": "integer",
          "title": "Publication Id",
          "minimum": 1
        },
        "expected_revision": {
          "type": "string",
          "title": "Expected Revision",
          "pattern": "^[a-f0-9]{64}$"
        }
      }
    }
    arguments 26 lines
  • foliade_create_shelf changes data unknown never probed

    Creates a shelf as a draft. The Distributeur plan is required; nothing is published automatically.

    mcp-tool

    {
      "type": "object",
      "$defs": {
        "ShelfPatch": {
          "type": "object",
          "title": "ShelfPatch",
          "properties": {
            "nom": {
              "type": "string",
              "title": "Nom",
              "default": null,
              "maxLength": 160,
              "minLength": 1
            },
            "fond": {
              "type": "string",
              "title": "Fond",
              "default": null,
              "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
            },
            "pied": {
              "type": "string",
              "title": "Pied",
              "default": null,
              "maxLength": 300,
              "minLength": 0
            },
            "badge": {
              "type": "boolean",
              "title": "Badge",
              "default": null
            },
            "intro": {
              "type": "string",
              "title": "Intro",
              "default": null,
              "maxLength": 2000,
              "minLength": 0
            },
            "texte": {
              "type": "string",
              "title": "Texte",
              "default": null,
              "pattern": "^(?:|#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6})$"
            },
            "titre": {
              "type": "string",
              "title": "Titre",
              "default": null,
              "maxLength": 240,
              "minLength": 0
            },
            "accent": {
              "type": "string",
              "title": "Accent",
              "default": null,
              "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
            },
            "layout": {
              "enum": [
                "grille",
                "rayonnage",
                "liste",
                "coverflow",
                "vedette",
                "kiosque"
              ],
              "type": "string",
              "title": "Layout",
              "default": null
            },
            "contact": {
              "type": "string",
              "title": "Contact",
              "default": null,
              "maxLength": 320,
              "minLength": 0
            },
            "planche": {
              "enum": [
                "noyer",
                "chene",
                "ebene",
                "verre",
                "metal",
                "beton",
                "couleur"
              ],
              "type": "string",
              "title": "Planche",
              "default": null
            },
            "surtitre": {
              "type": "string",
              "title": "Surtitre",
              "default": null,
              "maxLength": 160,
              "minLength": 0
            },
            "ouverture": {
              "enum": [
                "page",
                "onglet"
              ],
              "type": "string",
              "title": "Ouverture",
              "default": null
            },
            "recherche": {
              "type": "boolean",
              "title": "Recherche",
              "default": null
            },
            "collections": {
              "type": "boolean",
              "title": "Collections",
              "default": null
            },
            "taille_couv": {
              "enum": [
                "petite",
                "moyenne",
                "grande"
              ],
              "type": "string",
              "title": "Taille Couv",
              "default": null
            },
            "police_texte": {
              "type": "string",
              "title": "Police Texte",
              "default": null,
              "maxLength": 80,
              "minLength": 0
            },
            "police_titre": {
              "type": "string",
              "title": "Police Titre",
              "default": null,
              "maxLength": 80,
              "minLength": 0
            },
            "planche_couleur": {
              "type": "string",
              "title": "Planche Couleur",
              "default": null,
              "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
            }
          },
          "additionalProperties": false
        }
      },
      "title": "create_shelfArguments",
      "required": [
        "name",
        "patch"
      ],
      "properties": {
        "name": {
          "type": "string",
          "title": "Name",
          "maxLength": 160,
          "minLength": 1
        },
        "patch": {
          "$ref": "#/$defs/ShelfPatch"
        }
      }
    }
    arguments 169 lines
  • foliade_update_shelf changes data unknown never probed

    Texts, six layouts, covers, shelf boards, colours, fonts, collections, search and opening.

    mcp-tool

    {
      "type": "object",
      "$defs": {
        "ShelfPatch": {
          "type": "object",
          "title": "ShelfPatch",
          "properties": {
            "nom": {
              "type": "string",
              "title": "Nom",
              "default": null,
              "maxLength": 160,
              "minLength": 1
            },
            "fond": {
              "type": "string",
              "title": "Fond",
              "default": null,
              "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
            },
            "pied": {
              "type": "string",
              "title": "Pied",
              "default": null,
              "maxLength": 300,
              "minLength": 0
            },
            "badge": {
              "type": "boolean",
              "title": "Badge",
              "default": null
            },
            "intro": {
              "type": "string",
              "title": "Intro",
              "default": null,
              "maxLength": 2000,
              "minLength": 0
            },
            "texte": {
              "type": "string",
              "title": "Texte",
              "default": null,
              "pattern": "^(?:|#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6})$"
            },
            "titre": {
              "type": "string",
              "title": "Titre",
              "default": null,
              "maxLength": 240,
              "minLength": 0
            },
            "accent": {
              "type": "string",
              "title": "Accent",
              "default": null,
              "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
            },
            "layout": {
              "enum": [
                "grille",
                "rayonnage",
                "liste",
                "coverflow",
                "vedette",
                "kiosque"
              ],
              "type": "string",
              "title": "Layout",
              "default": null
            },
            "contact": {
              "type": "string",
              "title": "Contact",
              "default": null,
              "maxLength": 320,
              "minLength": 0
            },
            "planche": {
              "enum": [
                "noyer",
                "chene",
                "ebene",
                "verre",
                "metal",
                "beton",
                "couleur"
              ],
              "type": "string",
              "title": "Planche",
              "default": null
            },
            "surtitre": {
              "type": "string",
              "title": "Surtitre",
              "default": null,
              "maxLength": 160,
              "minLength": 0
            },
            "ouverture": {
              "enum": [
                "page",
                "onglet"
              ],
              "type": "string",
              "title": "Ouverture",
              "default": null
            },
            "recherche": {
              "type": "boolean",
              "title": "Recherche",
              "default": null
            },
            "collections": {
              "type": "boolean",
              "title": "Collections",
              "default": null
            },
            "taille_couv": {
              "enum": [
                "petite",
                "moyenne",
                "grande"
              ],
              "type": "string",
              "title": "Taille Couv",
              "default": null
            },
            "police_texte": {
              "type": "string",
              "title": "Police Texte",
              "default": null,
              "maxLength": 80,
              "minLength": 0
            },
            "police_titre": {
              "type": "string",
              "title": "Police Titre",
              "default": null,
              "maxLength": 80,
              "minLength": 0
            },
            "planche_couleur": {
              "type": "string",
              "title": "Planche Couleur",
              "default": null,
              "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
            }
          },
          "additionalProperties": false
        }
      },
      "title": "update_shelfArguments",
      "required": [
        "shelf_id",
        "patch",
        "expected_revision"
      ],
      "properties": {
        "patch": {
          "$ref": "#/$defs/ShelfPatch"
        },
        "dry_run": {
          "type": "boolean",
          "title": "Dry Run",
          "default": false
        },
        "shelf_id": {
          "type": "string",
          "title": "Shelf Id",
          "pattern": "^[A-Za-z0-9_-]{1,64}$"
        },
        "expected_revision": {
          "type": "string",
          "title": "Expected Revision",
          "pattern": "^[a-f0-9]{64}$"
        }
      }
    }
    arguments 179 lines
  • foliade_set_shelf_catalogues unknown never probed

    Replaces the contents of the shelf with this ordered list with collection names. The PDFs themselves are kept.

    mcp-tool

    {
      "type": "object",
      "$defs": {
        "ShelfItem": {
          "type": "object",
          "title": "ShelfItem",
          "required": [
            "catalogue_id"
          ],
          "properties": {
            "collection": {
              "type": "string",
              "title": "Collection",
              "default": "",
              "maxLength": 80
            },
            "catalogue_id": {
              "type": "string",
              "title": "Catalogue Id",
              "pattern": "^[A-Za-z0-9_-]{1,64}$"
            }
          },
          "additionalProperties": false
        }
      },
      "title": "set_shelf_cataloguesArguments",
      "required": [
        "shelf_id",
        "items",
        "expected_revision"
      ],
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ShelfItem"
          },
          "title": "Items",
          "maxItems": 400
        },
        "dry_run": {
          "type": "boolean",
          "title": "Dry Run",
          "default": false
        },
        "shelf_id": {
          "type": "string",
          "title": "Shelf Id",
          "pattern": "^[A-Za-z0-9_-]{1,64}$"
        },
        "expected_revision": {
          "type": "string",
          "title": "Expected Revision",
          "pattern": "^[a-f0-9]{64}$"
        }
      }
    }
    arguments 57 lines
  • foliade_set_shelf_access changes data unknown never probed

    Publication and access of the shelf on explicit request only; DNS/TLS remain separate.

    mcp-tool

    {
      "type": "object",
      "title": "set_shelf_accessArguments",
      "required": [
        "shelf_id",
        "expected_revision"
      ],
      "properties": {
        "state": {
          "enum": [
            "keep",
            "brouillon",
            "public",
            "protege"
          ],
          "type": "string",
          "title": "State",
          "default": "keep"
        },
        "domaine": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 160
            },
            {
              "type": "null"
            }
          ],
          "title": "Domaine",
          "default": null
        },
        "dry_run": {
          "type": "boolean",
          "title": "Dry Run",
          "default": false
        },
        "password": {
          "type": "string",
          "title": "Password",
          "default": "",
          "maxLength": 128
        },
        "shelf_id": {
          "type": "string",
          "title": "Shelf Id",
          "pattern": "^[A-Za-z0-9_-]{1,64}$"
        },
        "protection": {
          "enum": [
            "keep",
            "none",
            "password"
          ],
          "type": "string",
          "title": "Protection",
          "default": "keep"
        },
        "sous_domaine": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 64
            },
            {
              "type": "null"
            }
          ],
          "title": "Sous Domaine",
          "default": null
        },
        "expected_revision": {
          "type": "string",
          "title": "Expected Revision",
          "pattern": "^[a-f0-9]{64}$"
        }
      }
    }
    arguments 78 lines
  • foliade_create_tracking_link changes data unknown never probed

    Creates a named Business link. No email is sent; does not publish the catalogue.

    mcp-tool

    {
      "type": "object",
      "title": "create_tracking_linkArguments",
      "required": [
        "catalogue_id",
        "recipient"
      ],
      "properties": {
        "note": {
          "type": "string",
          "title": "Note",
          "default": "",
          "maxLength": 240
        },
        "email": {
          "type": "string",
          "title": "Email",
          "default": "",
          "maxLength": 320
        },
        "recipient": {
          "type": "string",
          "title": "Recipient",
          "maxLength": 200,
          "minLength": 1
        },
        "catalogue_id": {
          "type": "string",
          "title": "Catalogue Id",
          "pattern": "^[A-Za-z0-9_-]{1,64}$"
        }
      }
    }
    arguments 33 lines
  • foliade_apply_theme changes data unknown never probed

    Copies the styling and media of a theme of this account onto this catalogue.

    mcp-tool

    {
      "type": "object",
      "title": "apply_themeArguments",
      "required": [
        "catalogue_id",
        "theme_id",
        "expected_revision"
      ],
      "properties": {
        "theme_id": {
          "type": "integer",
          "title": "Theme Id",
          "minimum": 1
        },
        "catalogue_id": {
          "type": "string",
          "title": "Catalogue Id",
          "pattern": "^[A-Za-z0-9_-]{1,64}$"
        },
        "expected_revision": {
          "type": "string",
          "title": "Expected Revision",
          "pattern": "^[a-f0-9]{64}$"
        }
      }
    }
    arguments 26 lines
  • foliade_update_tracking_link unknown never probed

    Changes recipient, note, email or active flag; closing is explicit and reversible, with no message sent.

    mcp-tool

    {
      "type": "object",
      "$defs": {
        "LinkPatch": {
          "type": "object",
          "title": "LinkPatch",
          "properties": {
            "note": {
              "type": "string",
              "title": "Note",
              "default": null,
              "maxLength": 240
            },
            "actif": {
              "type": "boolean",
              "title": "Actif",
              "default": null
            },
            "email": {
              "type": "string",
              "title": "Email",
              "default": null,
              "maxLength": 320
            },
            "destinataire": {
              "type": "string",
              "title": "Destinataire",
              "default": null,
              "maxLength": 200,
              "minLength": 1
            }
          },
          "additionalProperties": false
        }
      },
      "title": "update_tracking_linkArguments",
      "required": [
        "catalogue_id",
        "link_id",
        "patch",
        "expected_revision"
      ],
      "properties": {
        "patch": {
          "$ref": "#/$defs/LinkPatch"
        },
        "dry_run": {
          "type": "boolean",
          "title": "Dry Run",
          "default": false
        },
        "link_id": {
          "type": "integer",
          "title": "Link Id",
          "minimum": 1
        },
        "catalogue_id": {
          "type": "string",
          "title": "Catalogue Id",
          "pattern": "^[A-Za-z0-9_-]{1,64}$"
        },
        "expected_revision": {
          "type": "string",
          "title": "Expected Revision",
          "pattern": "^[a-f0-9]{64}$"
        }
      }
    }
    arguments 68 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id c0f95bbc521425c4.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/c0f95bbc521425c4/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/c0f95bbc521425c4/badge.svg)](https://brick.blue/agent/c0f95bbc521425c4?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.