Microsoft Azure · Capability

Microsoft Azure Azure Maps Spatial Service — Spatial

Microsoft Azure Azure Maps Spatial Service — Spatial. 9 operations. Lead operation: Microsoft Azure Post Spatial Buffer Format. Self-contained Naftiko capability covering one Microsoft Azure business surface.

Run with Naftiko Microsoft AzureSpatial

What You Can Do

POST
Microsoftazurespatialpostbuffer — Microsoft Azure Post Spatial Buffer Format
/v1/spatial/buffer/{format}
GET
Microsoftazurespatialgetbuffer — Microsoft Azure Get Spatial Buffer Format
/v1/spatial/buffer/{format}
POST
Microsoftazurespatialpostclosestpoint — Microsoft Azure Post Spatial Closestpoint Format
/v1/spatial/closestpoint/{format}
GET
Microsoftazurespatialgetclosestpoint — Microsoft Azure Get Spatial Closestpoint Format
/v1/spatial/closestpoint/{format}
GET
Microsoftazurespatialgetgeofence — Microsoft Azure Get Spatial Geofence Format
/v1/spatial/geofence/{format}
POST
Microsoftazurespatialpostgeofence — Microsoft Azure Post Spatial Geofence Format
/v1/spatial/geofence/{format}
GET
Microsoftazurespatialgetgreatcircledistance — Microsoft Azure Get Spatial Greatcircledistance Format
/v1/spatial/greatcircledistance/{format}
POST
Microsoftazurespatialpostpointinpolygon — Microsoft Azure Post Spatial Pointinpolygon Format
/v1/spatial/pointinpolygon/{format}
GET
Microsoftazurespatialgetpointinpolygon — Microsoft Azure Get Spatial Pointinpolygon Format
/v1/spatial/pointinpolygon/{format}

MCP Tools

microsoft-azure-post-spatial-buffer

Microsoft Azure Post Spatial Buffer Format

microsoft-azure-get-spatial-buffer

Microsoft Azure Get Spatial Buffer Format

read-only idempotent
microsoft-azure-post-spatial-closestpoint

Microsoft Azure Post Spatial Closestpoint Format

microsoft-azure-get-spatial-closestpoint

Microsoft Azure Get Spatial Closestpoint Format

read-only idempotent
microsoft-azure-get-spatial-geofence

Microsoft Azure Get Spatial Geofence Format

read-only idempotent
microsoft-azure-post-spatial-geofence

Microsoft Azure Post Spatial Geofence Format

microsoft-azure-get-spatial-greatcircledistance

Microsoft Azure Get Spatial Greatcircledistance Format

read-only idempotent
microsoft-azure-post-spatial-pointinpolygon

Microsoft Azure Post Spatial Pointinpolygon Format

microsoft-azure-get-spatial-pointinpolygon

Microsoft Azure Get Spatial Pointinpolygon Format

read-only idempotent

Capability Spec

