Apache Hadoop · Capability

Apache Hadoop REST APIs

Aggregated OpenAPI definition for the public REST APIs exposed by Apache Hadoop. Includes WebHDFS for filesystem operations and the YARN ResourceManager for cluster, application, and node management.

Run with Naftiko HadoopAPI

What You Can Do

GET
Webhdfsget — WebHDFS GET operations
/webhdfs/v1/{path}
PUT
Webhdfsput — WebHDFS PUT operations
/webhdfs/v1/{path}
POST
Webhdfspost — WebHDFS POST operations
/webhdfs/v1/{path}
DELETE
Webhdfsdelete — WebHDFS DELETE
/webhdfs/v1/{path}
GET
Getclusterinfo — Cluster info
/ws/v1/cluster/info
GET
Getclustermetrics — Cluster metrics
/ws/v1/cluster/metrics
GET
Getscheduler — Scheduler info
/ws/v1/cluster/scheduler
GET
Listapps — List applications
/ws/v1/cluster/apps
POST
Submitapp — Submit a new application
/ws/v1/cluster/apps
GET
Getapp — Application details
/ws/v1/cluster/apps/{appid}
PUT
Updateappstate — Update application state
/ws/v1/cluster/apps/{appid}/state
PUT
Updateappqueue — Move application to a different queue
/ws/v1/cluster/apps/{appid}/queue
PUT
Updateapppriority — Update application priority
/ws/v1/cluster/apps/{appid}/priority
GET
Listappattempts — List application attempts
/ws/v1/cluster/apps/{appid}/appattempts
GET
Listnodes — List nodes
/ws/v1/cluster/nodes
GET
Getnode — Node details
/ws/v1/cluster/nodes/{nodeid}
GET
Getappstatistics — Application statistics
/ws/v1/cluster/appstatistics

MCP Tools

webhdfsget

WebHDFS GET operations

read-only idempotent
webhdfsput

WebHDFS PUT operations

idempotent
webhdfspost

WebHDFS POST operations

webhdfsdelete

WebHDFS DELETE

idempotent
getclusterinfo

Cluster info

read-only idempotent
getclustermetrics

Cluster metrics

read-only idempotent
getscheduler

Scheduler info

read-only idempotent
listapps

List applications

read-only idempotent
submitapp

Submit a new application

getapp

Application details

read-only idempotent
updateappstate

Update application state

idempotent
updateappqueue

Move application to a different queue

idempotent
updateapppriority

Update application priority

idempotent
listappattempts

List application attempts

read-only idempotent
listnodes

List nodes

read-only idempotent
getnode

Node details

read-only idempotent
getappstatistics

Application statistics

read-only idempotent

Capability Spec

