soloway-mcp
Live intercity bus-trip search across Ukraine & Europe as a remote MCP server — real-time prices, seats, carriers, cheapest-day calendar. Read-only, no API key.
Documentation
SoloWay MCP Server
Live intercity bus-trip search across Ukraine and Europe as a remote MCP server. Read-only, no API key, no auth. Powered by soloway.com.ua — bookings are completed there, not through the tools.
Remote endpoint: `https://mcp.soloway.com.ua/mcp` (streamable HTTP, stateless)
Tools
| Tool | What it does |
|---|---|
| `search_trips` | Trips between two cities on a date — live prices, free seats, carriers, duration, transfers, passenger discounts, and a booking deep-link. City names resolve automatically (uk/en), with disambiguation when several cities match. On an empty result the tool verifies routes via bigger cities within ~60 km of the requested endpoints and returns confirmed ones in `nearby_alternatives`, each with substitution distances and its own booking link. |
| `get_calendar_prices` | Cheapest price for each day of a month on a route — find the cheapest day to travel. |
| `get_trip_details` | Full details of one trip from search results — stops, carrier discounts, seat info. |
| `ping` | Liveness check. |
All tools declare `outputSchema`, `readOnlyHint: true` and `openWorldHint: false`.
Connect
Works with any MCP client that speaks streamable HTTP. Step-by-step instructions for Claude, ChatGPT and others: soloway.com.ua/connect.
Claude Code:
claude mcp add --transport http soloway https://mcp.soloway.com.ua/mcpSelf-hosting
The server is a thin, cache-friendly proxy over the public SoloWay API — the Docker image works out of the box:
docker build -t soloway-mcp .
docker run -p 8088:8088 soloway-mcp
# then point your MCP client at http://localhost:8088/mcpConfiguration
All settings are env vars with sane defaults — see .env.example. The ones you may care about:
| Var | Default | Notes |
|---|---|---|
| `PORT` | `8088` | HTTP port |
| `BACKEND_BASE_URL` | `https://soloway.com.ua` (image) | SoloWay API origin |
| `EXPECTED_HOST` | `*` (image) | CSV of accepted `Host` values for no-Origin requests. `*` accepts any host and disables the SDK DNS-rebinding belt — fine for local/sandbox runs; pin your public hostname in production (our prod sets `mcp.soloway.com.ua`). |
| `ALLOWED_ORIGINS` | claude.ai / openai.com / soloway.com.ua | CSV, suffix wildcards supported (`https://*.claude.ai`) |
| `DEFAULT_LOCALE` | `uk` | `uk` or `en` |
| `SEARCH_MAX_RESULTS` | `40` | Cap on trips returned per search |
Development
npm install
npm run dev # tsx watch
npm test # vitest
npm run typecheck`server.json` is the MCP registry manifest; `eval/evals.xml` holds stable-answer evaluations in mcp-builder format.
License
Frequently asked questions
What is soloway-mcp?
soloway-mcp is Live intercity bus-trip search across Ukraine & Europe as a remote MCP server — real-time prices, seats, carriers, cheapest-day calendar. Read-only, no API key.
How do I install soloway-mcp?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is soloway-mcp open source?
Yes — it is hosted on GitHub at https://github.com/kerol1/soloway-mcp.
Related MCP tools
Model Context Protocol Servers
The Open-Source Multimodal AI Agent Stack: Connecting Cutting-Edge AI Models and Agent Infra
A MCP for Claude Desktop / Claude Code / Windsurf / Cursor to build n8n workflows for you
MCP server to provide Figma layout information to AI coding agents like Cursor
The world's best AI personal assistant for email. Open source app to help you reach inbox zero fast.
Instant is the best backend for AI-coded apps. You get auth, permissions, storage, presence, and streams — everything you need to ship apps your users will love.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP