Public MCP

Streethenge MCP server

A read-only JSON-RPC MCP endpoint for agents that need to search places, inspect nearby roads, calculate geometric street alignments, and link users back to Streethenge.

Endpoint: https://www.streethenge.com/mcp

Descriptor: /mcp.json

Transport: JSON-RPC 2.0 over HTTP POST

Rate limit: 60 requests per minute per client IP on the public endpoint.

Tools

search_place

Use this when the user gives a street, address, landmark, or place name and you need candidate coordinates before looking up roads or calculating alignments. Returns Nominatim place candidates; next usually call lookup_roads for the chosen candidate.

lookup_roads

Use this when latitude and longitude are known and the user needs nearby street candidates or a bearing for a selected point. Returns raw road geometries plus summarized candidate segments with direction labels. If several rows share a name, show their bearings and distances before choosing.

calculate_alignment

Use this when latitude, longitude, and a street bearing are already known. Returns geometric sunrise/sunset or moonrise/moonset alignment windows, best events, timezone, and map/lite URLs. This does not search streets; call lookup_roads first if the bearing is unknown.

scan_alignments_nearby

Use this when the user asks for possible alignment opportunities near an area rather than for one known street. This is heavier than calculate_alignment because it calls Overpass to scan named nearby streets; keep radius modest and explain that third-party availability may affect results.

build_alignment_urls

Use this when you already have coordinates and bearing and only need shareable Streethenge URLs. Returns the full map URL and lower-bandwidth lite URL; it does not calculate dates.

build_scan_urls

Use this when you already have area coordinates and only need shareable URLs for the nearby-scan flow. Returns the full map URL and lower-bandwidth lite URL; it does not call Overpass.

Example requests

Send these as HTTP POST requests to /mcp with Content-Type: application/json.

Initialize

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": {}
}

Calculate one known street

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "calculate_alignment",
    "arguments": {
      "lat": 40.7534,
      "lon": -73.9807,
      "bearing": 299.1,
      "body": "sun",
      "streetName": "West 42nd Street",
      "placeName": "Manhattan, New York"
    }
  }
}

Scan nearby named streets

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "scan_alignments_nearby",
    "arguments": {
      "lat": 54.68783,
      "lon": 25.27555,
      "radius": 1200,
      "body": "sun",
      "placeName": "Vilnius, Lithuania"
    }
  }
}

Caveats and privacy

Streethenge calculates geometric alignments. It does not model local horizon elevation, building blockage, trees, weather, safety, or access. Place search uses Nominatim, road lookup and nearby scans use Overpass API, map display uses OpenStreetMap tiles on the website, and hosting is on Vercel.

The public MCP endpoint is read-only. It does not create accounts, save searches on the server, upload files, or send email. For issues, contact [email protected]. See also Privacy.