azure-maps-spatial-service-spatial.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Microsoft Azure Azure Maps Spatial Service — Spatial
  description: 'Microsoft Azure Azure Maps Spatial Service — Spatial. 9 operations. Lead operation: Microsoft Azure Post Spatial
    Buffer Format. Self-contained Naftiko capability covering one Microsoft Azure business surface.'
  tags:
  - Microsoft Azure
  - Spatial
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    MICROSOFT_AZURE_API_KEY: MICROSOFT_AZURE_API_KEY
capability:
  consumes:
  - type: http
    namespace: azure-maps-spatial-service-spatial
    baseUri: https://atlas.microsoft.com
    description: Microsoft Azure Azure Maps Spatial Service — Spatial business capability. Self-contained, no shared references.
    resources:
    - name: spatial-buffer-format
      path: /spatial/buffer/{format}
      operations:
      - name: microsoftazurespatialpostbuffer
        method: POST
        description: Microsoft Azure Post Spatial Buffer Format
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: bufferRequestBody
          in: body
          type: string
          description: The FeatureCollection and the list of distances (one per feature or one for all features).
          required: true
      - name: microsoftazurespatialgetbuffer
        method: GET
        description: Microsoft Azure Get Spatial Buffer Format
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: distances
          in: query
          type: string
          description: The list of distances (one per feature or one for all features), delimited by semicolons. For example,
            12.34;-56.78. Positive distance will generate a buffer ou
          required: true
    - name: spatial-closestPoint-format
      path: /spatial/closestPoint/{format}
      operations:
      - name: microsoftazurespatialpostclosestpoint
        method: POST
        description: Microsoft Azure Post Spatial Closestpoint Format
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: lat
          in: query
          type: number
          description: 'The base point latitude of the location being passed.  Example: 47.622942.'
          required: true
        - name: lon
          in: query
          type: number
          description: 'The base point longitude of the location being passed.  Example: -122.316456.'
          required: true
        - name: numberOfClosestPoints
          in: query
          type: integer
          description: 'The number of closest points expected from response. Default: 1, minimum: 1 and maximum: 50'
        - name: closestPointRequestBody
          in: body
          type: string
          description: The FeatureCollection of Point geometries from which closest point to source point should be determined.
            All the feature's properties should contain `geometryId
          required: true
      - name: microsoftazurespatialgetclosestpoint
        method: GET
        description: Microsoft Azure Get Spatial Closestpoint Format
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: lat
          in: query
          type: number
          description: 'The base point latitude of the location being passed.  Example: 47.622942.'
          required: true
        - name: lon
          in: query
          type: number
          description: 'The base point longitude of the location being passed.  Example: -122.316456.'
          required: true
        - name: numberOfClosestPoints
          in: query
          type: integer
          description: 'The number of closest points expected from response. Default: 1, minimum: 1 and maximum: 50'
    - name: spatial-geofence-format
      path: /spatial/geofence/{format}
      operations:
      - name: microsoftazurespatialgetgeofence
        method: GET
        description: Microsoft Azure Get Spatial Geofence Format
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: deviceId
          in: query
          type: string
          description: ID of the device
          required: true
        - name: udId
          in: query
          type: string
          description: The unique id returned from [Data Upload API](https://docs.microsoft.com/en-us/rest/api/maps/data/uploadPreview)
            after uploading a valid GeoJSON FeatureCollecti
          required: true
        - name: lat
          in: query
          type: number
          description: 'The latitude of the location being passed.  Example: 48.36.'
          required: true
        - name: lon
          in: query
          type: number
          description: 'The longitude of the location being passed.  Example: -124.63.'
          required: true
        - name: z
          in: query
          type: number
          description: 'The sea level in meter of the location being passed. If this parameter is presented, 2D extrusion
            is used. Example: 200.'
        - name: userTime
          in: query
          type: string
          description: The user request time. If not presented in the request, the default value is DateTime.Now.
        - name: searchBuffer
          in: query
          type: number
          description: The radius of the buffer around the geofence in meters that defines how far to search inside and outside
            the border of the fence against the coordinate that was
        - name: isAsync
          in: query
          type: boolean
          description: If true, the request will use async event mechanism; if false, the request will be synchronized and
            do not trigger any event. The default value is false.
      - name: microsoftazurespatialpostgeofence
        method: POST
        description: Microsoft Azure Post Spatial Geofence Format
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: deviceId
          in: query
          type: string
          description: ID of the device
          required: true
        - name: lat
          in: query
          type: number
          description: 'The latitude of the location being passed.  Example: 48.36.'
          required: true
        - name: lon
          in: query
          type: number
          description: 'The longitude of the location being passed.  Example: -124.63.'
          required: true
        - name: z
          in: query
          type: number
          description: 'The sea level in meter of the location being passed. If this parameter is presented, 2D extrusion
            geofencing is applied. Example: 200.'
        - name: userTime
          in: query
          type: string
          description: The user request time. If not presented in the request, the default value is DateTime.UtcNow.
        - name: searchBuffer
          in: query
          type: number
          description: The radius of the buffer around the geofence in meters that defines how far to search inside and outside
            the border of the fence against the coordinate that was
        - name: isAsync
          in: query
          type: boolean
          description: If true, the request will use async event mechanism; if false, the request will be synchronized and
            do not trigger any event. The default value is false.
        - name: searchGeofenceRequestBody
          in: body
          type: string
          description: The geofencing GeoJSON data.
          required: true
    - name: spatial-greatCircleDistance-format
      path: /spatial/greatCircleDistance/{format}
      operations:
      - name: microsoftazurespatialgetgreatcircledistance
        method: GET
        description: Microsoft Azure Get Spatial Greatcircledistance Format
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: query
          in: query
          type: string
          description: 'The Coordinates through which the distance is calculated, delimited by a colon. Two coordinates are
            required.  The first one is the source point coordinate and '
          required: true
    - name: spatial-pointInPolygon-format
      path: /spatial/pointInPolygon/{format}
      operations:
      - name: microsoftazurespatialpostpointinpolygon
        method: POST
        description: Microsoft Azure Post Spatial Pointinpolygon Format
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: lat
          in: query
          type: number
          description: 'The base point latitude of the location being passed.  Example: 47.622942.'
          required: true
        - name: lon
          in: query
          type: number
          description: 'The base point longitude of the location being passed.  Example: -122.316456.'
          required: true
        - name: pointInPolygonRequestBody
          in: body
          type: string
          description: A FeatureCollection with a set of Polygon/MultiPolygon geometries. The maximum number of vertices accepted
            to form a Polygon is 10,000. All the feature's proper
          required: true
      - name: microsoftazurespatialgetpointinpolygon
        method: GET
        description: Microsoft Azure Get Spatial Pointinpolygon Format
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: lat
          in: query
          type: number
          description: 'The base point latitude of the location being passed.  Example: 47.622942.'
          required: true
        - name: lon
          in: query
          type: number
          description: 'The base point longitude of the location being passed.  Example: -122.316456.'
          required: true
  exposes:
  - type: rest
    namespace: azure-maps-spatial-service-spatial-rest
    port: 8080
    description: REST adapter for Microsoft Azure Azure Maps Spatial Service — Spatial. One Spectral-compliant resource per
      consumed operation, prefixed with /v1.
    resources:
    - path: /v1/spatial/buffer/{format}
      name: spatial-buffer-format
      description: REST surface for spatial-buffer-format.
      operations:
      - method: POST
        name: microsoftazurespatialpostbuffer
        description: Microsoft Azure Post Spatial Buffer Format
        call: azure-maps-spatial-service-spatial.microsoftazurespatialpostbuffer
        with:
          bufferRequestBody: rest.bufferRequestBody
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: microsoftazurespatialgetbuffer
        description: Microsoft Azure Get Spatial Buffer Format
        call: azure-maps-spatial-service-spatial.microsoftazurespatialgetbuffer
        with:
          distances: rest.distances
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/spatial/closestpoint/{format}
      name: spatial-closestpoint-format
      description: REST surface for spatial-closestPoint-format.
      operations:
      - method: POST
        name: microsoftazurespatialpostclosestpoint
        description: Microsoft Azure Post Spatial Closestpoint Format
        call: azure-maps-spatial-service-spatial.microsoftazurespatialpostclosestpoint
        with:
          lat: rest.lat
          lon: rest.lon
          numberOfClosestPoints: rest.numberOfClosestPoints
          closestPointRequestBody: rest.closestPointRequestBody
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: microsoftazurespatialgetclosestpoint
        description: Microsoft Azure Get Spatial Closestpoint Format
        call: azure-maps-spatial-service-spatial.microsoftazurespatialgetclosestpoint
        with:
          lat: rest.lat
          lon: rest.lon
          numberOfClosestPoints: rest.numberOfClosestPoints
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/spatial/geofence/{format}
      name: spatial-geofence-format
      description: REST surface for spatial-geofence-format.
      operations:
      - method: GET
        name: microsoftazurespatialgetgeofence
        description: Microsoft Azure Get Spatial Geofence Format
        call: azure-maps-spatial-service-spatial.microsoftazurespatialgetgeofence
        with:
          deviceId: rest.deviceId
          udId: rest.udId
          lat: rest.lat
          lon: rest.lon
          z: rest.z
          userTime: rest.userTime
          searchBuffer: rest.searchBuffer
          isAsync: rest.isAsync
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: microsoftazurespatialpostgeofence
        description: Microsoft Azure Post Spatial Geofence Format
        call: azure-maps-spatial-service-spatial.microsoftazurespatialpostgeofence
        with:
          deviceId: rest.deviceId
          lat: rest.lat
          lon: rest.lon
          z: rest.z
          userTime: rest.userTime
          searchBuffer: rest.searchBuffer
          isAsync: rest.isAsync
          searchGeofenceRequestBody: rest.searchGeofenceRequestBody
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/spatial/greatcircledistance/{format}
      name: spatial-greatcircledistance-format
      description: REST surface for spatial-greatCircleDistance-format.
      operations:
      - method: GET
        name: microsoftazurespatialgetgreatcircledistance
        description: Microsoft Azure Get Spatial Greatcircledistance Format
        call: azure-maps-spatial-service-spatial.microsoftazurespatialgetgreatcircledistance
        with:
          query: rest.query
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/spatial/pointinpolygon/{format}
      name: spatial-pointinpolygon-format
      description: REST surface for spatial-pointInPolygon-format.
      operations:
      - method: POST
        name: microsoftazurespatialpostpointinpolygon
        description: Microsoft Azure Post Spatial Pointinpolygon Format
        call: azure-maps-spatial-service-spatial.microsoftazurespatialpostpointinpolygon
        with:
          lat: rest.lat
          lon: rest.lon
          pointInPolygonRequestBody: rest.pointInPolygonRequestBody
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: microsoftazurespatialgetpointinpolygon
        description: Microsoft Azure Get Spatial Pointinpolygon Format
        call: azure-maps-spatial-service-spatial.microsoftazurespatialgetpointinpolygon
        with:
          lat: rest.lat
          lon: rest.lon
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: azure-maps-spatial-service-spatial-mcp
    port: 9090
    transport: http
    description: MCP adapter for Microsoft Azure Azure Maps Spatial Service — Spatial. One tool per consumed operation, routed
      inline through this capability's consumes block.
    tools:
    - name: microsoft-azure-post-spatial-buffer
      description: Microsoft Azure Post Spatial Buffer Format
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: azure-maps-spatial-service-spatial.microsoftazurespatialpostbuffer
      with:
        bufferRequestBody: tools.bufferRequestBody
      outputParameters:
      - type: object
        mapping: $.
    - name: microsoft-azure-get-spatial-buffer
      description: Microsoft Azure Get Spatial Buffer Format
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: azure-maps-spatial-service-spatial.microsoftazurespatialgetbuffer
      with:
        distances: tools.distances
      outputParameters:
      - type: object
        mapping: $.
    - name: microsoft-azure-post-spatial-closestpoint
      description: Microsoft Azure Post Spatial Closestpoint Format
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: azure-maps-spatial-service-spatial.microsoftazurespatialpostclosestpoint
      with:
        lat: tools.lat
        lon: tools.lon
        numberOfClosestPoints: tools.numberOfClosestPoints
        closestPointRequestBody: tools.closestPointRequestBody
      outputParameters:
      - type: object
        mapping: $.
    - name: microsoft-azure-get-spatial-closestpoint
      description: Microsoft Azure Get Spatial Closestpoint Format
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: azure-maps-spatial-service-spatial.microsoftazurespatialgetclosestpoint
      with:
        lat: tools.lat
        lon: tools.lon
        numberOfClosestPoints: tools.numberOfClosestPoints
      outputParameters:
      - type: object
        mapping: $.
    - name: microsoft-azure-get-spatial-geofence
      description: Microsoft Azure Get Spatial Geofence Format
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: azure-maps-spatial-service-spatial.microsoftazurespatialgetgeofence
      with:
        deviceId: tools.deviceId
        udId: tools.udId
        lat: tools.lat
        lon: tools.lon
        z: tools.z
        userTime: tools.userTime
        searchBuffer: tools.searchBuffer
        isAsync: tools.isAsync
      outputParameters:
      - type: object
        mapping: $.
    - name: microsoft-azure-post-spatial-geofence
      description: Microsoft Azure Post Spatial Geofence Format
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: azure-maps-spatial-service-spatial.microsoftazurespatialpostgeofence
      with:
        deviceId: tools.deviceId
        lat: tools.lat
        lon: tools.lon
        z: tools.z
        userTime: tools.userTime
        searchBuffer: tools.searchBuffer
        isAsync: tools.isAsync
        searchGeofenceRequestBody: tools.searchGeofenceRequestBody
      outputParameters:
      - type: object
        mapping: $.
    - name: microsoft-azure-get-spatial-greatcircledistance
      description: Microsoft Azure Get Spatial Greatcircledistance Format
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: azure-maps-spatial-service-spatial.microsoftazurespatialgetgreatcircledistance
      with:
        query: tools.query
      outputParameters:
      - type: object
        mapping: $.
    - name: microsoft-azure-post-spatial-pointinpolygon
      description: Microsoft Azure Post Spatial Pointinpolygon Format
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: azure-maps-spatial-service-spatial.microsoftazurespatialpostpointinpolygon
      with:
        lat: tools.lat
        lon: tools.lon
        pointInPolygonRequestBody: tools.pointInPolygonRequestBody
      outputParameters:
      - type: object
        mapping: $.
    - name: microsoft-azure-get-spatial-pointinpolygon
      description: Microsoft Azure Get Spatial Pointinpolygon Format
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: azure-maps-spatial-service-spatial.microsoftazurespatialgetpointinpolygon
      with:
        lat: tools.lat
        lon: tools.lon
      outputParameters:
      - type: object
        mapping: $.