MCP Tools ​

The All Aboard MCP server exposes the following tools to the model. The model decides which tools to call based on the task at hand.

list_documentation ​

Lists all available documentation sections and pages with short descriptions. Use this first to discover what is available before fetching specific content.

Parameters: None

Example output:

## Getting Started
- Introduction: Overview of All Aboard products and quick start guide
- Getting Started: Prerequisites, API endpoints, authentication setup
...
## Getting Started
- Introduction: Overview of All Aboard products and quick start guide
- Getting Started: Prerequisites, API endpoints, authentication setup
...

read_documentation ​

Fetches one or more documentation pages by slug and returns their content as clean plain-text markdown. Always call list_documentation first to find relevant slugs, then fetch only the pages you need.

A slug is the URL path without the leading slash:

SlugPage
"" or "index"Introduction
"intro/getting-started"Getting Started
"tickets/index"Finding Journeys
"tickets/book-tickets"Booking Tickets
"payments/index"Payment Methods
"ref/errors"Error Codes

Pass multiple slugs to fetch several pages in a single call.

Parameters:

ParameterTypeDescription
slugsstringOne or more page slugs, comma-separated (e.g. "tickets/index,tickets/book-tickets")

explore_schema ​

Browses the live GraphQL schema. Returns operation signatures with argument types and return types, or a list of available types.

Parameters:

ParameterTypeDescription
categoryqueries | mutations | subscriptions | typesWhich category to list
filterstring (optional)Case-insensitive name filter

Example — list all queries containing "journey":

explore_schema({ category: "queries", filter: "journey" })
explore_schema({ category: "queries", filter: "journey" })

Example output:

- **journeys**(origin: LocationInput!, destination: LocationInput!, date: Date!, filter: JourneyFilterInput): [Journey!]!
  Find available train routes between two locations on a specific date.
- **journeyOffer**(journeyId: ID!, passengers: [PassengerPlaceholderInput!]!): JourneyOffer!
  Get pricing and offers for a journey.
- **journeys**(origin: LocationInput!, destination: LocationInput!, date: Date!, filter: JourneyFilterInput): [Journey!]!
  Find available train routes between two locations on a specific date.
- **journeyOffer**(journeyId: ID!, passengers: [PassengerPlaceholderInput!]!): JourneyOffer!
  Get pricing and offers for a journey.

get_type ​

Returns full details of a specific GraphQL type: all fields with their argument types and return types, enum values, input fields, interfaces implemented, and possible types for unions/interfaces.

Parameters:

ParameterTypeDescription
namestringExact name of the type (e.g. Journey, Booking, PassBundle)

Example:

get_type({ name: "Booking" })
get_type({ name: "Booking" })

If the type is not found, the tool returns suggestions for similarly named types.

execute_query ​

Executes a read-only GraphQL query against the All Aboard API and returns the JSON response. Use this tool only for query operations — use execute_mutation for mutations.

Authentication is handled automatically via OAuth 2.1 during MCP connection setup. No API key parameter is required.

If the tool returns an authentication error, reconnect your MCP client to https://mcp.allaboard.eu/mcp to go through the OAuth flow again.

Parameters:

ParameterTypeDescription
querystringGraphQL query string to execute
variablesobject (optional)Variables for the operation
operationNamestring (optional)Name of the operation to execute when the document contains multiple named operations
sessionIdstring (optional)Session ID override. If omitted, a stable session ID for this MCP connection is used automatically

Example:

graphql
query FindJourneys {
  journeys(
    origin: { uid: "Sb0ISveC" }
    destination: { uid: "p6fERure" }
    date: "2025-06-15"
  ) {
    id
    itinerary {
      __typename
      ... on SegmentCollection {
        segments {
          departureAt
          arrivalAt
          duration
        }
      }
      ... on Stopover {
        duration
      }
    }
  }
}
query FindJourneys {
  journeys(
    origin: { uid: "Sb0ISveC" }
    destination: { uid: "p6fERure" }
    date: "2025-06-15"
  ) {
    id
    itinerary {
      __typename
      ... on SegmentCollection {
        segments {
          departureAt
          arrivalAt
          duration
        }
      }
      ... on Stopover {
        duration
      }
    }
  }
}

GraphQL errors in the response are surfaced clearly alongside the full response body for debugging.

execute_mutation ​

Executes a GraphQL mutation against the All Aboard API. Use this for operations that create, update, or delete data — for example, booking tickets or creating orders. Use execute_query for read-only queries.

Authentication is handled automatically via OAuth 2.1, the same as execute_query.

Mutations have real effects

Mutations in the live environment create real bookings and charges. Make sure you understand the operation before executing it.

Parameters:

ParameterTypeDescription
querystringGraphQL mutation string to execute
variablesobject (optional)Variables for the operation
operationNamestring (optional)Name of the operation to execute when the document contains multiple named operations
sessionIdstring (optional)Session ID override. If omitted, a stable session ID for this MCP connection is used automatically

Example:

graphql
mutation CreateBooking($offerIds: [ID!]!) {
  createBooking(offerIds: $offerIds) {
    id
    expiresAt
    totalPrice {
      amount
      currency
    }
  }
}
mutation CreateBooking($offerIds: [ID!]!) {
  createBooking(offerIds: $offerIds) {
    id
    expiresAt
    totalPrice {
      amount
      currency
    }
  }
}

GraphQL errors in the response are surfaced clearly alongside the full response body for debugging.