Serveur MCP

Laissez votre assistant IA gérer votre hébergement

Un seul serveur MCP pour l'ensemble de votre compte. Connectez Claude Code, Claude Desktop ou Cursor une seule fois, et votre assistant pourra lister vos sites, lire leurs journaux, synchroniser leurs fichiers avec votre dépôt et déployer, en agissant uniquement avec les autorisations que vous lui accordez.

65 outils aujourd'hui, listés ci-dessous exactement tels que le serveur les propose.

Le connecter

Deux étapes. Le jeton constituant l'intégralité des identifiants, traitez-le comme un mot de passe : il n'est affiché qu'une seule fois et vous pouvez révoquer une connexion sans toucher aux autres.

  1. Créer une connexion

    Dans votre tableau de bord, ouvrez les outils d'IA, nommez la connexion, choisissez votre client et cochez ce qu'il est autorisé à faire. Vous ne pouvez accorder que les permissions dont vous disposez vous-même.

  2. Collez la configuration que votre client lit

    Le tableau de bord affiche la configuration du client que vous avez sélectionné, avec votre jeton déjà intégré. Chaque client communique avec la même adresse de serveur :

    https://api.zinndigital.com/v1/mcp

Claude Code

Exécutez la seule commande, ou placez le bloc dans .mcp.json à la racine de votre projet. La ligne "type": "http" est requise — sans elle, Claude Code ignore le serveur.

claude mcp add --transport http zinn https://api.zinndigital.com/v1/mcp \
  --header "Authorization: Bearer zmcp_live_…"
// .mcp.json
{
  "mcpServers": {
    "zinn": {
      "type": "http",
      "url": "https://api.zinndigital.com/v1/mcp",
      "headers": {
        "Authorization": "Bearer zmcp_live_…"
      }
    }
  }
}

Claude Desktop

Claude Desktop démarre des serveurs locaux et exécute donc notre CLI gratuite Zinnector® pour faire office de pont vers le serveur hébergé. Il nécessite Node 24 ou une version plus récente. Le jeton doit être placé dans les variables d'environnement, et jamais dans les arguments.

// claude_desktop_config.json
{
  "mcpServers": {
    "zinn": {
      "command": "npx",
      "args": [
        "-y",
        "zinnector@0.1.4",
        "mcp"
      ],
      "env": {
        "ZINN_MCP_TOKEN": "zmcp_live_…"
      }
    }
  }
}

Curseur

Ajoutez le serveur à ~/.cursor/mcp.json (ou .cursor/mcp.json dans un projet) avec l'adresse et l'en-tête Authorization.

// ~/.cursor/mcp.json
{
  "mcpServers": {
    "zinn": {
      "url": "https://api.zinndigital.com/v1/mcp",
      "headers": {
        "Authorization": "Bearer zmcp_live_…"
      }
    }
  }
}

Tout autre client MCP

Tout client prenant en charge les serveurs HTTP Streamable distants avec un en-tête personnalisé convient : pointez-le vers l'adresse ci-dessus et envoyez Authorization: Bearer avec votre jeton. Un client qui démarre uniquement des serveurs locaux peut utiliser le pont Claude Desktop.

ChatGPT se connecte aux serveurs MCP uniquement en se connectant avec OAuth, il ne peut donc pas encore utiliser de jeton. Utilisez la même connexion avec Claude Code, Claude Desktop ou Cursor.

Vérifiez que cela fonctionne — quatre questions

Posez ces questions en langage clair. Sous chacune d'elles figure l'outil que votre assistant doit appeler ainsi que l'apparence d'une bonne réponse.

  1. > List my sites.
      ↳ sites_list

    Vos sites avec leur statut et leur formule. Une liste vide sur un compte qui possède des sites signifie que la connexion ne dispose pas de l'autorisation d'afficher les sites.

  2. > Show me the error log for example.com.
      ↳ site_logs

    Le journal des erreurs et le journal d'accès récents. Si l'un d'eux n'a pas pu être lu, la réponse l'indique, ce qui est différent d'un journal vide.

  3. > Sync example.com to its repository.
      ↳ site_repo_sync_run

    Un commit dans votre dépôt contenant toutes les modifications apportées au site en direct, ou une note indiquant que le dépôt correspondait déjà. Si le dépôt a été déplacé, la synchronisation est suspendue et rien n'est écrasé.

  4. > I pushed a commit — deploy example.com and tell me when it is live.
      ↳ site_deploy → site_deploy_status

    Le déploiement est mis en file d'attente, puis est mis en ligne avec le commit appliqué. Les outils d'écriture demandent votre accord dans le client avant de s'exécuter.

Synchronisation bidirectionnelle, dans les deux sens

