Wordnik · Capability

Wordnik — Word List

Word List — single-user-word-list management surface. 6 operations covering reading, updating, and deleting a word list by permalink, plus listing, adding, and removing words inside it. Lead operation: return a word list by permalink. Self-contained Naftiko capability covering one Wordnik business surface.

Run with Naftiko WordnikDictionaryWord List

What You Can Do

GET
Getwordlistbypermalink — Return a word list by permalink.
/v1/word-lists/{permalink}
PUT
Updatewordlist — Update a word list.
/v1/word-lists/{permalink}
DELETE
Deletewordlist — Delete a word list.
/v1/word-lists/{permalink}
GET
Getwordlistwords — Return words in a word list.
/v1/word-lists/{permalink}/words
POST
Addwordstowordlist — Add words to a word list.
/v1/word-lists/{permalink}/words
POST
Deletewordsfromwordlist — Delete words from a word list.
/v1/word-lists/{permalink}/delete-words

MCP Tools

get-word-list

Return a word list by permalink.

read-only idempotent
update-word-list

Update a word list.

idempotent
delete-word-list

Delete a word list.

idempotent
list-word-list-words

Return words in a word list.

read-only idempotent
add-words-to-word-list

Add words to a word list.

delete-words-from-word-list

Delete words from a word list.

Capability Spec

wordnik-word-list.yaml Raw ↑
naftiko: "1.0.0-alpha2"

info:
  label: "Wordnik — Word List"
  description: >-
    Word List — single-user-word-list management surface. 6 operations covering reading,
    updating, and deleting a word list by permalink, plus listing, adding, and removing
    words inside it. Lead operation: return a word list by permalink. Self-contained
    Naftiko capability covering one Wordnik business surface.
  tags:
    - Wordnik
    - Dictionary
    - Word List
  created: "2026-05-29"
  modified: "2026-05-29"

binds:
  - namespace: env
    keys:
      WORDNIK_API_KEY: WORDNIK_API_KEY
      WORDNIK_AUTH_TOKEN: WORDNIK_AUTH_TOKEN

