Netflix Eureka · Capability

Netflix Eureka REST API

Eureka REST operations for service registration, discovery, and instance management. Eureka is a REST-based service for locating services for the purpose of load balancing and failover of middle-tier servers.

Run with Naftiko NetflixEurekaAPI

What You Can Do

GET
Getallapplications — Get all registered applications
/apps
GET
Getapplication — Get application by name
/apps/{appId}
POST
Registerinstance — Register a new application instance
/apps/{appId}
GET
Getinstance — Get a specific instance
/apps/{appId}/{instanceId}
DELETE
Deregisterinstance — Deregister an instance
/apps/{appId}/{instanceId}
PUT
Sendheartbeat — Send heartbeat
/apps/{appId}/{instanceId}
PUT
Updateinstancestatus — Update instance status override
/apps/{appId}/{instanceId}/status
DELETE
Removeinstancestatusoverride — Remove status override
/apps/{appId}/{instanceId}/status
PUT
Updateinstancemetadata — Update instance metadata
/apps/{appId}/{instanceId}/metadata
GET
Getinstancebyid — Get instance by ID
/instances/{instanceId}
GET
Getdelta — Get recent changes (delta)
/apps/delta
GET
Getbyvipaddress — Query by VIP address
/vips/{vipAddress}
GET
Getbysecurevipaddress — Query by secure VIP address
/svips/{svipAddress}

MCP Tools

getallapplications

Get all registered applications

read-only idempotent
getapplication

Get application by name

read-only idempotent
registerinstance

Register a new application instance

getinstance

Get a specific instance

read-only idempotent
deregisterinstance

Deregister an instance

idempotent
sendheartbeat

Send heartbeat

idempotent
updateinstancestatus

Update instance status override

idempotent
removeinstancestatusoverride

Remove status override

idempotent
updateinstancemetadata

Update instance metadata

idempotent
getinstancebyid

Get instance by ID

read-only idempotent
getdelta

Get recent changes (delta)

read-only idempotent
getbyvipaddress

Query by VIP address

read-only idempotent
getbysecurevipaddress

Query by secure VIP address

read-only idempotent

Capability Spec

