SwaggerHub · Capability

SwaggerHub API Lifecycle Management

Workflow capability for managing the full API lifecycle in SwaggerHub: discovering APIs, creating and updating definitions, managing versions, controlling lifecycle settings (publish/unpublish), running integrations, and organizing APIs into projects. Combines the Registry API and User Management API for end-to-end API governance.

Run with Naftiko API DesignAPI ManagementAPI RegistryDocumentationOpenAPISmartBearSwaggerHub

What You Can Do

GET
Search specs — Search APIs, domains, and templates
/v1/search
GET
Get owner apis — List all APIs for an owner
/v1/apis/{owner}
GET
Get api definition — Get API definition for a version
/v1/apis/{owner}/{api}/{version}
POST
Create or update api — Create or update API definition
/v1/apis/{owner}/{api}
DELETE
Delete api — Delete an API
/v1/apis/{owner}/{api}
GET
List integrations — List integrations for an API version
/v1/integrations/{owner}/{api}/{version}
GET
List projects — List projects
/v1/projects/{owner}
POST
Create project — Create a new project
/v1/projects/{owner}
GET
Get organization members — List organization members
/v1/orgs/{org}/members
POST
Add organization members — Invite users to organization
/v1/orgs/{org}/members
GET
Get organization teams — List organization teams
/v1/orgs/{org}/teams

MCP Tools

search-apis

Search the SwaggerHub registry for APIs, domains, and templates

read-only idempotent
get-api-definition

Retrieve the OpenAPI definition for a specific SwaggerHub API version

read-only idempotent
create-or-update-api

Create or update an API definition in SwaggerHub

idempotent
list-integrations

List CI/CD integrations configured for a SwaggerHub API version

read-only idempotent
list-projects

List projects in a SwaggerHub organization

read-only idempotent
create-project

Create a new SwaggerHub project to organize related APIs

get-organization-members

List all members of a SwaggerHub organization with their roles

read-only idempotent
add-organization-members

Invite users to a SwaggerHub organization

get-organization-teams

List all teams within a SwaggerHub organization

read-only idempotent

Capability Spec

api-lifecycle-management.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: SwaggerHub API Lifecycle Management
  description: 'Workflow capability for managing the full API lifecycle in SwaggerHub: discovering APIs, creating and updating
    definitions, managing versions, controlling lifecycle settings (publish/unpublish), running integrations, and organizing
    APIs into projects. Combines the Registry API and User Management API for end-to-end API governance.'
  tags:
  - API Design
  - API Management
  - API Registry
  - Documentation
  - OpenAPI
  - SmartBear
  - SwaggerHub
  created: '2026-05-02'
  modified: '2026-05-06'
binds:
- namespace: env
  keys:
    SWAGGERHUB_API_KEY: SWAGGERHUB_API_KEY
