Gopaxo

MCP Gopaxo — Connectez votre IA au comparateur train, bus et plane

Serveur Model Context Protocol public de Gopaxo : branchez Claude, Cursor ou votre agent IA à /api/mcp et comparez train, bus, carpooling et plane en langage naturel.

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 Model Context Protocol ?

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.

Demander 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. »

Les questions les plus fréquentes sur Gopaxo

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.

Comment Gopaxo utilise le MCP ?

Gopaxo expose un serveur MCP à l'adresse /api/mcp via le transport Streamable HTTP, protégé par un token Bearer. Quatre outils sont disponibles : autocomplete_cities, search_trips, price_calendar, popular_destinations.

Comment obtenir un token d'accès ?

Rendez-vous sur /mcp/request-token et remplissez le formulaire. L'équipe Gopaxo étudie la demande et vous renvoie un token par e-mail sous 2 jours ouvrés. C'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 configuration MCP.

Quels clients MCP sont compatibles ?

Tout client supportant le transport Streamable HTTP du MCP : Claude Desktop, Claude Code, Cursor, VS Code, Cline, Continue, ainsi que le Claude Agent SDK.

Est-ce gratuit ?

Oui. Gopaxo est un comparateur gratuit, et l'accès via MCP suit la même logique : pas de frais de service, pas de majoration. Le token est délivré gratuitement.

Quelles données renvoie le serveur MCP ?

Chaque appel renvoie une réponse JSON structurée. search_trips retourne prix, durée, heures, gares, correspondances, transporteur, empreinte CO₂ et lien partenaire.

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

Le serveur renvoie 401 Unauthorized avec un header WWW-Authenticate indiquant où demander un token.

Puis-je utiliser le MCP dans un produit commercial ?

Oui, en respectant nos CGU et en citant « propulsé par Gopaxo » de manière visible. Les prix doivent être affichés tels quels.

Comment tester rapidement le serveur MCP ?

Ouvrez MCP Inspector via npx @modelcontextprotocol/inspector et pointez vers /api/mcp avec votre token.

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