Nacos · Capability
Nacos Open API — Service Discovery
Nacos Open API — Service Discovery. 6 operations. Lead operation: Update instance health status. Self-contained Naftiko capability covering one Nacos business surface.
What You Can Do
PUT
Updateinstancehealth
— Update instance health status
/v1/v1/ns/health/instance
POST
Registerinstance
— Register an instance
/v1/v1/ns/instance
DELETE
Deregisterinstance
— Deregister an instance
/v1/v1/ns/instance
PUT
Updateinstance
— Update instance
/v1/v1/ns/instance
PUT
Sendbeat
— Send instance heartbeat
/v1/v1/ns/instance/beat
GET
Listinstances
— List instances
/v1/v1/ns/instance/list
MCP Tools
update-instance-health-status
Update instance health status
idempotent
register-instance
Register an instance
deregister-instance
Deregister an instance
idempotent
update-instance
Update instance
idempotent
send-instance-heartbeat
Send instance heartbeat
idempotent
list-instances
List instances
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Nacos Open API — Service Discovery
description: 'Nacos Open API — Service Discovery. 6 operations. Lead operation: Update instance health status. Self-contained
Naftiko capability covering one Nacos business surface.'
tags:
- Nacos
- Service Discovery
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
NACOS_API_KEY: NACOS_API_KEY
capability:
consumes:
- type: http
namespace: open-service-discovery
baseUri: http://localhost:8848/nacos
description: Nacos Open API — Service Discovery business capability. Self-contained, no shared references.
resources:
- name: v1-ns-health-instance
path: /v1/ns/health/instance
operations:
- name: updateinstancehealth
method: PUT
description: Update instance health status
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: serviceName
in: query
type: string
required: true
- name: groupName
in: query
type: string
- name: namespaceId
in: query
type: string
- name: ip
in: query
type: string
required: true
- name: port
in: query
type: integer
required: true
- name: healthy
in: query
type: boolean
required: true
- name: clusterName
in: query
type: string
- name: v1-ns-instance
path: /v1/ns/instance
operations:
- name: registerinstance
method: POST
description: Register an instance
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: deregisterinstance
method: DELETE
description: Deregister an instance
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: serviceName
in: query
type: string
required: true
- name: groupName
in: query
type: string
- name: namespaceId
in: query
type: string
- name: ip
in: query
type: string
required: true
- name: port
in: query
type: integer
required: true
- name: clusterName
in: query
type: string
- name: ephemeral
in: query
type: boolean
- name: updateinstance
method: PUT
description: Update instance
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: v1-ns-instance-beat
path: /v1/ns/instance/beat
operations:
- name: sendbeat
method: PUT
description: Send instance heartbeat
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: serviceName
in: query
type: string
required: true
- name: groupName
in: query
type: string
- name: namespaceId
in: query
type: string
- name: beat
in: query
type: string
description: Beat info (JSON string)
required: true
- name: ephemeral
in: query
type: boolean
- name: v1-ns-instance-list
path: /v1/ns/instance/list
operations:
- name: listinstances
method: GET
description: List instances
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: serviceName
in: query
type: string
required: true
- name: groupName
in: query
type: string
- name: namespaceId
in: query
type: string
- name: clusters
in: query
type: string
description: Comma-separated cluster names
- name: healthyOnly
in: query
type: boolean
authentication:
type: apikey
key: accessToken
value: '{{env.NACOS_API_KEY}}'
placement: query
exposes:
- type: rest
namespace: open-service-discovery-rest
port: 8080
description: REST adapter for Nacos Open API — Service Discovery. One Spectral-compliant resource per consumed operation,
prefixed with /v1.
resources:
- path: /v1/v1/ns/health/instance
name: v1-ns-health-instance
description: REST surface for v1-ns-health-instance.
operations:
- method: PUT
name: updateinstancehealth
description: Update instance health status
call: open-service-discovery.updateinstancehealth
with:
serviceName: rest.serviceName
groupName: rest.groupName
namespaceId: rest.namespaceId
ip: rest.ip
port: rest.port
healthy: rest.healthy
clusterName: rest.clusterName
outputParameters:
- type: object
mapping: $.
- path: /v1/v1/ns/instance
name: v1-ns-instance
description: REST surface for v1-ns-instance.
operations:
- method: POST
name: registerinstance
description: Register an instance
call: open-service-discovery.registerinstance
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: deregisterinstance
description: Deregister an instance
call: open-service-discovery.deregisterinstance
with:
serviceName: rest.serviceName
groupName: rest.groupName
namespaceId: rest.namespaceId
ip: rest.ip
port: rest.port
clusterName: rest.clusterName
ephemeral: rest.ephemeral
outputParameters:
- type: object
mapping: $.
- method: PUT
name: updateinstance
description: Update instance
call: open-service-discovery.updateinstance
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/v1/ns/instance/beat
name: v1-ns-instance-beat
description: REST surface for v1-ns-instance-beat.
operations:
- method: PUT
name: sendbeat
description: Send instance heartbeat
call: open-service-discovery.sendbeat
with:
serviceName: rest.serviceName
groupName: rest.groupName
namespaceId: rest.namespaceId
beat: rest.beat
ephemeral: rest.ephemeral
outputParameters:
- type: object
mapping: $.
- path: /v1/v1/ns/instance/list
name: v1-ns-instance-list
description: REST surface for v1-ns-instance-list.
operations:
- method: GET
name: listinstances
description: List instances
call: open-service-discovery.listinstances
with:
serviceName: rest.serviceName
groupName: rest.groupName
namespaceId: rest.namespaceId
clusters: rest.clusters
healthyOnly: rest.healthyOnly
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: open-service-discovery-mcp
port: 9090
transport: http
description: MCP adapter for Nacos Open API — Service Discovery. One tool per consumed operation, routed inline through
this capability's consumes block.
tools:
- name: update-instance-health-status
description: Update instance health status
hints:
readOnly: false
destructive: false
idempotent: true
call: open-service-discovery.updateinstancehealth
with:
serviceName: tools.serviceName
groupName: tools.groupName
namespaceId: tools.namespaceId
ip: tools.ip
port: tools.port
healthy: tools.healthy
clusterName: tools.clusterName
outputParameters:
- type: object
mapping: $.
- name: register-instance
description: Register an instance
hints:
readOnly: false
destructive: false
idempotent: false
call: open-service-discovery.registerinstance
with:
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: deregister-instance
description: Deregister an instance
hints:
readOnly: false
destructive: true
idempotent: true
call: open-service-discovery.deregisterinstance
with:
serviceName: tools.serviceName
groupName: tools.groupName
namespaceId: tools.namespaceId
ip: tools.ip
port: tools.port
clusterName: tools.clusterName
ephemeral: tools.ephemeral
outputParameters:
- type: object
mapping: $.
- name: update-instance
description: Update instance
hints:
readOnly: false
destructive: false
idempotent: true
call: open-service-discovery.updateinstance
with:
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: send-instance-heartbeat
description: Send instance heartbeat
hints:
readOnly: false
destructive: false
idempotent: true
call: open-service-discovery.sendbeat
with:
serviceName: tools.serviceName
groupName: tools.groupName
namespaceId: tools.namespaceId
beat: tools.beat
ephemeral: tools.ephemeral
outputParameters:
- type: object
mapping: $.
- name: list-instances
description: List instances
hints:
readOnly: true
destructive: false
idempotent: true
call: open-service-discovery.listinstances
with:
serviceName: tools.serviceName
groupName: tools.groupName
namespaceId: tools.namespaceId
clusters: tools.clusters
healthyOnly: tools.healthyOnly
outputParameters:
- type: object
mapping: $.