Un site doté d'un dépôt connecté reste synchronisé dans les deux sens, et votre assistant peut agir dans l'une ou l'autre direction.

Site → dépôt

Enregistre les modifications apportées aux fichiers en direct (une modification dans le gestionnaire de fichiers, une mise à jour de plugin, un téléchargement) et les envoie sur votre branche pour qu'elles soient incluses lors de votre prochain git pull.

site_repo_sync_run   ·   zinnector sync run

Répertoire → site

Un déploiement applique votre branche sur le site. Poussez votre commit, puis déployez ; sur nos propres serveurs, cela nécessite d'activer la synchronisation bidirectionnelle, qui est gratuite.

site_deploy   ·   zinnector push

Lorsque les deux côtés ont changé

Rien n'est jamais fusionné ou écrasé silencieusement. La synchronisation s'arrête, nomme le commit et attend que vous conserviez le site ou le dépôt. Conserver le dépôt annule les modifications non synchronisées du site, ce qui nécessite une confirmation.

site_repo_sync_resolve keep=site|repository confirm=true

Ce qui assure sa sécurité

Seulement ce que vous avez accordé

Chaque outil nécessite une autorisation, et une connexion ne conserve que celles que vous avez cochées. Les sites d'un autre client n'existent pas pour votre connexion.

Confirmation pour toute action destructive

La rétrogradation, la restauration, la résolution d'une synchronisation suspendue et tout achat requièrent une confirmation explicite, et tout ce qui est payant vous indique d'abord le total exact.

Chaque action de votre journal d'audit

Chaque appel est enregistré par rapport à la connexion qui l'a effectué. Révoquez une connexion sur la page des outils d'IA pour qu'elle cesse de fonctionner immédiatement.

Tous les outils

Les 65 outils, générés à partir du propre registre du serveur : s'ils figurent ici, votre assistant peut les appeler.

Sites et déploiements

OutilFonctionnementPermissionNotes
sites_listList the organization's sites, with each site's primary domain, status, product line, stack and the plan it is on. Optionally filter by status, product line or a search over domain and name.sites.viewlecture seule
site_getGet one site's full record — domain, status, product line, stack, runtime, PHP version, region, plan and whether it is scheduled for deletion.sites.viewlecture seule
site_createCreate a site and start provisioning it. Give a primary domain and a product line; optionally a blueprint to build it from, a stack type, a PHP version or a region. Returns the new site, which begins in 'provisioning' — poll site_get for status.sites.createmodifie des éléments
site_deployDeploy a site — build and publish its current source to our servers. Returns the deploy state immediately; the build runs as a durable workflow. Poll site_deploy_status to follow it.hosting.deploy.managemodifie des éléments
site_deploy_statusThe site's current deploy state — status, target, the live URL, the deployed commit and when it last went live.sites.viewlecture seule
site_deployments_listList a site's recent deployments — id, status, commit, branch and timings. Use this to choose the deployment_id to roll back to.sites.viewlecture seule
site_rollbackRoll a site back to an earlier deployment by re-deploying its commit. Destructive: pass confirm=true. Use site_deployments_list to choose which one.hosting.deploy.managemodifie des éléments · demande une confirmation

Synchronisation bidirectionnelle

OutilFonctionnementPermissionNotes
site_repo_sync_getShow a site's two-way sync with its repository: whether it is available and on, the repository and branch, the current state (idle, synced, conflict, adopt, error) and the last runs with the commits they made.sites.viewlecture seule
site_repo_sync_setTurn two-way sync on or off for a site, optionally limited to a subdirectory of the site. Needs the customer's own GitHub account connected. Turning it on pushes nothing by itself — call site_repo_sync_run for that.hosting.deploy.managemodifie des éléments
site_repo_sync_runSync a site to its repository now: commit whatever changed in the site's live files and push it to the connected branch, so a local git pull receives it. If the repository moved since the last sync the run is HELD and nothing is overwritten — the result says so. The other direction (repository to site) is site_deploy.hosting.deploy.managemodifie des éléments
site_repo_sync_resolveResolve a HELD two-way sync. keep=site commits the site's files on top of the repository (their commits stay in history); keep=repository applies the repository to the site and DISCARDS the site's unsynced changes. Destructive: pass confirm=true.hosting.deploy.managemodifie des éléments · demande une confirmation

Journaux et métriques

OutilFonctionnementPermissionNotes
site_metricsCurrent metrics for one site — visits, bandwidth, error rate, disk and resource use. Each section reports whether it is available, so 'no data' is distinguishable from 'zero'.sites.viewlecture seule
site_usageOne site's metered visit usage for the current billing period, with the plan's allowance and what any overage costs.sites.viewlecture seule
site_logsRead the recent tail of one site's web-server access log and error log. Each log reports whether it could be read, so an unreadable log is never mistaken for an empty one. Use this before proposing a fix for errors or slowness.sites.panel_accesslecture seule
site_build_logRead the build log of one deployment — the latest when deployment_id is omitted. Pass after=<total from the previous call> to fetch only new lines while complete is false.sites.viewlecture seule