hadoop-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Apache Hadoop REST APIs
  description: Aggregated OpenAPI definition for the public REST APIs exposed by Apache Hadoop. Includes WebHDFS for filesystem
    operations and the YARN ResourceManager for cluster, application, and node management.
  tags:
  - Hadoop
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: hadoop
    baseUri: http://localhost:50070
    description: Apache Hadoop REST APIs HTTP API.
    resources:
    - name: webhdfs-v1-path
      path: /webhdfs/v1/{path}
      operations:
      - name: webhdfsget
        method: GET
        description: WebHDFS GET operations
        inputParameters:
        - name: path
          in: path
          type: string
          required: true
        - name: op
          in: query
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: webhdfsput
        method: PUT
        description: WebHDFS PUT operations
        inputParameters:
        - name: path
          in: path
          type: string
          required: true
        - name: op
          in: query
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: webhdfspost
        method: POST
        description: WebHDFS POST operations
        inputParameters:
        - name: path
          in: path
          type: string
          required: true
        - name: op
          in: query
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: webhdfsdelete
        method: DELETE
        description: WebHDFS DELETE
        inputParameters:
        - name: path
          in: path
          type: string
          required: true
        - name: op
          in: query
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ws-v1-cluster-info
      path: /ws/v1/cluster/info
      operations:
      - name: getclusterinfo
        method: GET
        description: Cluster info
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ws-v1-cluster-metrics
      path: /ws/v1/cluster/metrics
      operations:
      - name: getclustermetrics
        method: GET
        description: Cluster metrics
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ws-v1-cluster-scheduler
      path: /ws/v1/cluster/scheduler
      operations:
      - name: getscheduler
        method: GET
        description: Scheduler info
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ws-v1-cluster-apps
      path: /ws/v1/cluster/apps
      operations:
      - name: listapps
        method: GET
        description: List applications
        inputParameters:
        - name: state
          in: query
          type: string
        - name: user
          in: query
          type: string
        - name: queue
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: submitapp
        method: POST
        description: Submit a new application
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ws-v1-cluster-apps-appid
      path: /ws/v1/cluster/apps/{appid}
      operations:
      - name: getapp
        method: GET
        description: Application details
        inputParameters:
        - name: appid
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ws-v1-cluster-apps-appid-state
      path: /ws/v1/cluster/apps/{appid}/state
      operations:
      - name: updateappstate
        method: PUT
        description: Update application state
        inputParameters:
        - name: appid
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ws-v1-cluster-apps-appid-queue
      path: /ws/v1/cluster/apps/{appid}/queue
      operations:
      - name: updateappqueue
        method: PUT
        description: Move application to a different queue
        inputParameters:
        - name: appid
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ws-v1-cluster-apps-appid-priority
      path: /ws/v1/cluster/apps/{appid}/priority
      operations:
      - name: updateapppriority
        method: PUT
        description: Update application priority
        inputParameters:
        - name: appid
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ws-v1-cluster-apps-appid-appattempts
      path: /ws/v1/cluster/apps/{appid}/appattempts
      operations:
      - name: listappattempts
        method: GET
        description: List application attempts
        inputParameters:
        - name: appid
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ws-v1-cluster-nodes
      path: /ws/v1/cluster/nodes
      operations:
      - name: listnodes
        method: GET
        description: List nodes
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ws-v1-cluster-nodes-nodeid
      path: /ws/v1/cluster/nodes/{nodeid}
      operations:
      - name: getnode
        method: GET
        description: Node details
        inputParameters:
        - name: nodeid
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ws-v1-cluster-appstatistics
      path: /ws/v1/cluster/appstatistics
      operations:
      - name: getappstatistics
        method: GET
        description: Application statistics
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: hadoop-rest
    description: REST adapter for Apache Hadoop REST APIs.
    resources:
    - path: /webhdfs/v1/{path}
      name: webhdfsget
      operations:
      - method: GET
        name: webhdfsget
        description: WebHDFS GET operations
        call: hadoop.webhdfsget
        with:
          path: rest.path
        outputParameters:
        - type: object
          mapping: $.
    - path: /webhdfs/v1/{path}
      name: webhdfsput
      operations:
      - method: PUT
        name: webhdfsput
        description: WebHDFS PUT operations
        call: hadoop.webhdfsput
        with:
          path: rest.path
        outputParameters:
        - type: object
          mapping: $.
    - path: /webhdfs/v1/{path}
      name: webhdfspost
      operations:
      - method: POST
        name: webhdfspost
        description: WebHDFS POST operations
        call: hadoop.webhdfspost
        with:
          path: rest.path
        outputParameters:
        - type: object
          mapping: $.
    - path: /webhdfs/v1/{path}
      name: webhdfsdelete
      operations:
      - method: DELETE
        name: webhdfsdelete
        description: WebHDFS DELETE
        call: hadoop.webhdfsdelete
        with:
          path: rest.path
        outputParameters:
        - type: object
          mapping: $.
    - path: /ws/v1/cluster/info
      name: getclusterinfo
      operations:
      - method: GET
        name: getclusterinfo
        description: Cluster info
        call: hadoop.getclusterinfo
        outputParameters:
        - type: object
          mapping: $.
    - path: /ws/v1/cluster/metrics
      name: getclustermetrics
      operations:
      - method: GET
        name: getclustermetrics
        description: Cluster metrics
        call: hadoop.getclustermetrics
        outputParameters:
        - type: object
          mapping: $.
    - path: /ws/v1/cluster/scheduler
      name: getscheduler
      operations:
      - method: GET
        name: getscheduler
        description: Scheduler info
        call: hadoop.getscheduler
        outputParameters:
        - type: object
          mapping: $.
    - path: /ws/v1/cluster/apps
      name: listapps
      operations:
      - method: GET
        name: listapps
        description: List applications
        call: hadoop.listapps
        outputParameters:
        - type: object
          mapping: $.
    - path: /ws/v1/cluster/apps
      name: submitapp
      operations:
      - method: POST
        name: submitapp
        description: Submit a new application
        call: hadoop.submitapp
        outputParameters:
        - type: object
          mapping: $.
    - path: /ws/v1/cluster/apps/{appid}
      name: getapp
      operations:
      - method: GET
        name: getapp
        description: Application details
        call: hadoop.getapp
        with:
          appid: rest.appid
        outputParameters:
        - type: object
          mapping: $.
    - path: /ws/v1/cluster/apps/{appid}/state
      name: updateappstate
      operations:
      - method: PUT
        name: updateappstate
        description: Update application state
        call: hadoop.updateappstate
        with:
          appid: rest.appid
        outputParameters:
        - type: object
          mapping: $.
    - path: /ws/v1/cluster/apps/{appid}/queue
      name: updateappqueue
      operations:
      - method: PUT
        name: updateappqueue
        description: Move application to a different queue
        call: hadoop.updateappqueue
        with:
          appid: rest.appid
        outputParameters:
        - type: object
          mapping: $.
    - path: /ws/v1/cluster/apps/{appid}/priority
      name: updateapppriority
      operations:
      - method: PUT
        name: updateapppriority
        description: Update application priority
        call: hadoop.updateapppriority
        with:
          appid: rest.appid
        outputParameters:
        - type: object
          mapping: $.
    - path: /ws/v1/cluster/apps/{appid}/appattempts
      name: listappattempts
      operations:
      - method: GET
        name: listappattempts
        description: List application attempts
        call: hadoop.listappattempts
        with:
          appid: rest.appid
        outputParameters:
        - type: object
          mapping: $.
    - path: /ws/v1/cluster/nodes
      name: listnodes
      operations:
      - method: GET
        name: listnodes
        description: List nodes
        call: hadoop.listnodes
        outputParameters:
        - type: object
          mapping: $.
    - path: /ws/v1/cluster/nodes/{nodeid}
      name: getnode
      operations:
      - method: GET
        name: getnode
        description: Node details
        call: hadoop.getnode
        with:
          nodeid: rest.nodeid
        outputParameters:
        - type: object
          mapping: $.
    - path: /ws/v1/cluster/appstatistics
      name: getappstatistics
      operations:
      - method: GET
        name: getappstatistics
        description: Application statistics
        call: hadoop.getappstatistics
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: hadoop-mcp
    transport: http
    description: MCP adapter for Apache Hadoop REST APIs for AI agent use.
    tools:
    - name: webhdfsget
      description: WebHDFS GET operations
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: hadoop.webhdfsget
      with:
        path: tools.path
        op: tools.op
      inputParameters:
      - name: path
        type: string
        description: path
        required: true
      - name: op
        type: string
        description: op
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: webhdfsput
      description: WebHDFS PUT operations
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: hadoop.webhdfsput
      with:
        path: tools.path
        op: tools.op
      inputParameters:
      - name: path
        type: string
        description: path
        required: true
      - name: op
        type: string
        description: op
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: webhdfspost
      description: WebHDFS POST operations
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: hadoop.webhdfspost
      with:
        path: tools.path
        op: tools.op
      inputParameters:
      - name: path
        type: string
        description: path
        required: true
      - name: op
        type: string
        description: op
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: webhdfsdelete
      description: WebHDFS DELETE
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: hadoop.webhdfsdelete
      with:
        path: tools.path
        op: tools.op
      inputParameters:
      - name: path
        type: string
        description: path
        required: true
      - name: op
        type: string
        description: op
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: getclusterinfo
      description: Cluster info
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: hadoop.getclusterinfo
      outputParameters:
      - type: object
        mapping: $.
    - name: getclustermetrics
      description: Cluster metrics
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: hadoop.getclustermetrics
      outputParameters:
      - type: object
        mapping: $.
    - name: getscheduler
      description: Scheduler info
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: hadoop.getscheduler
      outputParameters:
      - type: object
        mapping: $.
    - name: listapps
      description: List applications
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: hadoop.listapps
      with:
        state: tools.state
        user: tools.user
        queue: tools.queue
      inputParameters:
      - name: state
        type: string
        description: state
      - name: user
        type: string
        description: user
      - name: queue
        type: string
        description: queue
      outputParameters:
      - type: object
        mapping: $.
    - name: submitapp
      description: Submit a new application
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: hadoop.submitapp
      outputParameters:
      - type: object
        mapping: $.
    - name: getapp
      description: Application details
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: hadoop.getapp
      with:
        appid: tools.appid
      inputParameters:
      - name: appid
        type: string
        description: appid
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: updateappstate
      description: Update application state
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: hadoop.updateappstate
      with:
        appid: tools.appid
      inputParameters:
      - name: appid
        type: string
        description: appid
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: updateappqueue
      description: Move application to a different queue
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: hadoop.updateappqueue
      with:
        appid: tools.appid
      inputParameters:
      - name: appid
        type: string
        description: appid
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: updateapppriority
      description: Update application priority
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: hadoop.updateapppriority
      with:
        appid: tools.appid
      inputParameters:
      - name: appid
        type: string
        description: appid
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listappattempts
      description: List application attempts
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: hadoop.listappattempts
      with:
        appid: tools.appid
      inputParameters:
      - name: appid
        type: string
        description: appid
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listnodes
      description: List nodes
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: hadoop.listnodes
      outputParameters:
      - type: object
        mapping: $.
    - name: getnode
      description: Node details
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: hadoop.getnode
      with:
        nodeid: tools.nodeid
      inputParameters:
      - name: nodeid
        type: string
        description: nodeid
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: getappstatistics
      description: Application statistics
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: hadoop.getappstatistics
      outputParameters:
      - type: object
        mapping: $.