tutu-compass
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@tutu-compassPlan a trip: sea, 45k for 3, with child, no long transfers"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🧭 Компас — a negotiation travel agent for trips across Russia
An agent that a family from Yekaterinburg writes to in a single phrase:
"We want to go to the sea, 45,000 for three, with a child, without long connections."
— and it itself finds the contradiction between budget and connections, shows the fork right on the timeline, asks what to sacrifice, remembers the answers, and keeps Plan B ready for every fragile leg of the route.
Project for the Tutu MCP AI hackathon, August 18–21, 2026. Works on top of Tutu MCP (planes, trains, commuter trains, buses, hotels).

|
|
|
|
From left to right: the start exploration map (clicks on cities don't spend tokens — only Tutu MCP); the city card with flights and ±day; switching to Plan B after a failure; MCP widget (SEP-1865).
How this differs from "yet another ticket search"
Regular search | Компас |
A form with ten fields | One phrase in natural language |
"Nothing found" | "It's impossible to fit the budget and a connection < 1 h at the same time — what will we sacrifice?" |
Best option by formula | Fork with an honest trade-off and memory of your choice |
Tickets ran out — start over | Plan B is precomputed, switching is instant |
Related MCP server: FlightHunter MCP
Quick Start
git clone https://github.com/svyatrunov/tutu-compass.git && cd tutu-compassnpm installcp deploy/.env.example apps/server/.envFill in OPENROUTER_API_KEY in apps/server/.env and run:
npm run devFrontend — http://localhost:5173, API — http://localhost:8787 (Vite proxies /api).
Demo without internet and without keys — on recorded fixtures:
DEMO_MODE=replay npm run devProduction entirely in Docker:
cd deploy && cp .env.example .env && docker compose up -d --buildКомпас as an MCP server
The same agent is available as the MCP tool plan_trip — one call instead of manual orchestration
of the 16 raw Tutu tools. Endpoint: http://localhost:8787/mcp after npm run dev
(Streamable HTTP; on your own server — https://<домен>/mcp). To quickly view the widget
without an MCP host: http://localhost:8787/api/dev/widget-preview. In hosts
with MCP Apps support (Claude, Claude Desktop, VS Code Copilot, Goose), the result
is rendered as an interactive timeline right in the chat (SEP-1865); other MCP clients
receive text + structured JSON. Dialog memory — via sessionId
in the tool arguments. The web version is the primary channel and does not depend on the MCP channel:
both live in one process on top of the same agent/* core.
Channel check: npm run smoke:mcpapp against a running server.
Useful Commands
Command | What it does |
| Captures the actual specification of the Tutu tools → |
| Records MCP responses into |
| Unit tests for conflicts and Plan B + contract tests for MCP schemas |
| E2E run of the demo scenario against a running server |
| ESLint / TypeScript strict |
Documentation
Document | Purpose |
Start here. Self-contained reference for evaluation: flow, stack, benchmarks, self-assessment by hackathon tracks | |
System map: 16 Tutu tools → our modules → channels + quick answers to jury questions | |
Working plan up to code freeze, ranked by "points per hour" | |
12 structured suggestions for the Tutu MCP specification — with reproducible findings | |
Diagram, agent loop, conflict detection | |
An honest list: what is actually from MCP and what is imitation | |
Actual (not declared) Tutu MCP specification | |
Model strategy and benchmark findings log | |
Pitch points and timing |
Where to look at the code by hackathon criteria
Criterion | Where to look |
Functional depth |
|
Innovation |
|
UX/UI |
|
Stability |
|
Architecture | |
Honesty |
|
Code quality |
|
Repository Rules
Secrets only via env.
.envis in.gitignore,.env.example— in the repository.The LLM never generates route data: prices, flights, and links come only from MCP, the model only selects among them by
id. This is protection against hallucinations on top of real data.
License
MIT — see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
TravelMind: 8 MCP tools for travel (12306 trains, flights, hotels, geocode, planning, policy).
Aggregated travel MCP — flights, tours, activities, price checks, visas, and more.
Travel tools for AI agents: plan and edit real trips, search stays and tours, import travel videos.
whentofly: flexible-date economy/business flight search + price-level context for AI agents
Related MCP Servers
AlicenseAqualityDmaintenanceAI travel agent over MCP — live flights, hotels, activities, and events worldwide, then completes the booking on autonomad.ai.8239 npm2MIT- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that gives Claude the ability to search for cheap flights — including Russian airlines — and present direct booking links.MIT
- FlicenseNot gradedqualityBmaintenanceMulti-domain MCP server enabling AI agents to plan and execute vacation travel and birthday party logistics via local tool pipelines.-
- AlicenseAqualityDmaintenanceA full-stack travel booking MCP server that enables AI clients to search flights, make reservations, cancel bookings, and manage persistent state across sessions.98 npm5MIT