Configuration et WordPress

OutilFonctionnementPermissionNotes
site_php_version_getThe site's current PHP version and every version it is allowed to switch to on its product line.sites.viewlecture seule
site_php_version_setSwitch a site to a different PHP version. The version must be one that site_php_version_get lists as available. Reports whether the change reached the machine or was only recorded for provisioning to apply.hosting.php.managemodifie des éléments
wordpress_stateA WordPress site's core version, whether an update is available, and which management operations its hosting permits.sites.viewlecture seule
wordpress_plugins_listList a WordPress site's plugins — name, version, whether active and whether an update is available.sites.viewlecture seule
wp_plugin_updateUpdate one WordPress plugin to its latest version. Returns the plugin list as it reads after the update.sites.panel_accessmodifie des éléments
wordpress_update_coreUpdate WordPress core to the latest version on a site. This cannot be undone by another call — take a backup first with backup_create if you may need to go back. Requires confirmation.sites.panel_accessmodifie des éléments · demande une confirmation
wordpress_set_pluginActivate or deactivate one plugin on a WordPress site. Takes effect on the live site immediately. Requires confirmation.sites.panel_accessmodifie des éléments · demande une confirmation

Sauvegardes

OutilFonctionnementPermissionNotes
backups_listA site's backups — each one's id, when it was taken, its size and status — plus whether a backup is currently running and how many on-demand backups remain in the rolling 24-hour allowance.sites.viewlecture seule
backup_createTake an on-demand backup of a site and return the updated backup state. Bounded to 3 per rolling 24 hours per site; the backup runs in the background.hosting.backup.managemodifie des éléments
backup_restoreRestore a site from one of its backups. This OVERWRITES the site's live database and files, and everything changed since that backup was taken is lost. Requires confirmation, and the confirmation names how old the backup is.hosting.backup.managemodifie des éléments · demande une confirmation

Domaines et DNS

OutilFonctionnementPermissionNotes
dns_records_listList a page of DNS records for a domain whose DNS we host, in name/type/value order. Returns a next_cursor for the following page.sites.viewlecture seule
dns_record_createCreate a DNS record for a domain whose DNS we host.domains.dns.managemodifie des éléments
dns_record_updateUpdate an existing DNS record for a domain whose DNS we host.domains.dns.managemodifie des éléments
dns_record_deleteDelete a DNS record for a domain whose DNS we host.domains.dns.managemodifie des éléments · demande une confirmation
domains_listList the organization's domains — id, hostname, status, product line and whether we registered it or the customer pointed it at us. The ids returned here are what the DNS, cache-purge and index-check tools take.sites.viewlecture seule

Cache et robots d'indexation

OutilFonctionnementPermissionNotes
cache_purgePurge the CDN cache for a domain. Omit 'urls' to purge everything, or pass a bounded list of absolute URLs to purge only those.sites.cache.purgelecture seule
crawler_policy_getGet a site's SEO-crawler-blocking (PBN footprint) policy: which crawlers are blocked, the available crawlers, and the rendered robots.txt/server rules.sites.viewlecture seule
crawler_policy_setSet a site's SEO-crawler-blocking policy. 'blocked' is a list of crawler keys (from crawler_policy_get's available_crawlers). Search engines can never be blocked. Publishes the change so the server rules are re-written.sites.crawler.managemodifie des éléments

Courriel

OutilFonctionnementPermissionNotes
mail_services_listList the organization's email services — every domain it has mailboxes on, with the plan's mailbox allowance, how many are used, and whether the mail DNS is published.mail.viewlecture seule
mailboxes_listList the mailboxes on one email service, with each mailbox's size, how full it is, and whether it can send and receive.mail.viewlecture seule
mailbox_createCreate a mailbox on an email service. Returns the new mailbox's password, which is shown once and cannot be retrieved later.mail.managemodifie des éléments
mail_forwarders_listList the mail forwarders on one email service — which address goes where.mail.viewlecture seule
mail_forwarder_createCreate a mail forwarder on an email service, sending everything for one address on to one or more destinations.mail.managemodifie des éléments

SEO

OutilFonctionnementPermissionNotes
site_seo_metricsThe cached SEO authority metrics for a hosted site — domain rank, backlinks, referring domains and organic keywords. Read-only and free; the figures are refreshed by the platform's own sweep, so they may be up to a month old.sites.viewlecture seule
domain_index_checkThe cached search-index status for a domain — whether it is indexed, how many pages, and when the reading was taken. Read-only and free.sites.viewlecture seule

