Google Cloud Pub/Sub · Capability

Google Cloud Pub/Sub API

The Cloud Pub/Sub API provides reliable, many-to-many, asynchronous messaging between applications. Publishers send messages to topics, and subscribers receive messages via subscriptions. It supports both push and pull delivery modes.

Run with Naftiko GoogleCloudPubsubAPI

What You Can Do

GET
Listtopics — Google Cloud Pub/Sub List topics
/projects/{projectId}/topics
GET
Gettopic — Google Cloud Pub/Sub Get a topic
/projects/{projectId}/topics/{topicId}
PUT
Createtopic — Google Cloud Pub/Sub Create a topic
/projects/{projectId}/topics/{topicId}
DELETE
Deletetopic — Google Cloud Pub/Sub Delete a topic
/projects/{projectId}/topics/{topicId}
POST
Publishmessages — Google Cloud Pub/Sub Publish messages
/projects/{projectId}/topics/{topicId}:publish
GET
Listsubscriptions — Google Cloud Pub/Sub List subscriptions
/projects/{projectId}/subscriptions
GET
Getsubscription — Google Cloud Pub/Sub Get a subscription
/projects/{projectId}/subscriptions/{subscriptionId}
PUT
Createsubscription — Google Cloud Pub/Sub Create a subscription
/projects/{projectId}/subscriptions/{subscriptionId}
DELETE
Deletesubscription — Google Cloud Pub/Sub Delete a subscription
/projects/{projectId}/subscriptions/{subscriptionId}
POST
Pullmessages — Google Cloud Pub/Sub Pull messages
/projects/{projectId}/subscriptions/{subscriptionId}:pull
POST
Acknowledgemessages — Google Cloud Pub/Sub Acknowledge messages
/projects/{projectId}/subscriptions/{subscriptionId}:acknowledge
GET
Listschemas — Google Cloud Pub/Sub List schemas
/projects/{projectId}/schemas
POST
Createschema — Google Cloud Pub/Sub Create a schema
/projects/{projectId}/schemas

MCP Tools

listtopics

Google Cloud Pub/Sub List topics

read-only idempotent
gettopic

Google Cloud Pub/Sub Get a topic

read-only idempotent
createtopic

Google Cloud Pub/Sub Create a topic

idempotent
deletetopic

Google Cloud Pub/Sub Delete a topic

idempotent
publishmessages

Google Cloud Pub/Sub Publish messages

listsubscriptions

Google Cloud Pub/Sub List subscriptions

read-only idempotent
getsubscription

Google Cloud Pub/Sub Get a subscription

read-only idempotent
createsubscription

Google Cloud Pub/Sub Create a subscription

idempotent
deletesubscription

Google Cloud Pub/Sub Delete a subscription

idempotent
pullmessages

Google Cloud Pub/Sub Pull messages

acknowledgemessages

Google Cloud Pub/Sub Acknowledge messages

listschemas

Google Cloud Pub/Sub List schemas

read-only idempotent
createschema

Google Cloud Pub/Sub Create a schema

Capability Spec

