TM Forum · Capability

TM Forum Customer Support

Unified workflow capability combining TM Forum Customer Management (TMF629) and Trouble Ticket (TMF621) APIs for end-to-end customer support operations, from customer lookup to ticket resolution. Used by support agents and NOC engineers.

Run with Naftiko TM ForumCustomer ManagementTrouble TicketSupportTelecommunications

What You Can Do

GET
List customers — List customer accounts
/v1/customers
POST
Create customer — Create a new customer account
/v1/customers
GET
Get customer — Retrieve a customer account
/v1/customers/{id}
GET
List trouble tickets — List trouble tickets
/v1/trouble-tickets
POST
Create trouble ticket — Create a new trouble ticket
/v1/trouble-tickets
GET
Get trouble ticket — Retrieve a trouble ticket
/v1/trouble-tickets/{id}
PATCH
Update trouble ticket — Update a trouble ticket status
/v1/trouble-tickets/{id}

MCP Tools

list-customers

List or find customer accounts

read-only
get-customer

Retrieve a specific customer account by ID

read-only
create-customer

Create a new customer account

update-customer

Partially update a customer account

idempotent
list-trouble-tickets

List or find trouble tickets

read-only
get-trouble-ticket

Retrieve a specific trouble ticket by ID

read-only
create-trouble-ticket

Create a new customer trouble ticket

update-trouble-ticket

Update trouble ticket status, severity, or resolution

idempotent

APIs Used

tmf629 tmf621

Capability Spec

customer-support.yaml Raw ↑
naftiko: "1.0.0-alpha1"

info:
  label: "TM Forum Customer Support"
  description: "Unified workflow capability combining TM Forum Customer Management (TMF629) and Trouble Ticket (TMF621) APIs for end-to-end customer support operations, from customer lookup to ticket resolution. Used by support agents and NOC engineers."
  tags:
    - TM Forum
    - Customer Management
    - Trouble Ticket
    - Support
    - Telecommunications
  created: "2026-05-03"
  modified: "2026-05-03"

binds:
  - namespace: env
    keys:
      TMF_API_KEY: TMF_API_KEY

capability:
  consumes:
    - import: tmf629
      location: ./shared/tmf629-customer-management.yaml
    - import: tmf621
      location: ./shared/tmf621-trouble-ticket.yaml

  exposes:
    - type: rest
      port: 8081
      namespace: customer-support-api
      description: "Unified REST API for TM Forum customer support workflow."
      resources:
        - path: /v1/customers
          name: customers
          description: "Customer accounts"
          operations:
            - method: GET
              name: list-customers
              description: "List customer accounts"
              call: "tmf629.listCustomer"
              outputParameters:
                - type: array
                  mapping: "$."
            - method: POST
              name: create-customer
              description: "Create a new customer account"
              call: "tmf629.createCustomer"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/customers/{id}
          name: customer
          description: "Individual customer account"
          operations:
            - method: GET
              name: get-customer
              description: "Retrieve a customer account"
              call: "tmf629.retrieveCustomer"
              with:
                id: "rest.id"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/trouble-tickets
          name: trouble-tickets
          description: "Trouble tickets"
          operations:
            - method: GET
              name: list-trouble-tickets
              description: "List trouble tickets"
              call: "tmf621.listTroubleTicket"
              outputParameters:
                - type: array
                  mapping: "$."
            - method: POST
              name: create-trouble-ticket
              description: "Create a new trouble ticket"
              call: "tmf621.createTroubleTicket"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/trouble-tickets/{id}
          name: trouble-ticket
          description: "Individual trouble ticket"
          operations:
            - method: GET
              name: get-trouble-ticket
              description: "Retrieve a trouble ticket"
              call: "tmf621.retrieveTroubleTicket"
              with:
                id: "rest.id"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: PATCH
              name: update-trouble-ticket
              description: "Update a trouble ticket status"
              call: "tmf621.patchTroubleTicket"
              with:
                id: "rest.id"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      port: 9091
      namespace: customer-support-mcp
      transport: http
      description: "MCP server for AI-assisted TM Forum customer support operations."
      tools:
        - name: list-customers
          description: "List or find customer accounts"
          hints:
            readOnly: true
            openWorld: true
          call: "tmf629.listCustomer"
          outputParameters:
            - type: array
              mapping: "$."
        - name: get-customer
          description: "Retrieve a specific customer account by ID"
          hints:
            readOnly: true
            openWorld: false
          call: "tmf629.retrieveCustomer"
          with:
            id: "tools.id"
          outputParameters:
            - type: object
              mapping: "$."
        - name: create-customer
          description: "Create a new customer account"
          hints:
            readOnly: false
            openWorld: false
          call: "tmf629.createCustomer"
          outputParameters:
            - type: object
              mapping: "$."
        - name: update-customer
          description: "Partially update a customer account"
          hints:
            readOnly: false
            destructive: false
            idempotent: true
          call: "tmf629.patchCustomer"
          with:
            id: "tools.id"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-trouble-tickets
          description: "List or find trouble tickets"
          hints:
            readOnly: true
            openWorld: true
          call: "tmf621.listTroubleTicket"
          outputParameters:
            - type: array
              mapping: "$."
        - name: get-trouble-ticket
          description: "Retrieve a specific trouble ticket by ID"
          hints:
            readOnly: true
            openWorld: false
          call: "tmf621.retrieveTroubleTicket"
          with:
            id: "tools.id"
          outputParameters:
            - type: object
              mapping: "$."
        - name: create-trouble-ticket
          description: "Create a new customer trouble ticket"
          hints:
            readOnly: false
            openWorld: false
          call: "tmf621.createTroubleTicket"
          outputParameters:
            - type: object
              mapping: "$."
        - name: update-trouble-ticket
          description: "Update trouble ticket status, severity, or resolution"
          hints:
            readOnly: false
            destructive: false
            idempotent: true
          call: "tmf621.patchTroubleTicket"
          with:
            id: "tools.id"
          outputParameters:
            - type: object
              mapping: "$."