此 MCP 可以做什么
Provides geospatial search, OSM queries, routing, isochrones, geometry analysis, elevation, map rendering, and basemap styling.
工具
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['lat', 'lon'], 'properties': {'lat': {'type': 'number', 'maximum': 85.05112878, 'minimum': -85.05112878, 'description': 'Latitude in decimal degrees.'}, 'lon': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude in decimal degrees.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['category', 'south', 'west', 'north', 'east'], 'properties': {'east': {'type': 'number', 'maximum': 180, 'minimum': -180}, 'west': {'type': 'number', 'maximum': 180, 'minimum': -180}, 'limit': {'type': 'integer', 'default': 100, 'maximum': 500, 'minimum': 1, 'description': 'Maximum returned OSM objects, not a pagination guarantee.'}, 'north': {'type': 'number', 'maximum': 85, 'minimum': -85}, 'south': {'type': 'number', 'maximum': 85, 'minimum': -85}, 'category': {'enum': ['cafes', 'restaurants', 'buildings', 'parks', 'schools', 'hospitals', 'transit_stops', 'drinking_water', 'trails'], 'type': 'string', 'description': 'Mapped feature category; use overpass_query for arbitrary OSM tags.'}, 'responseMode': {'enum': ['compact', 'handle', 'raw'], 'type': 'string', 'default': 'compact', 'description': 'compact: inline when small, a result handle when large. handle: always a handle. raw: always the full body, however large.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operation'], 'properties': {'a': {'description': 'GeoJSON, a [lon, lat] pair, an Overpass result, a places result, or a result handle such as rh_ followed by 32 hex characters. Required for every operation except pipeline.'}, 'b': {'description': 'The second operand, in the same forms as a.'}, 'units': {'enum': ['meters', 'kilometers', 'miles'], 'type': 'string', 'default': 'meters'}, 'returns': {'type': 'string', 'description': 'pipeline only: which step to return, as $stepId. Defaults to the last.'}, 'distance': {'type': 'number', 'maximum': 500000, 'minimum': 0, 'description': 'Buffer radius or simplify tolerance.'}, 'pipeline': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'op'], 'properties': {'id': {'type': 'string', 'description': 'Referenced by later steps as $id.'}, 'op': {'enum': ['search', 'nearby', 'route', 'isochrone', 'matrix', 'analyze', 'filter', 'sort', 'limit'], 'type': 'string'}, 'args': {'type': 'object', 'default': {}, 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}}, 'maxItems': 12, 'description': 'pipeline only: ordered steps. Any argument may be $anEarlierStepId.'}, 'operation': {'enum': ['buffer', 'centroid', 'bbox', 'area', 'length', 'distance', 'intersect', 'union', 'difference', 'contains', 'intersects', 'nearest', 'simplify', 'convex', 'pipeline'], 'type': 'string', 'description': 'buffer and simplify take distance. distance, intersect, union, difference, contains, intersects and nearest take a second geometry in b. pipeline runs several steps server-side and takes pipeline instead of a.'}, 'estimateOnly': {'type': 'boolean', 'default': False, 'description': 'pipeline: calculate estimated cost without execution.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operation'], 'properties': {'lat': {'type': 'number', 'maximum': 85.05112878, 'minimum': -85.05112878, 'description': 'elevation and contours: latitude.'}, 'lon': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'elevation and contours: longitude.'}, 'zoom': {'type': 'integer', 'maximum': 13, 'minimum': 6, 'description': 'contours only: detail level, 6 to 13. Defaults to 9.'}, 'bands': {'type': 'integer', 'maximum': 24, 'minimum': 4, 'description': 'contours only: how many elevation bands, 4 to 24. Defaults to 14.'}, 'window': {'type': 'integer', 'maximum': 1440, 'minimum': 1, 'description': 'metrics only: minutes to measure over. Defaults to 60.'}, 'operation': {'enum': ['status', 'basemaps', 'elevation', 'contours', 'usage', 'metrics'], 'type': 'string', 'description': "status: service state and dataset freshness. basemaps: tile catalogue. elevation: ground height at a point. contours: banded topographic contours. usage: this key's consumption. metrics: request rates, latency percentiles and how old each dataset is."}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operation'], 'properties': {'costing': {'enum': ['auto', 'bicycle', 'pedestrian', 'truck', 'motor_scooter', 'bus'], 'type': 'string', 'default': 'auto', 'description': 'Travel mode used to weight the road graph.'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['lat', 'lon'], 'properties': {'lat': {'type': 'number', 'maximum': 85.05112878, 'minimum': -85.05112878}, 'lon': {'type': 'number', 'maximum': 180, 'minimum': -180}}}, 'maxItems': 25, 'description': 'matrix only: the origins.'}, 'targets': {'type': 'array', 'items': {'type': 'object', 'required': ['lat', 'lon'], 'properties': {'lat': {'type': 'number', 'maximum': 85.05112878, 'minimum': -85.05112878}, 'lon': {'type': 'number', 'maximum': 180, 'minimum': -180}}}, 'maxItems': 25, 'description': 'matrix only: the destinations. Omit for a square matrix of sources against themselves.'}, 'contours': {'type': 'array', 'items': {'type': 'number', 'maximum': 60, 'minimum': 1}, 'maxItems': 4, 'description': 'isochrone only: travel-time bands in minutes.'}, 'elevation': {'type': 'boolean', 'default': False, 'description': 'route only: also return a sampled terrain profile with total gain and loss.'}, 'locations': {'type': 'array', 'items': {'type': 'object', 'required': ['lat', 'lon'], 'properties': {'lat': {'type': 'number', 'maximum': 85.05112878, 'minimum': -85.05112878}, 'lon': {'type': 'number', 'maximum': 180, 'minimum': -180}}}, 'maxItems': 1000, 'description': 'Waypoints for route and optimize, points for snap, or the ordered trace for map_match. For isochrone, the single origin.'}, 'operation': {'enum': ['route', 'matrix', 'isochrone', 'map_match', 'snap', 'optimize'], 'type': 'string', 'description': 'route: turn-by-turn between waypoints. matrix: many-to-many times and distances. isochrone: reachable-area polygons. map_match: fit a GPS trace to the road network. snap: nearest network point. optimize: best visit order.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'lat': {'type': 'number', 'maximum': 85.05112878, 'minimum': -85.05112878}, 'lon': {'type': 'number', 'maximum': 180, 'minimum': -180}, 'bbox': {'type': 'array', 'items': {'type': 'number'}, 'maxItems': 4, 'minItems': 4, 'description': '[west, south, east, north]. Fits the viewport to this instead of using lat/lon/zoom.'}, 'zoom': {'type': 'number', 'maximum': 19, 'minimum': 0}, 'pitch': {'type': 'number', 'default': 0, 'maximum': 60, 'minimum': 0, 'description': 'Vector renders only.'}, 'style': {'type': 'string', 'default': 'dark', 'maxLength': 64, 'minLength': 1, 'description': 'dark or light composites the raster basemaps. Any other value names a style preset or one of your saved basemap profiles and is rendered as vector against that compiled style.'}, 'width': {'type': 'integer', 'default': 800, 'maximum': 2048, 'minimum': 64}, 'height': {'type': 'integer', 'default': 600, 'maximum': 2048, 'minimum': 64}, 'bearing': {'type': 'number', 'default': 0, 'maximum': 180, 'minimum': -180, 'description': 'Vector renders only.'}, 'geojson': {'description': 'GeoJSON to draw, or a result handle such as rh_ followed by 32 hex characters.'}, 'markers': {'type': 'array', 'items': {'type': 'object', 'required': ['lat', 'lon'], 'properties': {'lat': {'type': 'number', 'maximum': 85.05112878, 'minimum': -85.05112878}, 'lon': {'type': 'number', 'maximum': 180, 'minimum': -180}, 'label': {'type': 'string', 'maxLength': 24}}}, 'maxItems': 50}, 'styleRevision': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Saved profile revision to use for rendering.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operation'], 'properties': {'q': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'lookup: address/name text, 1–120 characters. discover: optional name/brand filter. search/autocomplete: populated-place name. geocode: compatibility provider query.'}, 'lat': {'type': 'number', 'maximum': 85.05112878, 'minimum': -85.05112878}, 'lon': {'type': 'number', 'maximum': 180, 'minimum': -180}, 'bbox': {'type': 'string', 'maxLength': 120, 'description': 'west,south,east,north. lookup: soft focus unless bounded is true. discover: required region boundary unless region or minutes is supplied.'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'osmId': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'details only.', 'exclusiveMinimum': 0}, 'types': {'type': 'string', 'maxLength': 100, 'description': 'lookup: comma-separated address,business,landmark,street,place.'}, 'offset': {'type': 'integer', 'maximum': 2000, 'minimum': 0, 'description': 'discover: result page offset.'}, 'radius': {'type': 'integer', 'maximum': 5000, 'minimum': 10, 'description': 'Metres. Defaults to 500 for nearby and 150 for reverse.'}, 'rankBy': {'enum': ['distance', 'travel_time'], 'type': 'string', 'description': 'discover: travel_time compares the nearest 25 candidates.'}, 'region': {'anyOf': [{'type': 'string', 'maxLength': 120}, {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}], 'description': 'discover: polygon GeoJSON or owned result handle; alternatively supply bbox or minutes.'}, 'bounded': {'type': 'boolean', 'description': 'lookup: explicitly restrict results to bbox.'}, 'costing': {'enum': ['auto', 'bicycle', 'pedestrian', 'truck'], 'type': 'string'}, 'minutes': {'type': 'integer', 'maximum': 30, 'minimum': 1, 'description': 'discover: generate an isochrone from lat/lon.'}, 'osmType': {'enum': ['node', 'way', 'relation'], 'type': 'string', 'description': 'details only.'}, 'category': {'type': 'string', 'maxLength': 40, 'description': 'lookup/discover: business or POI category, such as coffee, pharmacy or restaurants. nearby: feature category, such as cafe, restaurant, hospital or park.'}, 'entityId': {'type': 'string', 'maxLength': 300, 'minLength': 4, 'description': 'entity only: an id from resolve, beginning geo_.'}, 'language': {'type': 'string', 'maxLength': 12, 'description': 'lookup: preferred language, default en.'}, 'operation': {'enum': ['search', 'autocomplete', 'nearby', 'reverse', 'details', 'geocode', 'resolve', 'entity', 'lookup', 'discover'], 'type': 'string', 'description': 'lookup: local address, business and brand suggestions with soft map-focus bias. discover: businesses in a viewport, polygon or isochrone, optionally ranked by travel time. resolve: name to entity ID. entity: entity lookup. search: populated-place names. autocomplete: populated-place prefixes. nearby: radius search. reverse: coordinate lookup. details: OSM type and ID lookup. geocode: compatibility provider; use lookup for new integrations.'}, 'placeClass': {'enum': ['city', 'town', 'village', 'suburb', 'neighbourhood', 'hamlet'], 'type': 'string', 'description': 'search and autocomplete: restrict to one class of populated place.'}, 'countrycodes': {'type': 'string', 'maxLength': 40, 'description': 'lookup: comma-separated two-letter country filters.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'to': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'diff only: the later revision. Defaults to the current one.'}, 'base': {'enum': ['light', 'dark', 'operations'], 'type': 'string', 'default': 'dark', 'description': 'Base preset for the patch. Available presets are listed at /api/styles.'}, 'from': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'diff only: the earlier revision. Defaults to the one before `to`.'}, 'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'save only: a human name for the profile.'}, 'save': {'type': 'boolean', 'default': False, 'description': 'intent only: also save the proposal as a profile revision on this key.'}, 'slug': {'type': 'string', 'maxLength': 48, 'minLength': 2, 'description': "save and delete: the profile's stable URL id. Defaults to a slug of the name on save."}, 'patch': {'type': 'object', 'default': {}, 'description': 'Semantic overrides: {"tokens":{...},"typography":{...},"layers":{"roads.motorway":{"color":"#f2a900"}}}. Layer keys come from the explain operation.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'intent': {'type': 'string', 'maxLength': 2000, 'minLength': 3, 'description': 'intent: text description of the desired basemap. Returns an editable manifest and a summary of applied changes.'}, 'operation': {'enum': ['explain', 'schema', 'intent', 'preview', 'save', 'list', 'revisions', 'diff', 'delete'], 'type': 'string', 'default': 'preview', 'description': 'explain: layer definitions. schema: manifest JSON Schema. intent: generate a style proposal. preview: compile without saving. save: store a profile. list: available presets and profiles. revisions: saved versions. diff: revision comparison. delete: remove a profile.'}, 'description': {'type': 'string', 'maxLength': 400, 'description': 'save: profile description.'}, 'includeStyle': {'type': 'boolean', 'default': False, 'description': 'Include the compiled MapLibre style in addition to the hash, diff, and validation issues. Defaults to false.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['lat', 'lon'], 'properties': {'lat': {'type': 'number', 'maximum': 85.05112878, 'minimum': -85.05112878, 'description': 'Latitude of the centre point.'}, 'lon': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude of the centre point.'}, 'costing': {'enum': ['auto', 'bicycle', 'pedestrian', 'truck', 'motor_scooter', 'bus'], 'type': 'string', 'default': 'auto', 'description': 'Travel mode used to weight the road graph.'}, 'contours': {'type': 'array', 'items': {'type': 'number', 'maximum': 60, 'minimum': 1}, 'default': [10], 'maxItems': 4, 'minItems': 1, 'description': 'Travel-time bands in minutes, at most four.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'query': {'type': 'string', 'maxLength': 131072, 'minLength': 1, 'description': 'A complete bounded Overpass QL query, with explicit timeout and output limit.'}, 'responseMode': {'enum': ['compact', 'handle', 'raw'], 'type': 'string', 'default': 'compact', 'description': 'compact: inline when small, a result handle when large. handle: always a handle. raw: always the full body, however large.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['locations'], 'properties': {'costing': {'enum': ['auto', 'bicycle', 'pedestrian', 'truck', 'motor_scooter', 'bus'], 'type': 'string', 'default': 'auto', 'description': 'Travel mode used to weight the road graph.'}, 'elevation': {'type': 'boolean', 'default': False, 'description': 'Sample a terrain profile along the route and report total gain and loss in metres.'}, 'locations': {'type': 'array', 'items': {'type': 'object', 'required': ['lat', 'lon'], 'properties': {'lat': {'type': 'number', 'maximum': 85.05112878, 'minimum': -85.05112878}, 'lon': {'type': 'number', 'maximum': 180, 'minimum': -180}}}, 'maxItems': 10, 'minItems': 2, 'description': 'Ordered waypoints, 2 to 10; first is the origin and last is the destination.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
近期工具变更
类似的 MCP 服务器
Geohash
Encodes latitude and longitude into geohashes and decodes geohashes into center coordinates and bounding boxes.
TopoJSON object count, body discarded
Counts objects in a TopoJSON document without retaining its contents, alongside assorted stateless developer utilities.
blank-line count, text discarded
Provides small utilities for URL, JSON, path, hostname, repository, time, weather, and location checks, along with basic arithmet…
geo: URI coordinate shape, value discarded
Checks the coordinate shape of geo URI values while discarding the values.
GeoJSON feature count, coords discarded
Counts features in GeoJSON and discards coordinate data.
Open Location Code shape, value discarded
Validates the shape of Open Location Codes, also known as plus codes.
FabTally Valid
Validates VAT numbers, IBANs, email addresses, VINs, and geographic places using external and bundled reference data.
toolkit-mcp-server
Generates identifiers and QR codes, encodes values, computes hashes, geolocates IPs, and provides limited host diagnostics.