google-cloud-pubsub-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Google Cloud Pub/Sub API
  description: The Cloud Pub/Sub API provides reliable, many-to-many, asynchronous messaging between applications. Publishers
    send messages to topics, and subscribers receive messages via subscriptions. It supports both push and pull delivery modes.
  tags:
  - Google
  - Cloud
  - Pubsub
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: google-cloud-pubsub
    baseUri: https://pubsub.googleapis.com/v1
    description: Google Cloud Pub/Sub API HTTP API.
    authentication:
      type: bearer
      token: '{{GOOGLE_CLOUD_PUBSUB_TOKEN}}'
    resources:
    - name: projects-projectid-topics
      path: /projects/{projectId}/topics
      operations:
      - name: listtopics
        method: GET
        description: Google Cloud Pub/Sub List topics
        inputParameters:
        - name: projectId
          in: path
          type: string
          required: true
        - name: pageSize
          in: query
          type: integer
        - name: pageToken
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-projectid-topics-topicid
      path: /projects/{projectId}/topics/{topicId}
      operations:
      - name: gettopic
        method: GET
        description: Google Cloud Pub/Sub Get a topic
        inputParameters:
        - name: projectId
          in: path
          type: string
          required: true
        - name: topicId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createtopic
        method: PUT
        description: Google Cloud Pub/Sub Create a topic
        inputParameters:
        - name: projectId
          in: path
          type: string
          required: true
        - name: topicId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletetopic
        method: DELETE
        description: Google Cloud Pub/Sub Delete a topic
        inputParameters:
        - name: projectId
          in: path
          type: string
          required: true
        - name: topicId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-projectid-topics-topicid-publish
      path: /projects/{projectId}/topics/{topicId}:publish
      operations:
      - name: publishmessages
        method: POST
        description: Google Cloud Pub/Sub Publish messages
        inputParameters:
        - name: projectId
          in: path
          type: string
          required: true
        - name: topicId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-projectid-subscriptions
      path: /projects/{projectId}/subscriptions
      operations:
      - name: listsubscriptions
        method: GET
        description: Google Cloud Pub/Sub List subscriptions
        inputParameters:
        - name: projectId
          in: path
          type: string
          required: true
        - name: pageSize
          in: query
          type: integer
        - name: pageToken
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-projectid-subscriptions-subscriptionid
      path: /projects/{projectId}/subscriptions/{subscriptionId}
      operations:
      - name: getsubscription
        method: GET
        description: Google Cloud Pub/Sub Get a subscription
        inputParameters:
        - name: projectId
          in: path
          type: string
          required: true
        - name: subscriptionId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createsubscription
        method: PUT
        description: Google Cloud Pub/Sub Create a subscription
        inputParameters:
        - name: projectId
          in: path
          type: string
          required: true
        - name: subscriptionId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletesubscription
        method: DELETE
        description: Google Cloud Pub/Sub Delete a subscription
        inputParameters:
        - name: projectId
          in: path
          type: string
          required: true
        - name: subscriptionId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-projectid-subscriptions-subscriptionid-
      path: /projects/{projectId}/subscriptions/{subscriptionId}:pull
      operations:
      - name: pullmessages
        method: POST
        description: Google Cloud Pub/Sub Pull messages
        inputParameters:
        - name: projectId
          in: path
          type: string
          required: true
        - name: subscriptionId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-projectid-subscriptions-subscriptionid-
      path: /projects/{projectId}/subscriptions/{subscriptionId}:acknowledge
      operations:
      - name: acknowledgemessages
        method: POST
        description: Google Cloud Pub/Sub Acknowledge messages
        inputParameters:
        - name: projectId
          in: path
          type: string
          required: true
        - name: subscriptionId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: projects-projectid-schemas
      path: /projects/{projectId}/schemas
      operations:
      - name: listschemas
        method: GET
        description: Google Cloud Pub/Sub List schemas
        inputParameters:
        - name: projectId
          in: path
          type: string
          required: true
        - name: pageSize
          in: query
          type: integer
        - name: pageToken
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createschema
        method: POST
        description: Google Cloud Pub/Sub Create a schema
        inputParameters:
        - name: projectId
          in: path
          type: string
          required: true
        - name: schemaId
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: google-cloud-pubsub-rest
    description: REST adapter for Google Cloud Pub/Sub API.
    resources:
    - path: /projects/{projectId}/topics
      name: listtopics
      operations:
      - method: GET
        name: listtopics
        description: Google Cloud Pub/Sub List topics
        call: google-cloud-pubsub.listtopics
        with:
          projectId: rest.projectId
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{projectId}/topics/{topicId}
      name: gettopic
      operations:
      - method: GET
        name: gettopic
        description: Google Cloud Pub/Sub Get a topic
        call: google-cloud-pubsub.gettopic
        with:
          projectId: rest.projectId
          topicId: rest.topicId
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{projectId}/topics/{topicId}
      name: createtopic
      operations:
      - method: PUT
        name: createtopic
        description: Google Cloud Pub/Sub Create a topic
        call: google-cloud-pubsub.createtopic
        with:
          projectId: rest.projectId
          topicId: rest.topicId
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{projectId}/topics/{topicId}
      name: deletetopic
      operations:
      - method: DELETE
        name: deletetopic
        description: Google Cloud Pub/Sub Delete a topic
        call: google-cloud-pubsub.deletetopic
        with:
          projectId: rest.projectId
          topicId: rest.topicId
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{projectId}/topics/{topicId}:publish
      name: publishmessages
      operations:
      - method: POST
        name: publishmessages
        description: Google Cloud Pub/Sub Publish messages
        call: google-cloud-pubsub.publishmessages
        with:
          projectId: rest.projectId
          topicId: rest.topicId
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{projectId}/subscriptions
      name: listsubscriptions
      operations:
      - method: GET
        name: listsubscriptions
        description: Google Cloud Pub/Sub List subscriptions
        call: google-cloud-pubsub.listsubscriptions
        with:
          projectId: rest.projectId
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{projectId}/subscriptions/{subscriptionId}
      name: getsubscription
      operations:
      - method: GET
        name: getsubscription
        description: Google Cloud Pub/Sub Get a subscription
        call: google-cloud-pubsub.getsubscription
        with:
          projectId: rest.projectId
          subscriptionId: rest.subscriptionId
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{projectId}/subscriptions/{subscriptionId}
      name: createsubscription
      operations:
      - method: PUT
        name: createsubscription
        description: Google Cloud Pub/Sub Create a subscription
        call: google-cloud-pubsub.createsubscription
        with:
          projectId: rest.projectId
          subscriptionId: rest.subscriptionId
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{projectId}/subscriptions/{subscriptionId}
      name: deletesubscription
      operations:
      - method: DELETE
        name: deletesubscription
        description: Google Cloud Pub/Sub Delete a subscription
        call: google-cloud-pubsub.deletesubscription
        with:
          projectId: rest.projectId
          subscriptionId: rest.subscriptionId
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{projectId}/subscriptions/{subscriptionId}:pull
      name: pullmessages
      operations:
      - method: POST
        name: pullmessages
        description: Google Cloud Pub/Sub Pull messages
        call: google-cloud-pubsub.pullmessages
        with:
          projectId: rest.projectId
          subscriptionId: rest.subscriptionId
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{projectId}/subscriptions/{subscriptionId}:acknowledge
      name: acknowledgemessages
      operations:
      - method: POST
        name: acknowledgemessages
        description: Google Cloud Pub/Sub Acknowledge messages
        call: google-cloud-pubsub.acknowledgemessages
        with:
          projectId: rest.projectId
          subscriptionId: rest.subscriptionId
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{projectId}/schemas
      name: listschemas
      operations:
      - method: GET
        name: listschemas
        description: Google Cloud Pub/Sub List schemas
        call: google-cloud-pubsub.listschemas
        with:
          projectId: rest.projectId
        outputParameters:
        - type: object
          mapping: $.
    - path: /projects/{projectId}/schemas
      name: createschema
      operations:
      - method: POST
        name: createschema
        description: Google Cloud Pub/Sub Create a schema
        call: google-cloud-pubsub.createschema
        with:
          projectId: rest.projectId
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: google-cloud-pubsub-mcp
    transport: http
    description: MCP adapter for Google Cloud Pub/Sub API for AI agent use.
    tools:
    - name: listtopics
      description: Google Cloud Pub/Sub List topics
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-cloud-pubsub.listtopics
      with:
        projectId: tools.projectId
        pageSize: tools.pageSize
        pageToken: tools.pageToken
      inputParameters:
      - name: projectId
        type: string
        description: projectId
        required: true
      - name: pageSize
        type: integer
        description: pageSize
      - name: pageToken
        type: string
        description: pageToken
      outputParameters:
      - type: object
        mapping: $.
    - name: gettopic
      description: Google Cloud Pub/Sub Get a topic
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-cloud-pubsub.gettopic
      with:
        projectId: tools.projectId
        topicId: tools.topicId
      inputParameters:
      - name: projectId
        type: string
        description: projectId
        required: true
      - name: topicId
        type: string
        description: topicId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: createtopic
      description: Google Cloud Pub/Sub Create a topic
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: google-cloud-pubsub.createtopic
      with:
        projectId: tools.projectId
        topicId: tools.topicId
      inputParameters:
      - name: projectId
        type: string
        description: projectId
        required: true
      - name: topicId
        type: string
        description: topicId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: deletetopic
      description: Google Cloud Pub/Sub Delete a topic
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: google-cloud-pubsub.deletetopic
      with:
        projectId: tools.projectId
        topicId: tools.topicId
      inputParameters:
      - name: projectId
        type: string
        description: projectId
        required: true
      - name: topicId
        type: string
        description: topicId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: publishmessages
      description: Google Cloud Pub/Sub Publish messages
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-cloud-pubsub.publishmessages
      with:
        projectId: tools.projectId
        topicId: tools.topicId
      inputParameters:
      - name: projectId
        type: string
        description: projectId
        required: true
      - name: topicId
        type: string
        description: topicId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listsubscriptions
      description: Google Cloud Pub/Sub List subscriptions
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-cloud-pubsub.listsubscriptions
      with:
        projectId: tools.projectId
        pageSize: tools.pageSize
        pageToken: tools.pageToken
      inputParameters:
      - name: projectId
        type: string
        description: projectId
        required: true
      - name: pageSize
        type: integer
        description: pageSize
      - name: pageToken
        type: string
        description: pageToken
      outputParameters:
      - type: object
        mapping: $.
    - name: getsubscription
      description: Google Cloud Pub/Sub Get a subscription
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-cloud-pubsub.getsubscription
      with:
        projectId: tools.projectId
        subscriptionId: tools.subscriptionId
      inputParameters:
      - name: projectId
        type: string
        description: projectId
        required: true
      - name: subscriptionId
        type: string
        description: subscriptionId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: createsubscription
      description: Google Cloud Pub/Sub Create a subscription
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: google-cloud-pubsub.createsubscription
      with:
        projectId: tools.projectId
        subscriptionId: tools.subscriptionId
      inputParameters:
      - name: projectId
        type: string
        description: projectId
        required: true
      - name: subscriptionId
        type: string
        description: subscriptionId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: deletesubscription
      description: Google Cloud Pub/Sub Delete a subscription
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: google-cloud-pubsub.deletesubscription
      with:
        projectId: tools.projectId
        subscriptionId: tools.subscriptionId
      inputParameters:
      - name: projectId
        type: string
        description: projectId
        required: true
      - name: subscriptionId
        type: string
        description: subscriptionId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: pullmessages
      description: Google Cloud Pub/Sub Pull messages
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-cloud-pubsub.pullmessages
      with:
        projectId: tools.projectId
        subscriptionId: tools.subscriptionId
      inputParameters:
      - name: projectId
        type: string
        description: projectId
        required: true
      - name: subscriptionId
        type: string
        description: subscriptionId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: acknowledgemessages
      description: Google Cloud Pub/Sub Acknowledge messages
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-cloud-pubsub.acknowledgemessages
      with:
        projectId: tools.projectId
        subscriptionId: tools.subscriptionId
      inputParameters:
      - name: projectId
        type: string
        description: projectId
        required: true
      - name: subscriptionId
        type: string
        description: subscriptionId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listschemas
      description: Google Cloud Pub/Sub List schemas
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-cloud-pubsub.listschemas
      with:
        projectId: tools.projectId
        pageSize: tools.pageSize
        pageToken: tools.pageToken
      inputParameters:
      - name: projectId
        type: string
        description: projectId
        required: true
      - name: pageSize
        type: integer
        description: pageSize
      - name: pageToken
        type: string
        description: pageToken
      outputParameters:
      - type: object
        mapping: $.
    - name: createschema
      description: Google Cloud Pub/Sub Create a schema
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-cloud-pubsub.createschema
      with:
        projectId: tools.projectId
        schemaId: tools.schemaId
      inputParameters:
      - name: projectId
        type: string
        description: projectId
        required: true
      - name: schemaId
        type: string
        description: schemaId
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    GOOGLE_CLOUD_PUBSUB_TOKEN: GOOGLE_CLOUD_PUBSUB_TOKEN