Gopaxo

MCP Gopaxo — Conecta tu IA al comparador de tren, autobús y avión

Servidor Model Context Protocol público de Gopaxo: conecta Claude, Cursor o tu agente IA a /api/mcp y compara tren, autobús, carpooling y avión en lenguaje natural.

Acceso protegido por token : el endpoint /api/mcp requiere un token Bearer personal. Solicítalo gratis a través de nuestro formulario dedicado. Respuesta por e-mail en 2 días hábiles.

Endpoint
https://www.gopaxo.com/api/mcp
Transporte
Streamable HTTP (sin estado)
Versión del servidor
gopaxo-mcp@0.1.0

¿Qué es el Model Context Protocol?

El Model Context Protocol es un estándar abierto publicado por Anthropic a finales de 2024. Describe un protocolo JSON-RPC 2.0 para que un modelo de lenguaje pueda llamar a herramientas externas, acceder a recursos y recibir prompts estructurados. Los principales clientes (Claude Desktop, Claude Code, Cursor, VS Code, Cline, Continue…) lo implementan de forma nativa.

En la práctica, cuando le pides a tu asistente «búscame un Paris-Lyon para mañana por menos de 30 €», llama a la herramienta search_trips de nuestro servidor, recibe una respuesta JSON estructurada con todos los viajes disponibles y te la presenta de forma legible, exactamente como si estuvieras en gopaxo.com.

Solicitar un token de acceso

El acceso al MCP está sujeto a un token Bearer personal para proteger a nuestros transportistas colaboradores. El token es gratuito y se entrega bajo simple petición en tres pasos:

  1. 1

    Rellenar el formulario

    Nombre, e-mail profesional, organización y descripción del uso previsto. Tu solicitud llega a dev@gopaxo.com.

  2. 2

    Validación de Gopaxo

    Estudiamos la solicitud, generamos un token único y lo añadimos al registro de tokens autorizados. Tiempo medio: menos de 2 días hábiles.

  3. 3

    Recepción del token

    Recibes el token por e-mail. Pégalo en la cabecera Authorization de tu cliente MCP — la configuración detallada está más abajo.

Solicitar un token ahora

Instalación

Claude Desktop / Claude.ai

Abre Ajustes → Developer → Edit Config (o manualmente ~/Library/Application Support/Claude/claude_desktop_config.json en macOS), luego añade:

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

Reinicia Claude Desktop — las cuatro herramientas de Gopaxo aparecen en el menú «Available tools».

Claude Code (CLI)

Un comando y el MCP se añade a tu proyecto:

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

Valida después en Claude Code con /mcp para listar los servidores activos.

Cursor / VS Code

En el archivo .cursor/mcp.json (Cursor) o la configuración MCP de VS Code:

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

Recarga la ventana para que el agente detecte las herramientas.

Probar con MCP Inspector

Para explorar el servidor sin integración previa, MCP Inspector abre una interfaz web de introspección:

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

La herramienta muestra la lista de tools, su JSON-Schema y permite ejecutar llamadas de prueba.

Uso programático — TypeScript

A través del SDK oficial @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);

Herramientas expuestas

Cuatro herramientas cubren todo el flujo de Gopaxo, desde resolver una ciudad hasta proponer un itinerario con precio. Todas las operaciones son de solo lectura (ninguna reserva en el lado MCP — la finalización se realiza en la web del transportista colaborador a través del enlace devuelto).

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.

Ver el JSON-Schema de los parámetros
{
  "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.

Ver el JSON-Schema de los parámetros
{
  "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.

Ver el JSON-Schema de los parámetros
{
  "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.

Ver el JSON-Schema de los parámetros
{
  "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
}

Ejemplos de uso en lenguaje natural

  • «Encuéntrame el tren más barato Paris → Burdeos para el próximo viernes.»
  • «Compara ofertas Lyon-Barcelona para el fin de semana, tren y autobús incluidos.»
  • «¿Cuáles son los 10 destinos más populares saliendo de Lyon?»
  • «Dame el precio más bajo Paris-Marsella en los próximos 7 días.»
  • «Busca un round-trip Paris-Milán en TGV, salida martes, vuelta domingo, 2 adultos.»
  • «¿Hay un autobús directo Lille-Ámsterdam mañana? Dime el precio.»

Las preguntas más frecuentes sobre Gopaxo

¿Qué es MCP (Model Context Protocol)?

Model Context Protocol es un estándar abierto publicado por Anthropic a finales de 2024 que permite a un modelo de lenguaje (Claude, ChatGPT, Gemini, Mistral, etc.) llamar a herramientas externas de forma estructurada.

¿Cómo usa Gopaxo el MCP?

Gopaxo expone un servidor MCP en /api/mcp por Streamable HTTP, protegido por un token Bearer. Hay cuatro herramientas disponibles: autocomplete_cities, search_trips, price_calendar, popular_destinations.

¿Cómo obtengo un token de acceso?

Ve a /mcp/request-token y rellena el formulario. El equipo de Gopaxo revisa la solicitud y te envía un token por email en 2 días laborables. Es gratuito.

¿Cómo paso el token a un cliente MCP?

El token va en el header Authorization: Bearer <token>. Claude Desktop, Cursor y VS Code aceptan un campo headers en su configuración MCP.

¿Qué clientes MCP son compatibles?

Cualquier cliente que soporte el transporte Streamable HTTP de MCP: Claude Desktop, Claude Code, Cursor, VS Code, Cline, Continue, además del Claude Agent SDK.

¿Es gratuito?

Sí. Gopaxo es un comparador gratuito, y el acceso por MCP sigue las mismas reglas: sin costes de servicio, sin recargo. El token se entrega gratis.

¿Qué datos devuelve el servidor MCP?

Cada llamada devuelve una respuesta JSON estructurada. search_trips devuelve precio, duración, horarios, estaciones, conexiones, transportista, huella de CO₂ y enlace del partner.

¿Qué pasa si uso un token no válido?

El servidor devuelve 401 Unauthorized con un header WWW-Authenticate que indica dónde solicitar un token.

¿Puedo usar el MCP en un producto comercial?

Sí, respetando nuestras CGU y citando visiblemente «propulsado por Gopaxo». Los precios deben mostrarse tal cual.

¿Cómo probar rápido el servidor MCP?

Abre MCP Inspector con npx @modelcontextprotocol/inspector y apunta a /api/mcp con tu token.

¿Necesitas un acceso dedicado o soporte para desarrolladores?

Escríbenos a contact@gopaxo.com: integración de producto, límites de tasa ampliados, co-marketing o simple feedback sobre el MCP.

Contáctanos