Skip to main content
Glama
viraildev

virail-mcp

Official
by viraildev

virail-mcp

An MCP server for Virail transport search — trains, buses, flights, ferries, and carpooling across Europe and beyond. Gives any MCP-compatible AI agent (Claude Desktop, Cursor, Claude.ai, etc.) the ability to search real, live travel connections with real prices, schedules, and booking links.

Hosted endpoint

Virail runs this server for you at:

https://virail.ai/mcp

No install, no API key — just point your MCP client at that URL. For clients that support remote MCP servers via a config file, the shape typically looks like:

{
  "mcpServers": {
    "virail": {
      "url": "https://virail.ai/mcp"
    }
  }
}

The exact config key/format for adding a remote MCP server varies by client and changes over time — check your client's own docs for "remote MCP server" or "custom connector" setup if the snippet above doesn't match what it expects. Claude.ai / Claude Desktop, for instance, let you add one directly from Settings without editing a config file at all.

This HTTP endpoint is the only supported way to use virail-mcp right now — there's no local/CLI install.

Step-by-step setup for Claude.ai, Claude Desktop, Cursor, and other clients: virail.ai/mcp-setup.

Related MCP server: mcp-irail

Tools

search_transport

Search for connections between two places on a date.

Argument

Type

Required

Description

departure

string

yes

Origin city or station name

arrival

string

yes

Destination city or station name

date

string

yes

Travel date, YYYY-MM-DD

adults

number

no

Number of adult passengers (default 1)

tld

string

no

Virail market, e.g. com, it, fr, de, es (default com)

locale

string

no

Response language, e.g. en, it, fr (default en)

currency

string

no

Price currency, e.g. EUR, USD (default EUR)

Returns a list of trip options, each with departure/arrival times and stations, duration, number of transfers, total price, carrier(s), transport mode(s), and a booking link.

Development

npm install
npm run build   # compile to dist/
npm test        # run unit tests

License

MIT

Available Tools

1 tool
search_transportSearch Virail transportA

Search real train, bus, flight, ferry, and carpool connections between two places on a date via Virail. Returns real prices, schedules, and booking links — never invent this data yourself.

ParametersJSON Schema
NameRequiredDescriptionDefault
tldNoVirail market/TLD, e.g. com, it, fr, de, es (default com)
dateYesTravel date, YYYY-MM-DD
adultsNoNumber of adult passengers, default 1
localeNoResponse language, e.g. en, it, fr (default en)
arrivalYesDestination city or station name
currencyNoPrice currency, e.g. EUR, USD (default EUR)
departureYesOrigin city or station name

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does a solid job: it states the tool returns real, non-fabricated data sourced from Virail, including prices, schedules, and booking links. It does not mention rate limits or error behavior, but for a search operation this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. It front-loads the main action and source, then gives the return-value summary and a critical caution, all in an economical structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description does explain the return values at a high level: real prices, schedules, and booking links. Required arguments are implied by 'between two places on a date,' and the schema covers all parameters. It is complete enough for tool selection and invocation, though it could mention edge cases like empty results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes all 7 parameters at 100% coverage, so the description needs no additional parameter details. It reinforces that 'departure' and 'arrival' are two places and 'date' is the travel date, but adds no new semantic beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Search'), a specific resource ('real train, bus, flight, ferry, and carpool connections between two places on a date via Virail'), and the return type ('real prices, schedules, and booking links'). Even without sibling tools, an agent can unambiguously understand what this tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to use this tool to get real transport data and 'never invent this data yourself,' which is a clear directive for when the agent should invoke it rather than hallucinate. It lacks explicit exclusion criteria, but with no sibling tools the usage context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.2/5.0
Disambiguation5/5

只有一个工具,因此不存在工具之间混淆的可能性。该工具具有清晰、唯一的用途,即搜索交通连接。

Naming Consistency5/5

该工具遵循清晰的动词_名词模式,易于阅读和预测。由于只有一个工具,没有冲突或混合约定。

Tool Count3/5

单个工具令人感觉单薄,对于交通搜索服务器而言尤其如此,该服务器可能还需要位置查找或行程详情等辅助工具。然而,该工具本身作为一个综合搜索入口,属于边缘情况。

Completeness4/5

该工具满足了其声明的目的:提供连接、价格、时刻表和预订链接。缺少诸如获取可用路线或筛选运输方式的辅助操作,但这些可能超出了单一搜索工具的范围。

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    F
    maintenance
    Enables searching for train connections, stations, and ticket pricing on the Czech railway network via the official České dráhy API. It supports retrieving detailed connection information and passenger discount categories for travel planning.
    5
    4
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides real-time Belgian rail (SNCB/NMBS) data via the iRail API, enabling AI agents to query train schedules and live information.
    5
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Connects AI assistants to Swiss Federal Railways (SBB/CFF/FFS) data: train schedules, station search, ticket prices, and direct ticket purchase links.
    6
    102
    Unlicense - libtelnet variant
  • F
    license
    Not graded
    quality
    A
    maintenance
    Provides real travel search for AI assistants, enabling flight, hotel, car rental, and ground transportation searches through a single MCP tool, with no API keys required.
    69

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/viraildev/virail-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server