Telnyx · Capability

Telnyx API — OAuth Protocol

Telnyx API — OAuth Protocol. 7 operations. Lead operation: OAuth authorization endpoint. Self-contained Naftiko capability covering one Telnyx business surface.

Run with Naftiko TelnyxOAuth Protocol

What You Can Do

GET
Authorizeoauth — OAuth authorization endpoint
/v1/oauth/authorize
GET
Getoauthconsenttoken — Get OAuth consent token
/v1/oauth/consent/{consent-token}
POST
Createoauthgrant — Create OAuth grant
/v1/oauth/grants
POST
Introspectoauthtoken — Token introspection
/v1/oauth/introspect
GET
Getoauthjwks — JSON Web Key Set
/v1/oauth/jwks
POST
Registeroauthclient — Dynamic client registration
/v1/oauth/register
POST
Exchangeoauthtoken — OAuth token endpoint
/v1/oauth/token

MCP Tools

oauth-authorization-endpoint

OAuth authorization endpoint

read-only idempotent
get-oauth-consent-token

Get OAuth consent token

read-only idempotent
create-oauth-grant

Create OAuth grant

token-introspection

Token introspection

json-web-key-set

JSON Web Key Set

read-only idempotent
dynamic-client-registration

Dynamic client registration

oauth-token-endpoint

OAuth token endpoint

Capability Spec

telnyx-oauth-protocol.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Telnyx API — OAuth Protocol
  description: 'Telnyx API — OAuth Protocol. 7 operations. Lead operation: OAuth authorization endpoint. Self-contained Naftiko
    capability covering one Telnyx business surface.'
  tags:
  - Telnyx
  - OAuth Protocol
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    TELNYX_API_KEY: TELNYX_API_KEY
capability:
  consumes:
  - type: http
    namespace: telnyx-oauth-protocol
    baseUri: https://api.telnyx.com/v2
    description: Telnyx API — OAuth Protocol business capability. Self-contained, no shared references.
    resources:
    - name: oauth-authorize
      path: /oauth/authorize
      operations:
      - name: authorizeoauth
        method: GET
        description: OAuth authorization endpoint
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: response_type
          in: query
          type: string
          description: OAuth response type
          required: true
        - name: client_id
          in: query
          type: string
          description: OAuth client identifier
          required: true
        - name: redirect_uri
          in: query
          type: string
          description: Redirect URI
          required: true
        - name: scope
          in: query
          type: string
          description: Space-separated list of requested scopes
        - name: state
          in: query
          type: string
          description: State parameter for CSRF protection
        - name: code_challenge
          in: query
          type: string
          description: PKCE code challenge
        - name: code_challenge_method
          in: query
          type: string
          description: PKCE code challenge method
    - name: oauth-consent-consent_token
      path: /oauth/consent/{consent_token}
      operations:
      - name: getoauthconsenttoken
        method: GET
        description: Get OAuth consent token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: consent_token
          in: path
          type: string
          description: OAuth consent token
          required: true
    - name: oauth-grants
      path: /oauth/grants
      operations:
      - name: createoauthgrant
        method: POST
        description: Create OAuth grant
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: oauth-introspect
      path: /oauth/introspect
      operations:
      - name: introspectoauthtoken
        method: POST
        description: Token introspection
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: oauth-jwks
      path: /oauth/jwks
      operations:
      - name: getoauthjwks
        method: GET
        description: JSON Web Key Set
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: oauth-register
      path: /oauth/register
      operations:
      - name: registeroauthclient
        method: POST
        description: Dynamic client registration
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: oauth-token
      path: /oauth/token
      operations:
      - name: exchangeoauthtoken
        method: POST
        description: OAuth token endpoint
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: bearer
      token: '{{env.TELNYX_API_KEY}}'
  exposes:
  - type: rest
    namespace: telnyx-oauth-protocol-rest
    port: 8080
    description: REST adapter for Telnyx API — OAuth Protocol. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/oauth/authorize
      name: oauth-authorize
      description: REST surface for oauth-authorize.
      operations:
      - method: GET
        name: authorizeoauth
        description: OAuth authorization endpoint
        call: telnyx-oauth-protocol.authorizeoauth
        with:
          response_type: rest.response_type
          client_id: rest.client_id
          redirect_uri: rest.redirect_uri
          scope: rest.scope
          state: rest.state
          code_challenge: rest.code_challenge
          code_challenge_method: rest.code_challenge_method
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/oauth/consent/{consent-token}
      name: oauth-consent-consent-token
      description: REST surface for oauth-consent-consent_token.
      operations:
      - method: GET
        name: getoauthconsenttoken
        description: Get OAuth consent token
        call: telnyx-oauth-protocol.getoauthconsenttoken
        with:
          consent_token: rest.consent_token
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/oauth/grants
      name: oauth-grants
      description: REST surface for oauth-grants.
      operations:
      - method: POST
        name: createoauthgrant
        description: Create OAuth grant
        call: telnyx-oauth-protocol.createoauthgrant
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/oauth/introspect
      name: oauth-introspect
      description: REST surface for oauth-introspect.
      operations:
      - method: POST
        name: introspectoauthtoken
        description: Token introspection
        call: telnyx-oauth-protocol.introspectoauthtoken
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/oauth/jwks
      name: oauth-jwks
      description: REST surface for oauth-jwks.
      operations:
      - method: GET
        name: getoauthjwks
        description: JSON Web Key Set
        call: telnyx-oauth-protocol.getoauthjwks
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/oauth/register
      name: oauth-register
      description: REST surface for oauth-register.
      operations:
      - method: POST
        name: registeroauthclient
        description: Dynamic client registration
        call: telnyx-oauth-protocol.registeroauthclient
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/oauth/token
      name: oauth-token
      description: REST surface for oauth-token.
      operations:
      - method: POST
        name: exchangeoauthtoken
        description: OAuth token endpoint
        call: telnyx-oauth-protocol.exchangeoauthtoken
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: telnyx-oauth-protocol-mcp
    port: 9090
    transport: http
    description: MCP adapter for Telnyx API — OAuth Protocol. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: oauth-authorization-endpoint
      description: OAuth authorization endpoint
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: telnyx-oauth-protocol.authorizeoauth
      with:
        response_type: tools.response_type
        client_id: tools.client_id
        redirect_uri: tools.redirect_uri
        scope: tools.scope
        state: tools.state
        code_challenge: tools.code_challenge
        code_challenge_method: tools.code_challenge_method
      outputParameters:
      - type: object
        mapping: $.
    - name: get-oauth-consent-token
      description: Get OAuth consent token
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: telnyx-oauth-protocol.getoauthconsenttoken
      with:
        consent_token: tools.consent_token
      outputParameters:
      - type: object
        mapping: $.
    - name: create-oauth-grant
      description: Create OAuth grant
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: telnyx-oauth-protocol.createoauthgrant
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: token-introspection
      description: Token introspection
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: telnyx-oauth-protocol.introspectoauthtoken
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: json-web-key-set
      description: JSON Web Key Set
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: telnyx-oauth-protocol.getoauthjwks
      outputParameters:
      - type: object
        mapping: $.
    - name: dynamic-client-registration
      description: Dynamic client registration
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: telnyx-oauth-protocol.registeroauthclient
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: oauth-token-endpoint
      description: OAuth token endpoint
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: telnyx-oauth-protocol.exchangeoauthtoken
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.