capability:
  consumes:
  - type: http
    namespace: swaggerhub-registry
    baseUri: https://api.swaggerhub.com
    description: SwaggerHub Registry API
    authentication:
      type: apikey
      key: Authorization
      value: '{{SWAGGERHUB_API_KEY}}'
      placement: header
    resources:
    - name: search
      path: /specs
      description: Search APIs, domains, and templates
      operations:
      - name: search-specs
        method: GET
        description: Search SwaggerHub registry for APIs, domains, and templates
        inputParameters:
        - name: specType
          in: query
          type: string
          required: false
          description: 'Filter by type: API, DOMAIN, TEMPLATE'
        - name: owner
          in: query
          type: string
          required: false
        - name: query
          in: query
          type: string
          required: false
        - name: page
          in: query
          type: integer
          required: false
        - name: limit
          in: query
          type: integer
          required: false
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: owner-apis
      path: /apis/{owner}
      description: Owner API management
      operations:
      - name: get-owner-apis
        method: GET
        description: List APIs for an owner
        inputParameters:
        - name: owner
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-versions
      path: /apis/{owner}/{api}
      description: API version management
      operations:
      - name: get-api-versions
        method: GET
        description: Get all versions of an API
        inputParameters:
        - name: owner
          in: path
          type: string
          required: true
        - name: api
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: create-or-update-api
        method: POST
        description: Create or update an API definition
        inputParameters:
        - name: owner
          in: path
          type: string
          required: true
        - name: api
          in: path
          type: string
          required: true
        - name: version
          in: query
          type: string
          required: false
        - name: isPrivate
          in: query
          type: boolean
          required: false
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        body:
          type: yaml
          data:
            spec: '{{tools.spec}}'
      - name: delete-api
        method: DELETE
        description: Delete all versions of an API
        inputParameters:
        - name: owner
          in: path
          type: string
          required: true
        - name: api
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-definition
      path: /apis/{owner}/{api}/{version}
      description: API definition retrieval
      operations:
      - name: get-api-definition
        method: GET
        description: Get API definition for a specific version
        inputParameters:
        - name: owner
          in: path
          type: string
          required: true
        - name: api
          in: path
          type: string
          required: true
        - name: version
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: integrations
      path: /apis/{owner}/{api}/{version}/integrations
      description: CI/CD integration management
      operations:
      - name: list-integrations
        method: GET
        description: List integrations for an API version
        inputParameters:
        - name: owner
          in: path
          type: string
          required: true
        - name: api
          in: path
          type: string
          required: true
        - name: version
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects
      path: /projects/{owner}
      description: Project management
      operations:
      - name: list-projects
        method: GET
        description: List projects for an organization
        inputParameters:
        - name: owner
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: create-project
        method: POST
        description: Create a new project
        inputParameters:
        - name: owner
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        body:
          type: json
          data:
            name: '{{tools.name}}'
            description: '{{tools.description}}'
  - type: http
    namespace: swaggerhub-user-mgmt
    baseUri: https://api.swaggerhub.com
    description: SwaggerHub User Management API
    authentication:
      type: apikey
      key: Authorization
      value: '{{SWAGGERHUB_API_KEY}}'
      placement: header
    resources:
    - name: org-members
      path: /orgs/{org}/members
      description: Organization member management
      operations:
      - name: get-organization-members
        method: GET
        description: List all members of an organization
        inputParameters:
        - name: org
          in: path
          type: string
          required: true
        - name: page
          in: query
          type: integer
          required: false
        - name: limit
          in: query
          type: integer
          required: false
        - name: q
          in: query
          type: string
          required: false
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: add-organization-members
        method: POST
        description: Invite users to an organization
        inputParameters:
        - name: org
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        body:
          type: json
          data:
            members: '{{tools.members}}'
    - name: org-teams
      path: /orgs/{org}/teams
      description: Team management
      operations:
      - name: get-organization-teams
        method: GET
        description: List all teams in an organization
        inputParameters:
        - name: org
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: create-team
        method: POST
        description: Create a new team
        inputParameters:
        - name: org
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        body:
          type: json
          data:
            name: '{{tools.name}}'
            description: '{{tools.description}}'
  exposes:
  - type: rest
    port: 8080
    namespace: swaggerhub-api-lifecycle-api
    description: Unified REST API for SwaggerHub API lifecycle management.
    resources:
    - path: /v1/search
      name: search
      description: Search the SwaggerHub registry
      operations:
      - method: GET
        name: search-specs
        description: Search APIs, domains, and templates
        call: swaggerhub-registry.search-specs
        with:
          query: rest.query
          specType: rest.specType
          owner: rest.owner
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/apis/{owner}
      name: owner-apis
      description: APIs for an owner
      operations:
      - method: GET
        name: get-owner-apis
        description: List all APIs for an owner
        call: swaggerhub-registry.get-owner-apis
        with:
          owner: rest.owner
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/apis/{owner}/{api}/{version}
      name: api-definition
      description: API definition management
      operations:
      - method: GET
        name: get-api-definition
        description: Get API definition for a version
        call: swaggerhub-registry.get-api-definition
        with:
          owner: rest.owner
          api: rest.api
          version: rest.version
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/apis/{owner}/{api}
      name: api-management
      description: API lifecycle management
      operations:
      - method: POST
        name: create-or-update-api
        description: Create or update API definition
        call: swaggerhub-registry.create-or-update-api
        with:
          owner: rest.owner
          api: rest.api
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: delete-api
        description: Delete an API
        call: swaggerhub-registry.delete-api
        with:
          owner: rest.owner
          api: rest.api
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/integrations/{owner}/{api}/{version}
      name: integrations
      description: CI/CD integrations
      operations:
      - method: GET
        name: list-integrations
        description: List integrations for an API version
        call: swaggerhub-registry.list-integrations
        with:
          owner: rest.owner
          api: rest.api
          version: rest.version
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects/{owner}
      name: projects
      description: Project management
      operations:
      - method: GET
        name: list-projects
        description: List projects
        call: swaggerhub-registry.list-projects
        with:
          owner: rest.owner
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: create-project
        description: Create a new project
        call: swaggerhub-registry.create-project
        with:
          owner: rest.owner
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/orgs/{org}/members
      name: org-members
      description: Organization member management
      operations:
      - method: GET
        name: get-organization-members
        description: List organization members
        call: swaggerhub-user-mgmt.get-organization-members
        with:
          org: rest.org
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: add-organization-members
        description: Invite users to organization
        call: swaggerhub-user-mgmt.add-organization-members
        with:
          org: rest.org
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/orgs/{org}/teams
      name: org-teams
      description: Team management
      operations:
      - method: GET
        name: get-organization-teams
        description: List organization teams
        call: swaggerhub-user-mgmt.get-organization-teams
        with:
          org: rest.org
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: swaggerhub-api-lifecycle-mcp
    transport: http
    description: MCP server for AI-assisted SwaggerHub API lifecycle management.
    tools:
    - name: search-apis
      description: Search the SwaggerHub registry for APIs, domains, and templates
      hints:
        readOnly: true
        idempotent: true
      call: swaggerhub-registry.search-specs
      with:
        query: tools.query
        specType: tools.specType
        owner: tools.owner
      outputParameters:
      - type: object
        mapping: $.
    - name: get-api-definition
      description: Retrieve the OpenAPI definition for a specific SwaggerHub API version
      hints:
        readOnly: true
        idempotent: true
      call: swaggerhub-registry.get-api-definition
      with:
        owner: tools.owner
        api: tools.api
        version: tools.version
      outputParameters:
      - type: object
        mapping: $.
    - name: create-or-update-api
      description: Create or update an API definition in SwaggerHub
      hints:
        readOnly: false
        idempotent: true
      call: swaggerhub-registry.create-or-update-api
      with:
        owner: tools.owner
        api: tools.api
        version: tools.version
      outputParameters:
      - type: object
        mapping: $.
    - name: list-integrations
      description: List CI/CD integrations configured for a SwaggerHub API version
      hints:
        readOnly: true
        idempotent: true
      call: swaggerhub-registry.list-integrations
      with:
        owner: tools.owner
        api: tools.api
        version: tools.version
      outputParameters:
      - type: object
        mapping: $.
    - name: list-projects
      description: List projects in a SwaggerHub organization
      hints:
        readOnly: true
        idempotent: true
      call: swaggerhub-registry.list-projects
      with:
        owner: tools.owner
      outputParameters:
      - type: object
        mapping: $.
    - name: create-project
      description: Create a new SwaggerHub project to organize related APIs
      hints:
        readOnly: false
        idempotent: false
      call: swaggerhub-registry.create-project
      with:
        owner: tools.owner
        name: tools.name
        description: tools.description
      outputParameters:
      - type: object
        mapping: $.
    - name: get-organization-members
      description: List all members of a SwaggerHub organization with their roles
      hints:
        readOnly: true
        idempotent: true
      call: swaggerhub-user-mgmt.get-organization-members
      with:
        org: tools.org
      outputParameters:
      - type: object
        mapping: $.
    - name: add-organization-members
      description: Invite users to a SwaggerHub organization
      hints:
        readOnly: false
        idempotent: false
      call: swaggerhub-user-mgmt.add-organization-members
      with:
        org: tools.org
        members: tools.members
      outputParameters:
      - type: object
        mapping: $.
    - name: get-organization-teams
      description: List all teams within a SwaggerHub organization
      hints:
        readOnly: true
        idempotent: true
      call: swaggerhub-user-mgmt.get-organization-teams
      with:
        org: tools.org
      outputParameters:
      - type: object
        mapping: $.