capability:

  consumes:
    - type: http
      namespace: "wordnik-word-list"
      baseUri: "https://api.wordnik.com/v4"
      description: "Wordnik — Word List business capability. Self-contained, no shared references."
      authentication:
        type: apikey
        key: api_key
        value: "{{env.WORDNIK_API_KEY}}"
        placement: query
      resources:
        - name: "word-list"
          path: "/wordList.json/{permalink}"
          operations:
            - name: "getWordListByPermalink"
              method: GET
              description: "Return a word list by permalink."
              inputParameters:
                - { name: permalink, in: path, type: string, required: true, description: "Permalink of the word list." }
                - { name: auth_token, in: header, type: string, required: true, description: "Valid user auth token." }
              outputRawFormat: json
              outputParameters:
                - { name: result, type: object, value: "$." }
            - name: "updateWordList"
              method: PUT
              description: "Update a word list."
              inputParameters:
                - { name: permalink, in: path, type: string, required: true, description: "Permalink of the word list." }
                - { name: auth_token, in: header, type: string, required: true, description: "Valid user auth token." }
                - { name: body, in: body, type: object, required: true, description: "WordList payload." }
              outputRawFormat: json
              outputParameters:
                - { name: result, type: object, value: "$." }
            - name: "deleteWordList"
              method: DELETE
              description: "Delete a word list."
              inputParameters:
                - { name: permalink, in: path, type: string, required: true, description: "Permalink of the word list." }
                - { name: auth_token, in: header, type: string, required: true, description: "Valid user auth token." }
              outputRawFormat: json
              outputParameters:
                - { name: result, type: object, value: "$." }
            - name: "getWordListWords"
              method: GET
              description: "Return words in a word list."
              inputParameters:
                - { name: permalink, in: path, type: string, required: true, description: "Permalink of the word list." }
                - { name: auth_token, in: header, type: string, required: true, description: "Valid user auth token." }
                - { name: sortBy, in: query, type: string, required: false, description: "Attribute to sort by." }
                - { name: sortOrder, in: query, type: string, required: false, description: "Sort direction." }
                - { name: skip, in: query, type: integer, required: false, description: "Results to skip." }
                - { name: limit, in: query, type: integer, required: false, description: "Maximum number of results to return." }
              outputRawFormat: json
              outputParameters:
                - { name: result, type: object, value: "$." }
            - name: "addWordsToWordList"
              method: POST
              description: "Add words to a word list."
              inputParameters:
                - { name: permalink, in: path, type: string, required: true, description: "Permalink of the word list." }
                - { name: auth_token, in: header, type: string, required: true, description: "Valid user auth token." }
                - { name: body, in: body, type: array, required: true, description: "Array of StringValue payloads." }
              outputRawFormat: json
              outputParameters:
                - { name: result, type: object, value: "$." }
            - name: "deleteWordsFromWordList"
              method: POST
              description: "Delete words from a word list."
              inputParameters:
                - { name: permalink, in: path, type: string, required: true, description: "Permalink of the word list." }
                - { name: auth_token, in: header, type: string, required: true, description: "Valid user auth token." }
                - { name: body, in: body, type: array, required: true, description: "Array of StringValue payloads to remove." }
              outputRawFormat: json
              outputParameters:
                - { name: result, type: object, value: "$." }

  exposes:
    - type: rest
      namespace: "wordnik-word-list-rest"
      port: 8080
      description: "REST adapter for Wordnik — Word List. One Spectral-compliant resource per consumed operation, prefixed with /v1."
      resources:
        - path: "/v1/word-lists/{permalink}"
          name: "word-list"
          description: "REST surface for a single word list."
          operations:
            - method: GET
              name: "getWordListByPermalink"
              description: "Return a word list by permalink."
              call: "wordnik-word-list.getWordListByPermalink"
              with:
                permalink: "rest.permalink"
                auth_token: "rest.auth_token"
              outputParameters:
                - { type: object, mapping: "$." }
            - method: PUT
              name: "updateWordList"
              description: "Update a word list."
              call: "wordnik-word-list.updateWordList"
              with:
                permalink: "rest.permalink"
                auth_token: "rest.auth_token"
                body: "rest.body"
              outputParameters:
                - { type: object, mapping: "$." }
            - method: DELETE
              name: "deleteWordList"
              description: "Delete a word list."
              call: "wordnik-word-list.deleteWordList"
              with:
                permalink: "rest.permalink"
                auth_token: "rest.auth_token"
              outputParameters:
                - { type: object, mapping: "$." }
        - path: "/v1/word-lists/{permalink}/words"
          name: "word-list-words"
          description: "REST surface for words inside a list."
          operations:
            - method: GET
              name: "getWordListWords"
              description: "Return words in a word list."
              call: "wordnik-word-list.getWordListWords"
              with:
                permalink: "rest.permalink"
                auth_token: "rest.auth_token"
                sortBy: "rest.sortBy"
                sortOrder: "rest.sortOrder"
                skip: "rest.skip"
                limit: "rest.limit"
              outputParameters:
                - { type: object, mapping: "$." }
            - method: POST
              name: "addWordsToWordList"
              description: "Add words to a word list."
              call: "wordnik-word-list.addWordsToWordList"
              with:
                permalink: "rest.permalink"
                auth_token: "rest.auth_token"
                body: "rest.body"
              outputParameters:
                - { type: object, mapping: "$." }
        - path: "/v1/word-lists/{permalink}/delete-words"
          name: "word-list-delete-words"
          description: "REST surface for removing words from a list."
          operations:
            - method: POST
              name: "deleteWordsFromWordList"
              description: "Delete words from a word list."
              call: "wordnik-word-list.deleteWordsFromWordList"
              with:
                permalink: "rest.permalink"
                auth_token: "rest.auth_token"
                body: "rest.body"
              outputParameters:
                - { type: object, mapping: "$." }

    - type: mcp
      namespace: "wordnik-word-list-mcp"
      port: 9090
      transport: http
      description: "MCP adapter for Wordnik — Word List. One tool per consumed operation, routed inline through this capability's consumes block."
      tools:
        - name: "get-word-list"
          description: "Return a word list by permalink."
          hints: { readOnly: true, destructive: false, idempotent: true }
          call: "wordnik-word-list.getWordListByPermalink"
          with:
            permalink: "tools.permalink"
            auth_token: "tools.auth_token"
          outputParameters:
            - { type: object, mapping: "$." }
        - name: "update-word-list"
          description: "Update a word list."
          hints: { readOnly: false, destructive: false, idempotent: true }
          call: "wordnik-word-list.updateWordList"
          with:
            permalink: "tools.permalink"
            auth_token: "tools.auth_token"
            body: "tools.body"
          outputParameters:
            - { type: object, mapping: "$." }
        - name: "delete-word-list"
          description: "Delete a word list."
          hints: { readOnly: false, destructive: true, idempotent: true }
          call: "wordnik-word-list.deleteWordList"
          with:
            permalink: "tools.permalink"
            auth_token: "tools.auth_token"
          outputParameters:
            - { type: object, mapping: "$." }
        - name: "list-word-list-words"
          description: "Return words in a word list."
          hints: { readOnly: true, destructive: false, idempotent: true }
          call: "wordnik-word-list.getWordListWords"
          with:
            permalink: "tools.permalink"
            auth_token: "tools.auth_token"
            sortBy: "tools.sortBy"
            sortOrder: "tools.sortOrder"
            skip: "tools.skip"
            limit: "tools.limit"
          outputParameters:
            - { type: object, mapping: "$." }
        - name: "add-words-to-word-list"
          description: "Add words to a word list."
          hints: { readOnly: false, destructive: false, idempotent: false }
          call: "wordnik-word-list.addWordsToWordList"
          with:
            permalink: "tools.permalink"
            auth_token: "tools.auth_token"
            body: "tools.body"
          outputParameters:
            - { type: object, mapping: "$." }
        - name: "delete-words-from-word-list"
          description: "Delete words from a word list."
          hints: { readOnly: false, destructive: true, idempotent: false }
          call: "wordnik-word-list.deleteWordsFromWordList"
          with:
            permalink: "tools.permalink"
            auth_token: "tools.auth_token"
            body: "tools.body"
          outputParameters:
            - { type: object, mapping: "$." }