Gopaxo

MCP Gopaxo — Collega la tua IA al comparatore treno, autobus e aereo

Server Model Context Protocol pubblico di Gopaxo: collega Claude, Cursor o il tuo agente IA a /api/mcp e confronta treno, autobus, carpooling e aereo in linguaggio naturale.

Accesso protetto da token : l'endpoint /api/mcp richiede un token Bearer personale. Richiedilo gratuitamente tramite il nostro modulo dedicato. Risposta via e-mail entro 2 giorni lavorativi.

Endpoint
https://www.gopaxo.com/api/mcp
Trasporto
Streamable HTTP (stateless)
Versione del server
gopaxo-mcp@0.1.0

Che cos'è il Model Context Protocol?

Il Model Context Protocol è uno standard aperto pubblicato da Anthropic a fine 2024. Descrive un protocollo JSON-RPC 2.0 affinché un modello di linguaggio possa chiamare strumenti esterni, accedere a risorse e ricevere prompt strutturati. I principali client (Claude Desktop, Claude Code, Cursor, VS Code, Cline, Continue…) lo implementano nativamente.

In pratica, quando chiedi al tuo assistente «trovami un Paris-Lyon per domani a meno di 30 €», chiama lo strumento search_trips del nostro server, riceve una risposta JSON strutturata con tutti i viaggi disponibili e la presenta in forma leggibile — esattamente come se fossi su gopaxo.com.

Richiedi un token di accesso

L'accesso al MCP è subordinato a un token Bearer personale per proteggere i nostri vettori partner. Il token è gratuito e rilasciato su semplice richiesta in tre passaggi:

  1. 1

    Compilare il modulo

    Nome, e-mail professionale, organizzazione e descrizione dell'uso previsto. La tua richiesta arriva a dev@gopaxo.com.

  2. 2

    Convalida Gopaxo

    Esaminiamo la richiesta, generiamo un token univoco e lo aggiungiamo al registro dei token autorizzati. Tempo medio: meno di 2 giorni lavorativi.

  3. 3

    Ricezione del token

    Ricevi il token via e-mail. Incollalo nell'header Authorization del tuo client MCP — la configurazione dettagliata è più sotto.

Richiedi un token ora

Installazione

Claude Desktop / Claude.ai

Apri Impostazioni → Developer → Edit Config (o manualmente ~/Library/Application Support/Claude/claude_desktop_config.json su macOS), poi aggiungi:

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

Riavvia Claude Desktop — i quattro strumenti Gopaxo appaiono nel menu «Available tools».

Claude Code (CLI)

Un comando e l'MCP viene aggiunto al tuo progetto:

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

Convalida poi in Claude Code con /mcp per elencare i server attivi.

Cursor / VS Code

Nel file .cursor/mcp.json (Cursor) o nella configurazione MCP di VS Code:

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

Ricarica la finestra affinché l'agente rilevi gli strumenti.

Testare con MCP Inspector

Per esplorare il server senza integrazione preliminare, MCP Inspector apre un'interfaccia web di introspezione:

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

Lo strumento mostra l'elenco dei tools, il loro JSON-Schema e permette di eseguire chiamate di test.

Uso programmatico — TypeScript

Tramite l'SDK ufficiale @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);

Strumenti esposti

Quattro strumenti coprono l'intero flusso Gopaxo, dalla risoluzione di una città alla proposta di un itinerario con prezzo. Tutte le operazioni sono in sola lettura (nessuna prenotazione lato MCP — la finalizzazione avviene sul sito del vettore partner tramite il link restituito).

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.

Vedere il JSON-Schema dei parametri
{
  "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.

Vedere il JSON-Schema dei parametri
{
  "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.

Vedere il JSON-Schema dei parametri
{
  "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.

Vedere il JSON-Schema dei parametri
{
  "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
}

Esempi d'uso in linguaggio naturale

  • «Trovami il treno più economico Paris → Bordeaux per il prossimo venerdì.»
  • «Confronta le offerte Lyon-Barcellona per il weekend, treno e autobus inclusi.»
  • «Quali sono le 10 destinazioni più popolari in partenza da Lione?»
  • «Dammi il prezzo più basso Paris-Marsiglia nei prossimi 7 giorni.»
  • «Cerca un round-trip Paris-Milano in TGV, partenza martedì, ritorno domenica, 2 adulti.»
  • «C'è un autobus diretto Lille-Amsterdam domani? Dimmi il prezzo.»

Le domande più frequenti su Gopaxo

Cos'è il MCP (Model Context Protocol)?

Il Model Context Protocol è uno standard aperto pubblicato da Anthropic a fine 2024 che permette a un modello di linguaggio (Claude, ChatGPT, Gemini, Mistral, ecc.) di chiamare strumenti esterni in modo strutturato.

Come usa Gopaxo il MCP?

Gopaxo espone un server MCP su /api/mcp tramite Streamable HTTP, protetto da un token Bearer. Sono disponibili quattro strumenti: autocomplete_cities, search_trips, price_calendar, popular_destinations.

Come ottengo un token di accesso?

Vai su /mcp/request-token e compila il modulo. Il team Gopaxo esamina la richiesta e ti invia un token via email entro 2 giorni lavorativi. È gratuito.

Come passo il token a un client MCP?

Il token va nell'header Authorization: Bearer <token>. Claude Desktop, Cursor e VS Code accettano un campo headers nella loro configurazione MCP.

Quali client MCP sono compatibili?

Qualsiasi client che supporti il trasporto Streamable HTTP di MCP: Claude Desktop, Claude Code, Cursor, VS Code, Cline, Continue, e il Claude Agent SDK.

È gratuito?

Sì. Gopaxo è un comparatore gratuito, e l'accesso via MCP segue le stesse regole: niente commissioni, niente maggiorazioni. Il token è gratuito.

Quali dati restituisce il server MCP?

Ogni chiamata restituisce una risposta JSON strutturata. search_trips restituisce prezzo, durata, orari, stazioni, coincidenze, vettore, impronta CO₂ e link partner.

Cosa succede se uso un token non valido?

Il server restituisce 401 Unauthorized con un header WWW-Authenticate che indica dove richiedere un token.

Posso usare il MCP in un prodotto commerciale?

Sì, rispettando le nostre CGU e citando visibilmente «powered by Gopaxo». I prezzi vanno mostrati così come sono.

Come testare rapidamente il server MCP?

Apri MCP Inspector con npx @modelcontextprotocol/inspector e puntalo a /api/mcp con il tuo token.

Hai bisogno di un accesso dedicato o di un supporto sviluppatori?

Scrivici a contact@gopaxo.com: integrazione di prodotto, rate limit aumentati, co-marketing o semplice feedback sull'MCP.

Contattaci