{
  "info": {
    "name": "Graphhopper — mcp.ai",
    "description": "REST API for the Graphhopper MCP. Set {{apiKey}} to a workspace key (sk_live_…) created at https://mcp.ai/settings/api-keys.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.mcp.ai/api/graphhopper",
      "type": "string"
    },
    {
      "key": "apiKey",
      "value": "sk_live_...",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "graphhopper_cluster_post",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/cluster/post",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "cluster",
            "post"
          ]
        },
        "description": "Solve capacity-constrained clustering problems by assigning customers to clusters while minimizing total travel distance. Useful for delivery zone planning, sales territory optimization, and workload ",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"clusters\": \"\",\n  \"customers\": \"\",\n  \"configuration\": {}\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "graphhopper_geocode_get",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/geocode/get",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "geocode",
            "get"
          ]
        },
        "description": "Tool to perform forward or reverse geocoding. Use when converting between textual addresses and latitude/longitude coordinates.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"q\": \"\",\n  \"key\": \"\",\n  \"bbox\": \"\",\n  \"zoom\": 0,\n  \"debug\": false,\n  \"limit\": 0,\n  \"point\": \"\",\n  \"bounds\": \"\",\n  \"locale\": \"\",\n  \"radius\": 0,\n  \"osm_tag\": \"\",\n  \"reverse\": false,\n  \"provider\": \"\",\n  \"countrycode\": \"\",\n  \"autocomplete\": false,\n  \"location_bias_scale\": 0\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "graphhopper_get_cluster_solution",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/cluster/solution",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "cluster",
            "solution"
          ]
        },
        "description": "Tool to retrieve the solution of an asynchronous clustering job. Use when you have a job ID from a previous cluster calculation request and need to fetch the results.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"job_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "graphhopper_get_matrix",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/matrix",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "matrix"
          ]
        },
        "description": "Tool to compute a distance and/or time matrix using GET request with query parameters. Use for simpler matrix requests with query parameters instead of POST body.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"point\": \"\",\n  \"profile\": \"\",\n  \"curbside\": \"\",\n  \"to_point\": \"\",\n  \"fail_fast\": false,\n  \"out_array\": \"\",\n  \"from_point\": \"\",\n  \"point_hint\": \"\",\n  \"to_curbside\": \"\",\n  \"from_curbside\": \"\",\n  \"to_point_hint\": \"\",\n  \"from_point_hint\": \"\",\n  \"snap_prevention\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "graphhopper_get_matrix_solution",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/matrix/solution",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "matrix",
            "solution"
          ]
        },
        "description": "Tool to retrieve the result of an asynchronous matrix computation job. Use when you have a job ID from a previous matrix calculation request and need to check if it's finished and get the results.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"job_id\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "graphhopper_get_route",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/get/route",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "get",
            "route"
          ]
        },
        "description": "Tool to calculate the best path connecting two or more points using simple GET request. Use when you need basic routing with query parameters.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"debug\": false,\n  \"point\": \"\",\n  \"locale\": \"\",\n  \"details\": \"\",\n  \"heading\": \"\",\n  \"profile\": \"\",\n  \"curbside\": \"\",\n  \"optimize\": \"\",\n  \"algorithm\": \"\",\n  \"elevation\": false,\n  \"ch.disable\": false,\n  \"point_hint\": \"\",\n  \"calc_points\": false,\n  \"instructions\": false,\n  \"pass_through\": false,\n  \"points_encoded\": false,\n  \"heading_penalty\": 0,\n  \"round_trip.seed\": 0,\n  \"snap_prevention\": \"\",\n  \"round_trip.distance\": 0,\n  \"alternative_route.max_paths\": 0,\n  \"alternative_route.max_share_factor\": 0,\n  \"alternative_route.max_weight_factor\": 0\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "graphhopper_isochrone_get",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/isochrone/get",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "isochrone",
            "get"
          ]
        },
        "description": "Tool to compute isochrone polygons for a given point. Use when you need to determine areas reachable within time or distance constraints.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"point\": \"\",\n  \"buckets\": 0,\n  \"profile\": \"\",\n  \"time_limit\": 0,\n  \"reverse_flow\": false,\n  \"distance_limit\": 0\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "graphhopper_matrix_post",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/matrix/post",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "matrix",
            "post"
          ]
        },
        "description": "Tool to calculate distance, time, or weight matrices via POST. Use when you have multiple origins/destinations or a symmetric point set and need a single batch request.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"points\": \"\",\n  \"profile\": \"\",\n  \"curbsides\": \"\",\n  \"fail_fast\": false,\n  \"to_points\": \"\",\n  \"out_arrays\": \"\",\n  \"from_points\": \"\",\n  \"point_hints\": \"\",\n  \"to_curbsides\": \"\",\n  \"from_curbsides\": \"\",\n  \"to_point_hints\": \"\",\n  \"from_point_hints\": \"\",\n  \"snap_preventions\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "graphhopper_profiles_get",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/profiles/get",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "profiles",
            "get"
          ]
        },
        "description": "Retrieve all custom routing profiles for your GraphHopper account. Custom profiles allow you to customize routing behavior (e.g., avoid certain roads, limit speeds, prefer certain road types). Use thi",
        "body": {
          "mode": "raw",
          "raw": "{}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "graphhopper_route_post",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/route/post",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "route",
            "post"
          ]
        },
        "description": "Tool to calculate complex routes via POST /route. Use when you need advanced route planning with custom parameters.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"debug\": false,\n  \"locale\": \"\",\n  \"points\": \"\",\n  \"details\": \"\",\n  \"profile\": \"\",\n  \"headings\": \"\",\n  \"optimize\": false,\n  \"algorithm\": \"\",\n  \"curbsides\": \"\",\n  \"elevation\": false,\n  \"ch.disable\": false,\n  \"round_trip\": {},\n  \"calc_points\": false,\n  \"point_hints\": \"\",\n  \"custom_model\": {},\n  \"instructions\": false,\n  \"pass_through\": false,\n  \"points_encoded\": false,\n  \"heading_penalty\": 0,\n  \"snap_preventions\": \"\",\n  \"alternative_route\": {}\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "graphhopper_submit_matrix_job",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/submit/matrix/job",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "submit",
            "matrix",
            "job"
          ]
        },
        "description": "Tool to submit a matrix computation job for asynchronous processing. Use for large matrices that exceed synchronous limits. Returns a job ID to retrieve results later.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"points\": \"\",\n  \"profile\": \"\",\n  \"curbsides\": \"\",\n  \"fail_fast\": false,\n  \"to_points\": \"\",\n  \"out_arrays\": \"\",\n  \"from_points\": \"\",\n  \"point_hints\": \"\",\n  \"to_curbsides\": \"\",\n  \"from_curbsides\": \"\",\n  \"to_point_hints\": \"\",\n  \"from_point_hints\": \"\",\n  \"snap_preventions\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "graphhopper_upload_gpx_file",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/upload/gpx/file",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "upload",
            "gpx",
            "file"
          ]
        },
        "description": "Map-match a GPX track using GraphHopper's Map Matching API. This tool takes GPS track points in GPX format and snaps them to the digital road network. It's useful for: - Cleaning noisy GPS data by ali",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"locale\": \"\",\n  \"profile\": \"\",\n  \"elevation\": false,\n  \"gpx_content\": \"\",\n  \"points_encoded\": false\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "graphhopper_vrp_post",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/vrp/post",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "vrp",
            "post"
          ]
        },
        "description": "Tool to initiate VRP optimization. Use when you need to solve vehicle routing problems synchronously.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"services\": \"\",\n  \"vehicles\": \"\",\n  \"algorithm\": {},\n  \"relations\": \"\",\n  \"shipments\": \"\",\n  \"objectives\": \"\",\n  \"configuration\": {},\n  \"cost_matrices\": \"\",\n  \"vehicle_types\": \"\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    }
  ]
}