Solves the "where should we meet" problem using actual travel time fairness instead of naive geographic midpoints. Wraps Valhalla routing and OpenStreetMap venue search into five tools: score venues by isochrone-based fairness for 2-10 participants, search for meeting spots, get reachability polygons, fetch turn-by-turn directions, and store L402 Lightning payment credentials. Works immediately with free public routing or point it at your own Valhalla instance for unlimited queries. The underlying rendezvous-kit library handles isochrone intersection math and fairness scoring. Supports both stdio for Claude Desktop and HTTP/SSE for ChatGPT or remote agents. Reach for this when you need AI to coordinate real-world meetups based on actual commute times rather than map geometry.
Nostr: npub1mgvlrnf5hm9yf0n5mf9nqmvarhvxkc6remu5ec3vf8r0txqkuk7su0e7q2
Fair meeting points for AI — isochrone-based fairness, not naive midpoints.
MCP server for AI-driven meeting point discovery. Give your AI the ability to answer "where should we meet?" using real travel times, venue availability, and fairness algorithms.
Works out of the box — free public routing, no API keys needed. Self-host Valhalla for unlimited queries, or use L402 Lightning credits for our hosted endpoint.
| Tool | Description |
|---|---|
score-venues | Score candidate venues by travel time fairness for 2–10 participants |
search-venues | Search for venues near a location using OpenStreetMap |
get-isochrone | Get a reachability polygon (everywhere reachable within N minutes) |
get-directions | Get directions between two points with turn-by-turn steps |
store-routing-credentials | Store L402 macaroon + preimage after Lightning payment |
Add to your MCP client config (Claude Code, Claude Desktop, Cursor, etc.):
{
"mcpServers": {
"rendezvous": {
"command": "npx",
"args": ["rendezvous-mcp"]
}
}
}
Then ask your AI: "Where's a fair place for Alice in London, Bob in Bristol, and Carol in Birmingham to meet for lunch?"
For ChatGPT, remote AI agents, or any client that connects over HTTP:
TRANSPORT=http npx rendezvous-mcp
Starts a Streamable HTTP server on port 3002 with the MCP endpoint at /mcp.
In ChatGPT settings, add an MCP server with:
http://your-host:3002/mcp| Variable | Default | Description |
|---|---|---|
TRANSPORT | stdio | Transport mode: stdio or http |
PORT | 3002 | HTTP server port (HTTP mode only) |
HOST | 0.0.0.0 | HTTP bind address (HTTP mode only) |
VALHALLA_URL | https://routing.trotters.cc | Routing engine URL |
OVERPASS_URL | Public endpoints | Venue search API |
For unlimited queries with no rate limits, run your own Valhalla instance:
{
"mcpServers": {
"rendezvous": {
"command": "npx",
"args": ["rendezvous-mcp"],
"env": {
"VALHALLA_URL": "http://localhost:8002"
}
}
}
}
search-venues to find candidate venues near the areascore-venues with participants + candidates — returns ranked results with travel times and fairness scoresFor deeper analysis, the AI can use get-isochrone to visualise reachability and get-directions for turn-by-turn navigation.
The default routing endpoint (routing.trotters.cc) offers free requests. When the free tier is exhausted, tools return a payment_required response with a Lightning invoice. After payment, call store-routing-credentials to store the macaroon for the session.
Self-hosted Valhalla has no payment requirement.
Thin MCP wrapper over rendezvous-kit — the open-source TypeScript library for isochrone intersection, venue search, and fairness scoring. Each tool is an extracted handler function (testable without MCP) plus a registration one-liner.
npm install
npm run build
npm test
For issues and feature requests, see GitHub Issues.
If you find rendezvous-mcp useful, consider sending a tip:
thedonkey@strike.menpub1mgvlrnf5hm9yf0n5mf9nqmvarhvxkc6remu5ec3vf8r0txqkuk7su0e7q2VALHALLA_URLValhalla routing engine URL