netflix-eureka-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Netflix Eureka REST API
  description: Eureka REST operations for service registration, discovery, and instance management. Eureka is a REST-based
    service for locating services for the purpose of load balancing and failover of middle-tier servers.
  tags:
  - Netflix
  - Eureka
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: netflix-eureka
    baseUri: http://localhost:8761/eureka
    description: Netflix Eureka REST API HTTP API.
    resources:
    - name: apps
      path: /apps
      operations:
      - name: getallapplications
        method: GET
        description: Get all registered applications
        inputParameters:
        - name: regions
          in: query
          type: string
          description: Comma-separated list of remote regions to include
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: apps-appid
      path: /apps/{appId}
      operations:
      - name: getapplication
        method: GET
        description: Get application by name
        inputParameters:
        - name: appId
          in: path
          type: string
          required: true
          description: Application name
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: registerinstance
        method: POST
        description: Register a new application instance
        inputParameters:
        - name: appId
          in: path
          type: string
          required: true
          description: Application name
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: apps-appid-instanceid
      path: /apps/{appId}/{instanceId}
      operations:
      - name: getinstance
        method: GET
        description: Get a specific instance
        inputParameters:
        - name: appId
          in: path
          type: string
          required: true
        - name: instanceId
          in: path
          type: string
          required: true
          description: Instance ID (typically hostname)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deregisterinstance
        method: DELETE
        description: Deregister an instance
        inputParameters:
        - name: appId
          in: path
          type: string
          required: true
        - name: instanceId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: sendheartbeat
        method: PUT
        description: Send heartbeat
        inputParameters:
        - name: appId
          in: path
          type: string
          required: true
        - name: instanceId
          in: path
          type: string
          required: true
        - name: status
          in: query
          type: string
          description: Overridden status value
        - name: lastDirtyTimestamp
          in: query
          type: string
          description: Last dirty timestamp for conflict resolution
        - name: overriddenstatus
          in: query
          type: string
          description: Overridden status
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: apps-appid-instanceid-status
      path: /apps/{appId}/{instanceId}/status
      operations:
      - name: updateinstancestatus
        method: PUT
        description: Update instance status override
        inputParameters:
        - name: appId
          in: path
          type: string
          required: true
        - name: instanceId
          in: path
          type: string
          required: true
        - name: value
          in: query
          type: string
          required: true
          description: New status value
        - name: lastDirtyTimestamp
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: removeinstancestatusoverride
        method: DELETE
        description: Remove status override
        inputParameters:
        - name: appId
          in: path
          type: string
          required: true
        - name: instanceId
          in: path
          type: string
          required: true
        - name: lastDirtyTimestamp
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: apps-appid-instanceid-metadata
      path: /apps/{appId}/{instanceId}/metadata
      operations:
      - name: updateinstancemetadata
        method: PUT
        description: Update instance metadata
        inputParameters:
        - name: appId
          in: path
          type: string
          required: true
        - name: instanceId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: instances-instanceid
      path: /instances/{instanceId}
      operations:
      - name: getinstancebyid
        method: GET
        description: Get instance by ID
        inputParameters:
        - name: instanceId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: apps-delta
      path: /apps/delta
      operations:
      - name: getdelta
        method: GET
        description: Get recent changes (delta)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: vips-vipaddress
      path: /vips/{vipAddress}
      operations:
      - name: getbyvipaddress
        method: GET
        description: Query by VIP address
        inputParameters:
        - name: vipAddress
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: svips-svipaddress
      path: /svips/{svipAddress}
      operations:
      - name: getbysecurevipaddress
        method: GET
        description: Query by secure VIP address
        inputParameters:
        - name: svipAddress
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: netflix-eureka-rest
    description: REST adapter for Netflix Eureka REST API.
    resources:
    - path: /apps
      name: getallapplications
      operations:
      - method: GET
        name: getallapplications
        description: Get all registered applications
        call: netflix-eureka.getallapplications
        outputParameters:
        - type: object
          mapping: $.
    - path: /apps/{appId}
      name: getapplication
      operations:
      - method: GET
        name: getapplication
        description: Get application by name
        call: netflix-eureka.getapplication
        with:
          appId: rest.appId
        outputParameters:
        - type: object
          mapping: $.
    - path: /apps/{appId}
      name: registerinstance
      operations:
      - method: POST
        name: registerinstance
        description: Register a new application instance
        call: netflix-eureka.registerinstance
        with:
          appId: rest.appId
        outputParameters:
        - type: object
          mapping: $.
    - path: /apps/{appId}/{instanceId}
      name: getinstance
      operations:
      - method: GET
        name: getinstance
        description: Get a specific instance
        call: netflix-eureka.getinstance
        with:
          appId: rest.appId
          instanceId: rest.instanceId
        outputParameters:
        - type: object
          mapping: $.
    - path: /apps/{appId}/{instanceId}
      name: deregisterinstance
      operations:
      - method: DELETE
        name: deregisterinstance
        description: Deregister an instance
        call: netflix-eureka.deregisterinstance
        with:
          appId: rest.appId
          instanceId: rest.instanceId
        outputParameters:
        - type: object
          mapping: $.
    - path: /apps/{appId}/{instanceId}
      name: sendheartbeat
      operations:
      - method: PUT
        name: sendheartbeat
        description: Send heartbeat
        call: netflix-eureka.sendheartbeat
        with:
          appId: rest.appId
          instanceId: rest.instanceId
        outputParameters:
        - type: object
          mapping: $.
    - path: /apps/{appId}/{instanceId}/status
      name: updateinstancestatus
      operations:
      - method: PUT
        name: updateinstancestatus
        description: Update instance status override
        call: netflix-eureka.updateinstancestatus
        with:
          appId: rest.appId
          instanceId: rest.instanceId
        outputParameters:
        - type: object
          mapping: $.
    - path: /apps/{appId}/{instanceId}/status
      name: removeinstancestatusoverride
      operations:
      - method: DELETE
        name: removeinstancestatusoverride
        description: Remove status override
        call: netflix-eureka.removeinstancestatusoverride
        with:
          appId: rest.appId
          instanceId: rest.instanceId
        outputParameters:
        - type: object
          mapping: $.
    - path: /apps/{appId}/{instanceId}/metadata
      name: updateinstancemetadata
      operations:
      - method: PUT
        name: updateinstancemetadata
        description: Update instance metadata
        call: netflix-eureka.updateinstancemetadata
        with:
          appId: rest.appId
          instanceId: rest.instanceId
        outputParameters:
        - type: object
          mapping: $.
    - path: /instances/{instanceId}
      name: getinstancebyid
      operations:
      - method: GET
        name: getinstancebyid
        description: Get instance by ID
        call: netflix-eureka.getinstancebyid
        with:
          instanceId: rest.instanceId
        outputParameters:
        - type: object
          mapping: $.
    - path: /apps/delta
      name: getdelta
      operations:
      - method: GET
        name: getdelta
        description: Get recent changes (delta)
        call: netflix-eureka.getdelta
        outputParameters:
        - type: object
          mapping: $.
    - path: /vips/{vipAddress}
      name: getbyvipaddress
      operations:
      - method: GET
        name: getbyvipaddress
        description: Query by VIP address
        call: netflix-eureka.getbyvipaddress
        with:
          vipAddress: rest.vipAddress
        outputParameters:
        - type: object
          mapping: $.
    - path: /svips/{svipAddress}
      name: getbysecurevipaddress
      operations:
      - method: GET
        name: getbysecurevipaddress
        description: Query by secure VIP address
        call: netflix-eureka.getbysecurevipaddress
        with:
          svipAddress: rest.svipAddress
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: netflix-eureka-mcp
    transport: http
    description: MCP adapter for Netflix Eureka REST API for AI agent use.
    tools:
    - name: getallapplications
      description: Get all registered applications
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: netflix-eureka.getallapplications
      with:
        regions: tools.regions
      inputParameters:
      - name: regions
        type: string
        description: Comma-separated list of remote regions to include
      outputParameters:
      - type: object
        mapping: $.
    - name: getapplication
      description: Get application by name
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: netflix-eureka.getapplication
      with:
        appId: tools.appId
      inputParameters:
      - name: appId
        type: string
        description: Application name
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: registerinstance
      description: Register a new application instance
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: netflix-eureka.registerinstance
      with:
        appId: tools.appId
      inputParameters:
      - name: appId
        type: string
        description: Application name
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: getinstance
      description: Get a specific instance
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: netflix-eureka.getinstance
      with:
        appId: tools.appId
        instanceId: tools.instanceId
      inputParameters:
      - name: appId
        type: string
        description: appId
        required: true
      - name: instanceId
        type: string
        description: Instance ID (typically hostname)
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: deregisterinstance
      description: Deregister an instance
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: netflix-eureka.deregisterinstance
      with:
        appId: tools.appId
        instanceId: tools.instanceId
      inputParameters:
      - name: appId
        type: string
        description: appId
        required: true
      - name: instanceId
        type: string
        description: instanceId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: sendheartbeat
      description: Send heartbeat
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: netflix-eureka.sendheartbeat
      with:
        appId: tools.appId
        instanceId: tools.instanceId
        status: tools.status
        lastDirtyTimestamp: tools.lastDirtyTimestamp
        overriddenstatus: tools.overriddenstatus
      inputParameters:
      - name: appId
        type: string
        description: appId
        required: true
      - name: instanceId
        type: string
        description: instanceId
        required: true
      - name: status
        type: string
        description: Overridden status value
      - name: lastDirtyTimestamp
        type: string
        description: Last dirty timestamp for conflict resolution
      - name: overriddenstatus
        type: string
        description: Overridden status
      outputParameters:
      - type: object
        mapping: $.
    - name: updateinstancestatus
      description: Update instance status override
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: netflix-eureka.updateinstancestatus
      with:
        appId: tools.appId
        instanceId: tools.instanceId
        value: tools.value
        lastDirtyTimestamp: tools.lastDirtyTimestamp
      inputParameters:
      - name: appId
        type: string
        description: appId
        required: true
      - name: instanceId
        type: string
        description: instanceId
        required: true
      - name: value
        type: string
        description: New status value
        required: true
      - name: lastDirtyTimestamp
        type: string
        description: lastDirtyTimestamp
      outputParameters:
      - type: object
        mapping: $.
    - name: removeinstancestatusoverride
      description: Remove status override
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: netflix-eureka.removeinstancestatusoverride
      with:
        appId: tools.appId
        instanceId: tools.instanceId
        lastDirtyTimestamp: tools.lastDirtyTimestamp
      inputParameters:
      - name: appId
        type: string
        description: appId
        required: true
      - name: instanceId
        type: string
        description: instanceId
        required: true
      - name: lastDirtyTimestamp
        type: string
        description: lastDirtyTimestamp
      outputParameters:
      - type: object
        mapping: $.
    - name: updateinstancemetadata
      description: Update instance metadata
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: netflix-eureka.updateinstancemetadata
      with:
        appId: tools.appId
        instanceId: tools.instanceId
      inputParameters:
      - name: appId
        type: string
        description: appId
        required: true
      - name: instanceId
        type: string
        description: instanceId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: getinstancebyid
      description: Get instance by ID
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: netflix-eureka.getinstancebyid
      with:
        instanceId: tools.instanceId
      inputParameters:
      - name: instanceId
        type: string
        description: instanceId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: getdelta
      description: Get recent changes (delta)
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: netflix-eureka.getdelta
      outputParameters:
      - type: object
        mapping: $.
    - name: getbyvipaddress
      description: Query by VIP address
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: netflix-eureka.getbyvipaddress
      with:
        vipAddress: tools.vipAddress
      inputParameters:
      - name: vipAddress
        type: string
        description: vipAddress
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: getbysecurevipaddress
      description: Query by secure VIP address
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: netflix-eureka.getbysecurevipaddress
      with:
        svipAddress: tools.svipAddress
      inputParameters:
      - name: svipAddress
        type: string
        description: svipAddress
        required: true
      outputParameters:
      - type: object
        mapping: $.