Fair meeting point discovery for AI agents with isochrone-based travel time fairness
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:
profusemeat89@walletofsatoshi.comnpub1mgvlrnf5hm9yf0n5mf9nqmvarhvxkc6remu5ec3vf8r0txqkuk7su0e7q2Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y rendezvous-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"dev-forgesworn-rendezvous-mcp": {
"command": "npx",
"args": [
"-y",
"rendezvous-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencerendezvous-mcpnpmdev.forgesworn/rendezvous-mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.