Gopaxo

Pour les développeurs et les agents IA

Connectez votre IA à Gopaxo avec notre MCP

Gopaxo expose un serveur Model Context Protocol public qui permet à n'importe quel assistant compatible (Claude Desktop, Claude Code, Cursor, VS Code, Claude Agent SDK…) de comparer les offres train, bus, carpooling et plane, en temps réel et en langage naturel, partout en Europe.

Accès protégé par token : l'endpoint /api/mcp exige un token Bearer personnel. Demandez-le gratuitement via notre form dédié. Réponse par e-mail sous 2 jours ouvrés.

Endpoint
https://www.gopaxo.com/api/mcp
Transport
Streamable HTTP (stateless)
Version serveur
gopaxo-mcp@0.1.0

Qu'est-ce que le MCP ?

Le Model Context Protocol est un standard ouvert publié par Anthropic fin 2024. Il décrit un protocole JSON-RPC 2.0 pour qu'un modèle de langage puisse appeler des outils externes, accéder à des ressources et recevoir des prompts structurés. Les clients majeurs (Claude Desktop, Claude Code, Cursor, VS Code, Cline, Continue…) l'implémentent nativement.

Concrètement, quand vous demandez à votre assistant « trouve-moi un Paris-Lyon pour demain à moins de 30 € », il appelle l'outil search_trips de notre serveur, reçoit une réponse JSON structurée avec tous les trajets disponibles, puis la présente sous une forme lisible pour vous — exactement comme si vous étiez sur gopaxo.com.

Obtenir un token d'accès

L'accès au MCP est soumis à un token Bearer personnel pour protéger nos partenaires transporteurs. Le token est gratuit et délivré sur simple demande en trois étapes :

  1. 1

    Remplir le form

    Nom, e-mail professionnel, organisation et description de l'usage prévu. Votre demande part à dev@gopaxo.com.

  2. 2

    Validation Gopaxo

    Nous étudions la demande, générons un token unique et l'ajoutons au registre des tokens autorisés. Temps moyen : moins de 2 jours ouvrés.

  3. 3

    Réception du token

    Vous recevez le token par e-mail. Collez-le dans le header Authorization de votre client MCP — la config détaillée est plus bas.

Demander un token maintenant

Installation

Claude Desktop / Claude.ai

Ouvrez Réglages → Developer → Edit Config (ou manuellement ~/Library/Application Support/Claude/claude_desktop_config.json sur macOS), puis ajoutez :

{
  "mcpServers": {
    "gopaxo": {
      "transport": "http",
      "url": "https://www.gopaxo.com/api/mcp",
      "headers": {
        "Authorization": "Bearer VOTRE_TOKEN_GOPAXO"
      }
    }
  }
}

Redémarrez Claude Desktop — les quatre outils Gopaxo apparaissent dans le menu « Available tools ».

Claude Code (CLI)

Une commande, et le MCP est ajouté à votre projet :

claude mcp add --transport http gopaxo https://www.gopaxo.com/api/mcp \
    --header "Authorization: Bearer VOTRE_TOKEN_GOPAXO"

Validez ensuite dans Claude Code avec /mcp pour lister les serveurs actifs.

Cursor / VS Code

Dans le fichier .cursor/mcp.json (Cursor) ou la configuration MCP de VS Code :

{
  "mcpServers": {
    "gopaxo": {
      "url": "https://www.gopaxo.com/api/mcp",
      "headers": {
        "Authorization": "Bearer VOTRE_TOKEN_GOPAXO"
      }
    }
  }
}

Rechargez la fenêtre pour que l'agent détecte les outils.

Tester avec MCP Inspector

Pour explorer le serveur sans intégration préalable, MCP Inspector ouvre une interface web d'introspection :

npx @modelcontextprotocol/inspector https://www.gopaxo.com/api/mcp \
    --header "Authorization: Bearer VOTRE_TOKEN_GOPAXO"

L'outil affiche la liste des tools, leur JSON-Schema, et permet d'exécuter des appels de test.

Usage programmatique — TypeScript

Via le SDK officiel @modelcontextprotocol/sdk :

import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";

