Packetrove

Connecter Packetrove à un agent IA

Connectez un client MCP compatible pour utiliser les outils réseau Packetrove. Commencez par la configuration ci-dessous, puis consultez les exemples.

Streamable HTTP · Aucun compte ni clé API nécessaire

https://api.dev.packetrove.com/mcp

Connecter votre client

Avec Claude Code ou Codex installé, ajoutez ce serveur distant. Ces commandes configurent le client ; elles n’installent pas de serveur Packetrove local.

Claude Code

claude mcp add --transport http --scope user packetrove \
  https://api.dev.packetrove.com/mcp
Documentation MCP de Claude Code

Codex

codex mcp add packetrove \
  --url https://api.dev.packetrove.com/mcp
Documentation MCP de Codex

Utilisez /mcp dans votre client pour vérifier la connexion. Confirmez la disponibilité de ces outils : cidr-cover, cidr-subtract, range-to-cidrs, certificate-bundle, public-ip.

Après configuration, le client découvre les outils avec tools/list. Les descriptions et les schémas guident le choix et les arguments. Lire une page web ne configure pas un client et ne lui donne pas accès aux outils.

Identité du serveur

Le serveur fournit l’identité de service suivante, avec sa version publiée. Les noms, descriptions et schémas de chaque outil sont répertoriés séparément via tools/list.

{
  "name": "Packetrove",
  "title": "Packetrove",
  "description": "Open-source IP address and CIDR tools for network calculations and public IP lookup.",
  "websiteUrl": "https://dev.packetrove.com",
  "icons": [
    {
      "src": "https://dev.packetrove.com/packetrove-logo-32x32.png",
      "mimeType": "image/png",
      "sizes": [
        "32x32"
      ]
    }
  ],
  "version": "0.5.0"
}

Les clients décident d’afficher ou non le titre, la description, le site web ou l’icône et peuvent ignorer les champs facultatifs. Une découverte réussie du protocole ne prouve pas qu’un client affiche ces informations. L’icône PNG mesure 32×32 et n’a aucune restriction de thème.

Lire les résultats et traiter les erreurs

Lisez structuredContent ou le JSON du bloc de texte. Conservez les nombres d’adresses sous forme de chaînes décimales ou d’entiers de précision arbitraire ; convertir de grands comptes IPv6 en nombres à virgule flottante perd de la précision.

Les réponses réussies conservent le résultat dans structuredContent et dans le premier bloc de texte JSON, puis ajoutent un resource_link facultatif vers la page anglaise de l’outil. Les liens ne contiennent ni entrées ni résultats et ne restaurent pas le calcul. Chaque client décide d’afficher, d’ignorer ou d’ouvrir les liens ; leur affichage ou citation automatique n’est pas garanti. Ouvrir la page d’IP publique vérifie une nouvelle connexion du navigateur, qui peut différer de celle du client MCP. Les erreurs ne comportent pas de lien vers l’outil.

Si isError vaut true, lisez le JSON d’erreur avant de réessayer. Corrigez INVALID_INPUT et MIXED_ADDRESS_FAMILIES à partir des informations de l’utilisateur. CLIENT_IP_UNAVAILABLE indique l’absence de métadonnées de connexion fiables ; n’inventez pas d’adresse.

Les erreurs métier utilisent le JSON d’erreur partagé. Le SDK MCP valide le protocole. Les données JSON invalides, les types de contenu non pris en charge et les corps trop volumineux sont rejetés au niveau HTTP.

Exécuter un exemple Node.js

Dans un nouveau dossier, enregistre le code dans packetrove-example.mjs, puis exécute les commandes. L’exemple utilise @modelcontextprotocol/client@2.0.0, découvre les outils et appelle l’outil CIDR avec des adresses de documentation.

import { Client, StreamableHTTPClientTransport } from '@modelcontextprotocol/client';

const client = new Client(
  { name: 'packetrove-example', version: "0.5.0" },
  { versionNegotiation: { mode: 'auto' } },
);
try {
  await client.connect(new StreamableHTTPClientTransport(new URL("https://api.dev.packetrove.com/mcp")));
  const serverInfo = client.getServerVersion();
  const { tools } = await client.listTools();
  const result = await client.callTool({
    name: "cidr-cover",
    arguments: {"inputs":["203.0.113.1","203.0.113.2","203.0.113.6"]},
  });
  if (result.isError) throw new Error(JSON.stringify(result.content));
  console.log(serverInfo, tools.map(tool => tool.name), result.structuredContent);
  const links = result.content?.filter(content => content.type === 'resource_link') ?? [];
  console.log(links); // Optional links; opening or presenting them is the client's choice.
} finally {
  await client.close();
}
npm init -y
npm install @modelcontextprotocol/client@2.0.0
node packetrove-example.mjs

Pour le développement local, lance pnpm dev:api et remplace l’URL du serveur par http://localhost:8787/mcp.

Déploiement et limites de connexion

Le serveur accepte les requêtes modernes sans état ainsi que l’initialisation, la découverte et les appels de l’ancien transport Streamable HTTP. Il ne fournit ni sessions persistantes ni flux d’événements serveur autonomes.

Les métadonnées de l’IP publique sont lues pour chaque appel, avec des instances isolées entre clients simultanés. Les résultats et erreurs MCP utilisent Cache-Control: no-store, no-transform. L’application ne conserve ni ne journalise les adresses consultées.

Nous comptons les exécutions avec des événements opérationnels contenant le nom de l’outil, le succès ou l’erreur, un code d’erreur contrôlé et une classification de l’origine de l’appel. Les vérifications automatisées validées peuvent aussi enregistrer un identifiant d’exécution d’automatisation. Les entrées, résultats, adresses consultées, en-têtes de requête bruts et jetons d’automatisation sont exclus. Cloudflare peut ajouter des métadonnées ; consultez la politique de confidentialité pour le traitement et la conservation.

Les anciens noms n’ont pas d’alias de compatibilité : smallest_covering_cidr → cidr-cover, subtract_cidrs → cidr-subtract, get_public_ip → public-ip. Actualise la découverte des outils et les appels enregistrés.

Le chemin /mcp du site n’est pas le service : GET renvoie 404 et POST 405, sans proxy ni redirection des appels. Configure les clients avec https://api.dev.packetrove.com/mcp. Pour ton déploiement, adapte les domaines et les listes exactes distinctes de Host et d’Origin du navigateur ; les clients sans en-tête Origin sont acceptés.

Déploiement, auto-hébergement et vérification en productionPolitique de confidentialitéPublication dans MCP Registry et politique de versionsLire le guide technique MCP du dépôt (en anglais)