Images IA

OutilFonctionnementPermissionNotes
image_models_listThe image models this account can generate with — provider, model, and the price per image in USD. Read-only and free. A model that is not listed cannot be used, either because it is retired or because nobody has priced it.sites.viewlecture seule
image_generateGenerate an image from a prompt and put it in this account's image library. Costs money — the price per image is what image_models_list reports for the model used. Returns the image ids; the customer sees them in their library immediately.links.editmodifie des éléments · peut dépenser de l'argent

Tableaux

OutilFonctionnementPermissionNotes
board_listList this organisation's project boards, newest first.agency.board.viewlecture seule
board_getRead one board in full: its columns and every card on them.agency.board.viewlecture seule
board_createCreate a project board, optionally for one of your client organisations.agency.board.managemodifie des éléments
board_card_createAdd a card to a column. Cards are agency-only unless you pass visibility 'client'.agency.board.managemodifie des éléments
board_card_moveMove a card to another column, or to another position in its column.agency.board.managemodifie des éléments
board_card_commentComment on a card. Agency-only unless you pass visibility 'client', in which case the client sees it attributed to your agency.agency.board.commentmodifie des éléments

Facturation et mises à niveau

OutilFonctionnementPermissionNotes
subscriptions_listList the organization's subscriptions — the plan each one is on, its status, renewal date and whether it auto-renews.billing.viewlecture seule
invoices_listList the organization's invoices and credit notes — number, status, total, currency and issue date. Optionally filter by status.billing.viewlecture seule
upgrade_optionsWhat can be bought to lift a limit you have hit — bigger plans, priced with tax, in your own currency. Pass the entitlement from a refusal (e.g. 'max_sites'), or a site_id to see what that site's own plan could move to. Read-only: nothing is bought, and calling this costs nothing.billing.viewlecture seule
purchase_quotePrice a plan exactly, with tax, in the customer's own currency — and nothing is bought or charged. Returns a quote_id to pass to purchase_authorize together with the total, which is what stops an agent committing someone to a figure they never saw. Quotes expire: re-quote rather than reusing an old id.billing.payment.managemodifie des éléments
purchase_authorizeComplete a purchase from a quote: places the order and charges the payment method on file. You must pass the exact total and currency purchase_quote returned — if the price has moved since, this refuses rather than charging a different amount. Retrying with the same quote_id returns the same order and never charges twice.billing.payment.managemodifie des éléments · demande une confirmation · peut dépenser de l'argent

Support

OutilFonctionnementPermissionNotes
tickets_listList the organization's support tickets — subject, status, priority and when they were last updated. Optionally filter by status or site.tickets.viewlecture seule
ticket_createOpen a support ticket. Include what you already checked — an agent that has read the KB and run diagnostics should say so in the body, so a human does not repeat it.tickets.replymodifie des éléments

Revendeur

OutilFonctionnementPermissionNotes
reseller_overviewThe reseller programme in one read: status, whether you can sell, billing day, default markup, your panel hostname and nameservers, mail sending domain, support routing, commerce readiness and the languages your clients' panel offers.reseller.viewlecture seule · réservé aux revendeurs
reseller_services_listList the sites you have provisioned for your clients — one row per service, with the client organisation, status, any hold you placed, what it costs you wholesale and what you sell it for. Your own sites are not here; use sites_list for those.reseller.viewlecture seule · réservé aux revendeurs
reseller_service_getOne client service in full — status, plan, any hold, wholesale cost, your sell price, and its disk and bandwidth usage.reseller.viewlecture seule · réservé aux revendeurs
reseller_service_suspendPut one of your client's services on a non-payment hold. The site stops serving until you release it. Requires confirm: true.reseller.provisionmodifie des éléments · demande une confirmation · réservé aux revendeurs
reseller_service_unsuspendRelease a non-payment hold you placed on a client's service. The site starts serving again.reseller.provisionmodifie des éléments · réservé aux revendeurs
reseller_prices_listYour price list: every plan you can sell, with the Zinn® list price, your wholesale cost, and the retail price you have set (if any).reseller.viewlecture seule · réservé aux revendeurs
reseller_client_wallets_listEvery client wallet you hold a float in, with the balance per client and the total held per currency. This is money you have taken and not yet delivered service for.reseller.viewlecture seule · réservé aux revendeurs

Continuer la lecture

Vous préférez un terminal ?

Référence CLI de Zinnector®

Développé sur l'API publique

Référence de l'API

Ce qu'un assistant IA peut faire pour vous

Outils IA et MCP

Connectez votre assistant en deux minutes

Ouvrez les outils d'IA dans votre tableau de bord, créez une connexion et collez la configuration que votre client lit.