TravelOS
by NicoLeblanc
README.md
# Andiamo
Comparateur de trajets porte-à-porte, à la façon de Rome2Rio ou Kayak, mais
branché directement dans Claude et ChatGPT.
Tu dis où tu dois être et quand. Andiamo compare tous les modes sur les mêmes
critères et rend les meilleures stratégies classées, avec les liens pour
réserver : TGV Max à 0 €, trains au tarif officiel SNCF, bus longue distance,
vols, et l'approche depuis ton adresse à pied ou en transport urbain.
C'est un **serveur MCP live** à ajouter en une URL, accompagné d'un site vitrine
et d'un tableau de bord (historique, surveillances de places, alertes).
## Outils MCP
15 outils, détaillés sur [getandiamo.app/docs](https://getandiamo.app/docs).
Le catalogue affiché vient de `lib/site.ts` et `tests/site.test.ts` vérifie
qu'il correspond aux outils réellement enregistrés par le serveur.
| Groupe | Outils |
| --- | --- |
| Chercher | `resolve_location`, `list_stations`, `search_tgvmax_journeys`, `search_bus_journeys`, `search_flights` |
| Décider | `next_available_seat`, `plan_journey` |
| Agir | `replan_journey`, `create_watch`, `list_watches`, `delete_watch`, `list_alerts` |
| Personnaliser | `get_my_profile`, `update_my_profile` |
Endpoint production : `https://getandiamo.app/api/mcp`
(streamable HTTP, stateless, protégé par OAuth 2.1).
Au branchement du connecteur, le client reçoit un 401 avec un en-tête
`WWW-Authenticate` (RFC 9728) et lance le flux OAuth : l'utilisateur se connecte
à son compte Andiamo, autorise une fois, et tous les appels d'outils sont
ensuite liés à son compte. Deux replis restent disponibles pour les clients qui
ne savent pas faire OAuth :
| URL | Compte lié | Pour qui |
| --- | --- | --- |
| `/api/mcp` | via OAuth | Claude, Claude Code, ChatGPT, Cursor |
| `/api/mcp/u/<token>` | via token personnel | client sans OAuth, compte existant |
| `/api/mcp/public` | non | client sans OAuth, sans compte |
## Données
[SNCF Open Data : dataset `tgvmax`](https://ressources.data.sncf.com/explore/dataset/tgvmax/) :
disponibilités TGV Max sur ~30 jours glissants, API publique sans clé.
## Développement
```bash
pnpm install
pnpm dev
```
Endpoint MCP local : `http://localhost:3000/api/mcp`.
```bash
pnpm build # build production
pnpm lint # lint
pnpm test # tests unitaires (vitest)
```
## Langues
Le site est bilingue : français à la racine (`/docs`), anglais sous `/en`
(`/en/docs`, `/en/partner-links`). Les pages vivent sous `app/[locale]/` et
`middleware.ts` aiguille les URL. Les textes sont dans
`lib/i18n/messages/{fr,en}/`, le catalogue d'outils dans `lib/site.ts` (français)
et `lib/i18n/messages/en/catalog.ts` (anglais). Voir `CLAUDE.md` pour les règles.
## Design
Socle dark-only Looptra : `design/ds-styles.css` est la source unique des
couleurs, rayons et rôles typographiques ; `design/multimodal.dc.html` est la
maquette de référence. Voir `CLAUDE.md` pour les règles.
## Licence
[MIT](LICENSE). Les données de transport restent soumises à la licence de leur
source, notamment l'ODbL pour SNCF Open Data et les jeux GTFS de
transport.data.gouv.fr.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessSyncing