io.github.leojg/rihla
rihla
Is the io.github.leojg/rihla MCP server down? No. Installed with mcp<2, it started and listed its tools on 2026-11-08.
Flexible multi-leg, multi-airport flight search - cheapest valid combination across an itinerary.
needs mcp<2 probed 2026-11-14 · unchanged since 2026-11-08
A plain install of the package stops at the import below. These tool definitions are from a second install with mcp<2, started in a container with the network off, on 2026-11-08.
MCP error -32000: Connection closed ModuleNotFoundError: No module named 'mcp.server.fastmcp'. This is mcp 2.x, where FastMCP was renamed to MCPServer (from mcp
- Run it
- uvx --with 'mcp<2' rihla-mcp@0.1.0 (stdio, probed in a container with the network off)
- Host
- pypi.org
- Reports itself as
- rihla 1.30.0
- Capabilities
- experimental, prompts, resources, tools
- Repository
- https://github.com/leojg/rihla
- Registry
- active, updated 2026-07-03 · registry entry
- Changes
- 2 recorded, reachable in 0 of them. A row is added when the result, the tool count or the cost changes.
Most expensive tools
Estimates with the o200k_base tokenizer.
| Tool | o200k estimate | Share of this server |
|---|---|---|
| search_trip | 660 | 60 % |
| resolve_airports | 432 | 40 % |
Compare this server with others.
More servers
Other registry entries on pypi.org, the ones next to this name; all of them.
- Legesher io.github.legesher/legesher-mcp · alive
- Drawcommons Ledger io.github.leigui-888/drawcommons-ledger · alive
- AON io.github.leo007-htun/aon · crashed on start
- io.github.leocelis/stele · alive
- io.github.leonmch-byte/chinese-nlp-mcp · alive
- io.github.les-k/mcp-confirm · needs args
- io.github.les-k/pg-readonly-mcp · needs env
- io.github.les-k/sweep-mcp · needs args
Servers that mention combination or itinerary.
- World Airfares Flight Search com.worldairfares/flights-mcp · alive
- ro.tria/lodging-intelligence · alive
- Cruise Itinerary com.cruise-itinerary/mcp · needs auth
- Fly Frugal Travel Data fyi.flyfrugal/travel-data · alive
- Trip Done com.trip-done/trip-done · needs auth
- Delve to Life com.delvetolife.mcp/delve-to-life · alive
- app.nomadpoint/travel-facts · alive
- Rendlet PDF com.rendlet/pdf · alive
History
We add a row when the result changes. A server with no change keeps its last row.
| Probed | Result | Init | Tools | Claude | o200k |
|---|---|---|---|---|---|
| 2026-11-08 08:04 | needs mcp<2 | 1.5 s | 2 | 1.9k | 1.1k |
| 2026-10-18 06:41 | crashed on start |
Badge for the README
The result of the latest probe, the tool count and the token cost. The feed has an entry for every probe that changed them.
A mail when this server changes
Stops answering, comes back, tool set or cost changes. One confirmation mail first, a stop link in every mail.
For the publisher
- The package imports FastMCP from mcp.server.fastmcp. mcp 2.0, the Python SDK of 28 July 2026, renamed FastMCP to MCPServer, and the package asks for mcp with no upper bound, so a plain install (uvx, pip) gets mcp 2.x and the server stops at the import. Installed with mcp<2, it starts and lists its tools. The fix for the publisher: pin mcp<2 in the dependencies, for example mcp>=1.2,<2, and publish a new version, or move to MCPServer as the SDK's migration guide says. Until then, run it with uvx --with 'mcp<2'.
The cause and the fix, with the code before and after: ModuleNotFoundError: No module named 'mcp.server.fastmcp'