const transport = new StreamableHTTPClientTransport(
  new URL("https://www.gopaxo.com/api/mcp"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${process.env.GOPAXO_MCP_TOKEN}`,
      },
    },
  },
);
const client = new Client({ name: "my-agent", version: "0.1.0" });
await client.connect(transport);

// Find the cheapest Paris → Lyon for tomorrow
const trips = await client.callTool({
  name: "search_trips",
  arguments: {
    from: "Paris",
    to: "Lyon",
    departureDate: "2026-04-25",
    passengers: "adulte",
  },
});
console.log(trips.structuredContent);

Outils exposés

Quatre tools couvrent l'intégralité du flux Gopaxo, de la résolution d'une ville à la proposition d'un itinéraire chiffré. Toutes les opérations sont en lecture seule (aucune réservation côté MCP — la finalisation se fait sur le site du transporteur partenaire via le lien renvoyé).

autocomplete_cities

read-onlyidempotentopen-world

Resolve a free-text city query to a list of Gopaxo / Tictactrip stops (city groups). Returns the 1-7 best matches, each with a human-readable label, an ISO-2 country code, and the gpuid needed for precise follow-up calls. Use this tool before `search_trips` whenever the user input is ambiguous or you need the canonical name.

Voir le JSON-Schema des paramètres
{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 2,
      "description": "Free-text search, e.g. 'paris', 'bordeaux', 'london', 'bcn'. The Tictactrip autocomplete is fuzzy and accepts accents and partial names."
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

search_trips

read-onlyopen-world

Compare all available outbound (and optional return) trips between two locations on a given date, across train, bus, carpool and plane partners. Returns normalised trips with price in euros, duration, provider, stops and a partner `redirectionLink` to finalise the booking.

Voir le JSON-Schema des paramètres
{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "description": "Origin city or station name (e.g. 'Paris', 'Lyon', 'Londres'). Prefer the label returned by the autocomplete tool for exact matches."
    },
    "to": {
      "type": "string",
      "description": "Destination city or station name."
    },
    "fromId": {
      "type": "string",
      "description": "Optional Tictactrip gpuid for the origin. When absent, the server resolves it via autocomplete."
    },
    "toId": {
      "type": "string",
      "description": "Optional Tictactrip gpuid for the destination."
    },
    "departureDate": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Date of the outbound trip in ISO 8601 (YYYY-MM-DD). Example: '2026-05-03'."
    },
    "returnDate": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Optional return date (YYYY-MM-DD). When provided, the response includes a `returnTrips` array. Omit for a one-way search."
    },
    "passengers": {
      "type": "string",
      "description": "Comma-separated passenger types. Allowed values: adulte, jeune, senior, enfant. Defaults to 'adulte' (1 adult).",
      "default": "adulte"
    }
  },
  "required": [
    "from",
    "to",
    "departureDate"
  ],
  "additionalProperties": false
}

price_calendar

read-onlyidempotentopen-world

Return the cheapest price per day for a given origin/destination around a pivot date (±3 to ±5 days, as 3, 5, 7 or 11-day windows). Useful when the user wants to know if moving their trip by a day or two changes the price.

Voir le JSON-Schema des paramètres
{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "description": "Origin label."
    },
    "to": {
      "type": "string",
      "description": "Destination label."
    },
    "fromId": {
      "type": "string",
      "description": "Optional origin gpuid."
    },
    "toId": {
      "type": "string",
      "description": "Optional destination gpuid."
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Centre date (YYYY-MM-DD)."
    },
    "days": {
      "type": "integer",
      "minimum": 3,
      "maximum": 11,
      "default": 7,
      "description": "Total window size centred on `date` (3, 5, 7 or 11 days)."
    },
    "passengers": {
      "type": "string",
      "default": "adulte",
      "description": "Passenger composition (same format as search_trips)."
    }
  },
  "required": [
    "from",
    "to",
    "date"
  ],
  "additionalProperties": false
}

popular_destinations

read-onlyidempotentopen-world

List the most popular destinations from (or to) a given city, using Gopaxo's curated Tictactrip top-cities dataset. Use this for inspiration when the user has only a starting city in mind.

Voir le JSON-Schema des paramètres
{
  "type": "object",
  "properties": {
    "uniqueName": {
      "type": "string",
      "description": "Tictactrip `unique_name` of the pivot city (for example 'paris', 'lyon', 'berlin'). Use autocomplete_cities to resolve."
    },
    "direction": {
      "type": "string",
      "enum": [
        "from",
        "to"
      ],
      "default": "from",
      "description": "Whether to list popular destinations *from* the city ('from') or popular origins *to* the city ('to')."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 12,
      "description": "Max number of destinations to return (1-50)."
    }
  },
  "required": [
    "uniqueName"
  ],
  "additionalProperties": false
}

Exemples d'usage en langage naturel

  • « Trouve-moi le train le moins cher Paris → Bordeaux pour vendredi prochain. »
  • « Compare les offres Lyon-Barcelone pour le week-end, train et bus compris. »
  • « Quelles sont les 10 destinations les plus populaires au départ de Lyon ? »
  • « Donne-moi le prix le plus bas Paris-Marseille sur les 7 prochains jours. »
  • « Cherche un round-trip Paris-Milan en TGV, départ mardi, retour dimanche, 2 adultes. »
  • « Y a-t-il un bus direct Lille-Amsterdam demain ? Indique-moi le prix. »

Questions fréquentes

Qu'est-ce que le MCP (Model Context Protocol) ?

Le Model Context Protocol est un standard ouvert, publié par Anthropic fin 2024, qui permet à un modèle de langage (Claude, ChatGPT, Gemini, Mistral, etc.) d'appeler des outils externes de façon structurée. Un serveur MCP expose un catalogue d'outils (tools) et une description JSON-Schema de leurs paramètres ; un client MCP (Claude Desktop, Claude Code, Cursor, VS Code, le SDK Claude Agent, etc.) peut alors appeler ces outils au nom de l'utilisateur.

Comment Gopaxo utilise le MCP ?

Gopaxo expose un serveur MCP à l'adresse https://www.gopaxo.com/api/mcp via le transport Streamable HTTP. L'endpoint est protégé par un token Bearer personnel. Le serveur propose quatre outils : autocomplete_cities (autocomplétion ville/gare), search_trips (comparaison d'offres train/bus/plane/carpooling pour un trajet et une date), price_calendar (prix minimum autour d'une date sur ±3 à ±5 jours) et popular_destinations (destinations les plus recherchées depuis ou vers une ville). Vous pouvez brancher ce MCP à votre assistant IA et lui demander en langage naturel « trouve-moi un aller Paris-Lyon demain à moins de 30 € » ou « compare un Paris-Barcelone sur la semaine prochaine ».

Comment obtenir un token d'accès ?

Rendez-vous sur la page /mcp/request-token et remplissez le form : nom, e-mail professionnel, organisation, usage prévu et volume estimé. Votre demande est transmise par e-mail à dev@gopaxo.com. L'équipe Gopaxo étudie la demande, génère un token unique, l'ajoute au registre des tokens autorisés puis vous le renvoie par e-mail sous 2 jours ouvrés. Le service est gratuit.

Comment passer le token dans un client MCP ?

Le token s'ajoute au header Authorization: Bearer <token>. Claude Desktop, Cursor et VS Code acceptent un champ headers dans leur fichier de configuration MCP. En CLI, Claude Code permet de le passer avec --header 'Authorization: Bearer <token>'. En fallback pour les clients qui ne gèrent pas les headers personnalisés, vous pouvez l'inclure en paramètre de requête : /api/mcp?token=<token>.

Quels clients MCP sont compatibles avec le serveur Gopaxo ?

Tout client supportant le transport Streamable HTTP du protocole MCP (version draft 2025-03-26 et ultérieures). Les clients grand public les plus courants sont Claude Desktop, Claude Code (CLI), Cursor, VS Code avec l'extension Copilot MCP, Cline, Continue, ainsi que les applications développées avec le Claude Agent SDK ou les bibliothèques MCP officielles en TypeScript / Python.

Est-ce gratuit ?

Oui. Gopaxo est un comparateur multimodal gratuit, et l'accès via MCP partage exactement la même logique que le site web : pas de frais de service, pas de majoration. Les prix retournés sont les prix officiels des transporteurs partenaires. La finalisation de la réservation se fait sur le site du transporteur via le champ redirectionLink renvoyé par search_trips. Le token d'accès est délivré gratuitement sur simple demande.

Quelles données renvoie le serveur MCP ?

Chaque appel renvoie une réponse JSON structurée (compatible avec le champ structuredContent du MCP). search_trips retourne pour chaque offre : prix en euros, durée, heure de départ/arrivée, gare de départ/arrivée, nombre de correspondances, transporteur, type de transport, empreinte CO₂ quand disponible, inclusion des bagages et lien partenaire pour finaliser la réservation.

Que se passe-t-il si j'utilise un token invalide ?

Le serveur renvoie une réponse HTTP 401 Unauthorized avec un header WWW-Authenticate: Bearer realm="Gopaxo MCP". Le corps JSON indique où demander un token. La plupart des clients MCP affichent alors un message d'erreur et invitent à corriger la configuration.

Puis-je utiliser le MCP Gopaxo dans un produit commercial ?

Oui, en respectant nos conditions générales d'utilisation et en citant « propulsé par Gopaxo » de manière visible. Les prix renvoyés doivent être affichés tels quels (pas de marque blanche non concertée). Pour une intégration plus profonde (billets pré-remplis, branding complet, co-marketing), précisez-le dans votre demande de token ou contactez-nous.

Comment tester rapidement le serveur MCP ?

Une fois votre token reçu, ouvrez MCP Inspector via la commande npx @modelcontextprotocol/inspector, pointez vers https://www.gopaxo.com/api/mcp et ajoutez un header Authorization: Bearer <votre-token>. L'interface web liste les outils exposés et permet de les exécuter interactivement.

Besoin d'un accès dédié ou d'un support développeur ?

Écrivez-nous à contact@gopaxo.com : intégration produit, rate limits relevés, co-marketing, ou simple feedback sur le MCP.

Nous contacter