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 documentation sections and pages, each with a link and the page's first sentence. It returns the site's llms.txt. Use this first to discover what is available before fetching specific content.
Parameters: None
Example output (abridged):
# All Aboard API Documentation
> Tools for selling train tickets and rail passes across Europe via GraphQL API, embeds, and dashboard.
## Getting Started
- [Introduction](https://docs.allaboard.eu/index.md): The All Aboard API provides tools for selling train tickets and rail passes across Europe.
- [Getting Started](https://docs.allaboard.eu/intro/getting-started.md): Before you start, you'll need:
...# All Aboard API Documentation
> Tools for selling train tickets and rail passes across Europe via GraphQL API, embeds, and dashboard.
## Getting Started
- [Introduction](https://docs.allaboard.eu/index.md): The All Aboard API provides tools for selling train tickets and rail passes across Europe.
- [Getting Started](https://docs.allaboard.eu/intro/getting-started.md): Before you start, you'll need:
...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 page's path without the leading slash or .md. The Introduction is index, and section index pages end in /index:
| Slug | Page |
|---|---|
"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:
| Parameter | Type | Description |
|---|---|---|
slugs | string | One 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:
| Parameter | Type | Description |
|---|---|---|
category | queries | mutations | subscriptions | types | Which category to list |
filter | string (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 (abridged):
Found 8 queries:
- **journeys**(origin: LocationInput!, destination: LocationInput!, date: Date!, filter: JourneyFilterInput, via: [ViaInput!]): [Journey!]!
Get all possible journeys between origin and destination on given date
See: https://docs.allaboard.eu/tickets/
- **journeyOffer**(journeyId: ID!, passengers: [PassengerPlaceholderInput!]!, currency: String = "EUR"): JourneyOffer!
This will check live availablity with the train operators and return the given
journey with priced offers. Call this when the user has requested prices.
See: https://docs.allaboard.eu/tickets/journey-offer
...Found 8 queries:
- **journeys**(origin: LocationInput!, destination: LocationInput!, date: Date!, filter: JourneyFilterInput, via: [ViaInput!]): [Journey!]!
Get all possible journeys between origin and destination on given date
See: https://docs.allaboard.eu/tickets/
- **journeyOffer**(journeyId: ID!, passengers: [PassengerPlaceholderInput!]!, currency: String = "EUR"): JourneyOffer!
This will check live availablity with the train operators and return the given
journey with priced offers. Call this when the user has requested prices.
See: https://docs.allaboard.eu/tickets/journey-offer
...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:
| Parameter | Type | Description |
|---|---|---|
name | string | Exact 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:
| Parameter | Type | Description |
|---|---|---|
query | string | GraphQL query string to execute |
variables | object (optional) | Variables for the operation |
operationName | string (optional) | Name of the operation to execute when the document contains multiple named operations |
sessionId | string (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: "2026-11-06"
) {
id
itinerary {
__typename
... on SegmentCollection {
segments {
departureAt
arrivalAt
duration
}
}
... on Stopover {
duration
}
}
}
}query FindJourneys {
journeys(
origin: { uid: "Sb0ISveC" }
destination: { uid: "p6fERure" }
date: "2026-11-06"
) {
id
itinerary {
__typename
... on SegmentCollection {
segments {
departureAt
arrivalAt
duration
}
}
... on Stopover {
duration
}
}
}
}GraphQL errors in the response are surfaced 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, such as 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:
| Parameter | Type | Description |
|---|---|---|
query | string | GraphQL mutation string to execute |
variables | object (optional) | Variables for the operation |
operationName | string (optional) | Name of the operation to execute when the document contains multiple named operations |
sessionId | string (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 alongside the full response body for debugging.