Ton agent a écrit le site. Laisse-le le publier.
harvis.dev est un serveur MCP distant. Connecte-le une fois et ton client IA gagne un outil deploy_site qui met un dossier de fichiers en ligne et te renvoie une adresse live — pas de compte, pas de clé API, rien à installer.
Une prise standard entre un client IA et un service
Le Model Context Protocol est un standard ouvert pour donner à un assistant un jeu d'actions qu'il peut effectuer. Ton agent a déjà les fichiers et sait ce que tu as demandé ; ce qui lui manque, c'est un moyen d'agir hors de la conversation. Un serveur MCP fournit exactement ça — une liste d'outils nommés, chacun décrit assez clairement pour que le modèle sache quand y recourir. harvis.dev en publie exactement un, et il publie des sites.
Connecte le serveur une fois
Une URL dans le fichier de config de ton client, ou une commande dans le terminal. Ensuite la connexion tient dans toutes les conversations.
Le modèle voit un outil, pas une API
Aucun endpoint à retenir, aucun curl à assembler, aucune clé à coller. Il lit ce que fait deploy_site et l'appelle quand publier est ce que tu as demandé.
Tu ne quittes jamais la conversation
Demande une landing page et récupère une adresse live dans la même réponse. Pas d'export, pas d'étape d'envoi, pas de pipeline de build entre les deux.
Une URL, n'importe quel client MCP
Streamable HTTP, sans authentification. Les clients qui gèrent le MCP distant prennent l'adresse telle quelle ; les clients stdio comme Claude Desktop passent par mcp-remote. Choisis le tien et copie le bloc.
https://harvis.dev/api/mcp
$ claude mcp add --transport http harvis https://harvis.dev/api/mcpTest it from a terminal
Not sure the address is reachable from where you are? The MCP Inspector asks the server what tools it has, over the same transport a client uses — nothing to install, and no account. If deploy_site comes back, the server is fine and anything still broken is in your client's config.
$ npx -y @modelcontextprotocol/inspector --cli https://harvis.dev/api/mcp --transport http --method tools/list{
"tools": [
{
"name": "deploy_site",
"description": "Publish a static website to harvis.dev and get a live public URL back instantly...",
"inputSchema": {
"type": "object",
"properties": { "files": { ... }, "name": { ... }, "subdomain": { ... } },
"required": ["files"]
}
}
]
}Rather install from a directory? harvis is listed on Glama's MCP registry, pointing at the same server URL.
Un seul outil, et il fait une seule chose
deploy_site prend chaque fichier dont le site a besoin et le publie. Les chemins sont relatifs à la racine du site et utilisent des barres obliques ; inclus un index.html. Le texte passe tel quel, les images et autres binaires en base64.
| champ | type | ce que c'est |
|---|---|---|
| files | array · requis | Chaque fichier du site : un chemin, son contenu et un encodage text ou base64. Jusqu'à 500 fichiers et 50 Mo au total. |
| name | string | Un nom lisible pour le site, affiché dans le tableau de bord. L'adresse web est générée dans tous les cas. |
| deployToken | string | Le token privé d'un site, renvoyé par le déploiement qui l'a créé. Le transmettre met ce site à jour sur place au lieu d'en créer un nouveau. |
| subdomain | string | L'adresse du site mis à jour. Facultative, et acceptée uniquement avec son deployToken — seule, elle ne prouve rien et ne peut pas autoriser une mise à jour. |
Un lien public, et un lien privé
L'outil renvoie du texte que le modèle te relit. L'URL live est publique et prête à partager. Le lien de revendication est privé : ouvre-le, connecte-toi gratuitement, et le site est rattaché à ton compte, où tu peux le modifier ou le supprimer. D'ici là il reste anonyme, et un site non revendiqué est repris 24 heures après son dernier déploiement — ouvre donc le lien le jour même, car il est irrécupérable s'il est perdu.
Site deployed successfully. Live site: https://happy-panda-482.harvis.page Claim link (private): https://harvis.dev/claim/xxxxxxxx-... Subdomain: happy-panda-482 Deploy token (private): xxxxxxxx-xxxx-... Files hosted: 7
Redéploie pour changer le même site
Chaque déploiement renvoie aussi un deployToken privé. Repasse-le lors d'un appel suivant et le même site est remplacé sur place, en gardant son adresse — avant comme après l'avoir revendiqué. Omets-le et tu obtiens un nouveau site à une nouvelle adresse, ce qu'on veut pour un second brouillon qu'on préfère comparer plutôt qu'écraser.
Questions
Ce qu'on demande avant de coller la config.
Ai-je besoin d'un compte ?
Non. Le serveur MCP n'accepte aucune information d'identification, et un déploiement par ce biais est anonyme — d'où le lien de revendication. L'inscription est gratuite et ne sert qu'à garder le site au-delà de 24 heures ou à le gérer plus tard.
Mon agent peut-il faire autre chose avec ça ?
Non. deploy_site est le seul outil exposé par le serveur, et il ne fait que publier les fichiers que tu lui donnes. Il ne peut pas lire ton compte, lister les sites de qui que ce soit, ni rien supprimer. Tout le reste de harvis.dev vit derrière une clé de compte sur l'API HTTP, à laquelle ce serveur ne touche pas.
Mon client ne gère pas les serveurs MCP distants.
Alors il parle stdio, et mcp-remote fait le pont — c'est exactement ce que font les blocs Claude Desktop et Zed ci-dessus. Il faut Node.js sur ta machine et rien d'autre ; npx récupère le pont au premier lancement.
Qu'est-ce qu'il peut héberger ?
Des fichiers statiques : HTML, CSS, JavaScript, images, polices, tout ce qu'un navigateur peut charger. Le code côté serveur n'est pas exécuté. Les formulaires font exception — ajoute l'attribut harvis-form à un formulaire et les réponses arrivent dans ton tableau de bord, sans backend à toi.
Puis-je m'en servir sans client MCP ?
Oui. Un agent capable de lancer des commandes publie avec npx harvis, et un agent qui ne fait que des requêtes HTTP peut envoyer les fichiers en POST sur /api/upload, sans clé. Les deux chemins sont écrits sur /llms.txt, la page à donner à un assistant qui n'a pas d'outil pour ça.
Pas d'agent sous la main ?
Le même déploiement part de ton terminal, d'un navigateur ou d'un script — le serveur MCP est une porte d'entrée, pas la seule.