Oracle Database · Capability

Oracle Database Oracle SODA (Simple Oracle Document Access) REST API — Documents

Oracle Database Oracle SODA (Simple Oracle Document Access) REST API — Documents. 7 operations. Lead operation: Oracle Database Get documents from a collection. Self-contained Naftiko capability covering one Oracle Database business surface.

Run with Naftiko Oracle DatabaseDocuments

What You Can Do

GET
Getcollection — Oracle Database Get documents from a collection
/v1/{collection}
POST
Insertdocument — Oracle Database Insert a new document
/v1/{collection}
PUT
Putdocumentnokey — Oracle Database Insert or replace document (no key in URL)
/v1/{collection}
GET
Getdocument — Oracle Database Get a document by key
/v1/{collection}/{key}
PUT
Putdocument — Oracle Database Replace or insert a document by key
/v1/{collection}/{key}
PATCH
Patchdocument — Oracle Database Patch a document using JSON Patch
/v1/{collection}/{key}
DELETE
Deletedocument — Oracle Database Delete a document by key
/v1/{collection}/{key}

MCP Tools

oracle-database-get-documents-collection

Oracle Database Get documents from a collection

read-only idempotent
oracle-database-insert-new-document

Oracle Database Insert a new document

oracle-database-insert-replace-document

Oracle Database Insert or replace document (no key in URL)

idempotent
oracle-database-get-document-key

Oracle Database Get a document by key

read-only idempotent
oracle-database-replace-insert-document

Oracle Database Replace or insert a document by key

idempotent
oracle-database-patch-document-using

Oracle Database Patch a document using JSON Patch

idempotent
oracle-database-delete-document-key

Oracle Database Delete a document by key

idempotent

Capability Spec

soda-documents.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Oracle Database Oracle SODA (Simple Oracle Document Access) REST API — Documents
  description: 'Oracle Database Oracle SODA (Simple Oracle Document Access) REST API — Documents. 7 operations. Lead operation:
    Oracle Database Get documents from a collection. Self-contained Naftiko capability covering one Oracle Database business
    surface.'
  tags:
  - Oracle Database
  - Documents
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    ORACLE_DATABASE_API_KEY: ORACLE_DATABASE_API_KEY
capability:
  consumes:
  - type: http
    namespace: soda-documents
    baseUri: https://{host}:{port}/ords/{schema}/soda/{version}
    description: Oracle Database Oracle SODA (Simple Oracle Document Access) REST API — Documents business capability. Self-contained,
      no shared references.
    resources:
    - name: collection
      path: /{collection}/
      operations:
      - name: getcollection
        method: GET
        description: Oracle Database Get documents from a collection
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: limit
          in: query
          type: integer
          description: Maximum number of documents to return
        - name: offset
          in: query
          type: integer
          description: Number of documents to skip (default 0)
        - name: fields
          in: query
          type: string
          description: Control which fields are returned
        - name: totalResults
          in: query
          type: boolean
          description: Include total count in response (may be slow on large collections)
        - name: fromID
          in: query
          type: string
          description: Start after this key (ascending order)
        - name: toID
          in: query
          type: string
          description: Stop before this key (descending order)
        - name: since
          in: query
          type: string
          description: Only return documents modified after this timestamp
        - name: until
          in: query
          type: string
          description: Only return documents modified before this timestamp
        - name: q
          in: query
          type: string
          description: QBE filter specification as a JSON object
      - name: insertdocument
        method: POST
        description: Oracle Database Insert a new document
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: putdocumentnokey
        method: PUT
        description: Oracle Database Insert or replace document (no key in URL)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: collection-key
      path: /{collection}/{key}
      operations:
      - name: getdocument
        method: GET
        description: Oracle Database Get a document by key
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: If-Modified-Since
          in: header
          type: string
          description: Return 304 if document has not been modified since this timestamp
        - name: If-None-Match
          in: header
          type: string
          description: Return 304 if document etag matches this value
      - name: putdocument
        method: PUT
        description: Oracle Database Replace or insert a document by key
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: patchdocument
        method: PATCH
        description: Oracle Database Patch a document using JSON Patch
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deletedocument
        method: DELETE
        description: Oracle Database Delete a document by key
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    authentication:
      type: bearer
      token: '{{env.ORACLE_DATABASE_API_KEY}}'
  exposes:
  - type: rest
    namespace: soda-documents-rest
    port: 8080
    description: REST adapter for Oracle Database Oracle SODA (Simple Oracle Document Access) REST API — Documents. One Spectral-compliant
      resource per consumed operation, prefixed with /v1.
    resources:
    - path: /v1/{collection}
      name: collection
      description: REST surface for collection.
      operations:
      - method: GET
        name: getcollection
        description: Oracle Database Get documents from a collection
        call: soda-documents.getcollection
        with:
          limit: rest.limit
          offset: rest.offset
          fields: rest.fields
          totalResults: rest.totalResults
          fromID: rest.fromID
          toID: rest.toID
          since: rest.since
          until: rest.until
          q: rest.q
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: insertdocument
        description: Oracle Database Insert a new document
        call: soda-documents.insertdocument
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: putdocumentnokey
        description: Oracle Database Insert or replace document (no key in URL)
        call: soda-documents.putdocumentnokey
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/{collection}/{key}
      name: collection-key
      description: REST surface for collection-key.
      operations:
      - method: GET
        name: getdocument
        description: Oracle Database Get a document by key
        call: soda-documents.getdocument
        with:
          If-Modified-Since: rest.If-Modified-Since
          If-None-Match: rest.If-None-Match
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: putdocument
        description: Oracle Database Replace or insert a document by key
        call: soda-documents.putdocument
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: patchdocument
        description: Oracle Database Patch a document using JSON Patch
        call: soda-documents.patchdocument
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletedocument
        description: Oracle Database Delete a document by key
        call: soda-documents.deletedocument
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: soda-documents-mcp
    port: 9090
    transport: http
    description: MCP adapter for Oracle Database Oracle SODA (Simple Oracle Document Access) REST API — Documents. One tool
      per consumed operation, routed inline through this capability's consumes block.
    tools:
    - name: oracle-database-get-documents-collection
      description: Oracle Database Get documents from a collection
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: soda-documents.getcollection
      with:
        limit: tools.limit
        offset: tools.offset
        fields: tools.fields
        totalResults: tools.totalResults
        fromID: tools.fromID
        toID: tools.toID
        since: tools.since
        until: tools.until
        q: tools.q
      outputParameters:
      - type: object
        mapping: $.
    - name: oracle-database-insert-new-document
      description: Oracle Database Insert a new document
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: soda-documents.insertdocument
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: oracle-database-insert-replace-document
      description: Oracle Database Insert or replace document (no key in URL)
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: soda-documents.putdocumentnokey
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: oracle-database-get-document-key
      description: Oracle Database Get a document by key
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: soda-documents.getdocument
      with:
        If-Modified-Since: tools.If-Modified-Since
        If-None-Match: tools.If-None-Match
      outputParameters:
      - type: object
        mapping: $.
    - name: oracle-database-replace-insert-document
      description: Oracle Database Replace or insert a document by key
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: soda-documents.putdocument
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: oracle-database-patch-document-using
      description: Oracle Database Patch a document using JSON Patch
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: soda-documents.patchdocument
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: oracle-database-delete-document-key
      description: Oracle Database Delete a document by key
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: soda-documents.deletedocument
      outputParameters:
      - type: object
        mapping: $.