Google Pub/Sub Google Cloud Pub/Sub API
Provides reliable, many-to-many, asynchronous messaging between applications. The Pub/Sub API allows you to create and manage topics and subscriptions, publish messages, and pull or push messages to subscribers.
What You Can Do
MCP Tools
listtopics
Google Pub/Sub List topics
gettopic
Google Pub/Sub Get a topic
createtopic
Google Pub/Sub Create a topic
deletetopic
Google Pub/Sub Delete a topic
updatetopic
Google Pub/Sub Update a topic
publish
Google Pub/Sub Publish messages
listsubscriptions
Google Pub/Sub List subscriptions
getsubscription
Google Pub/Sub Get a subscription
createsubscription
Google Pub/Sub Create a subscription
deletesubscription
Google Pub/Sub Delete a subscription
pull
Google Pub/Sub Pull messages
acknowledge
Google Pub/Sub Acknowledge messages
modifyackdeadline
Google Pub/Sub Modify acknowledgement deadline
listsnapshots
Google Pub/Sub List snapshots
getsnapshot
Google Pub/Sub Get a snapshot
createsnapshot
Google Pub/Sub Create a snapshot
deletesnapshot
Google Pub/Sub Delete a snapshot
listschemas
Google Pub/Sub List schemas
createschema
Google Pub/Sub Create a schema
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Google Pub/Sub Google Cloud Pub/Sub API
description: Provides reliable, many-to-many, asynchronous messaging between applications. The Pub/Sub API allows you to
create and manage topics and subscriptions, publish messages, and pull or push messages to subscribers.
tags:
- Google
- Pub
- Sub
- API
created: '2026-05-06'
modified: '2026-05-06'
capability:
consumes:
- type: http
namespace: google-pub-sub
baseUri: https://pubsub.googleapis.com
description: Google Pub/Sub Google Cloud Pub/Sub API HTTP API.
authentication:
type: bearer
token: '{{GOOGLE_PUB_SUB_TOKEN}}'
resources:
- name: v1-projects-project-topics
path: /v1/projects/{project}/topics
operations:
- name: listtopics
method: GET
description: Google Pub/Sub List topics
inputParameters:
- name: project
in: path
type: string
required: true
description: The project ID (e.g., projects/my-project).
- name: pageSize
in: query
type: integer
description: Maximum number of topics to return.
- name: pageToken
in: query
type: string
description: Token for pagination.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: v1-projects-project-topics-topic
path: /v1/projects/{project}/topics/{topic}
operations:
- name: gettopic
method: GET
description: Google Pub/Sub Get a topic
inputParameters:
- name: project
in: path
type: string
required: true
- name: topic
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: createtopic
method: PUT
description: Google Pub/Sub Create a topic
inputParameters:
- name: project
in: path
type: string
required: true
- name: topic
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: deletetopic
method: DELETE
description: Google Pub/Sub Delete a topic
inputParameters:
- name: project
in: path
type: string
required: true
- name: topic
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: v1-topic
path: /v1/{topic}
operations:
- name: updatetopic
method: PATCH
description: Google Pub/Sub Update a topic
inputParameters:
- name: topic
in: path
type: string
required: true
description: The name of the topic (e.g., projects/my-project/topics/my-topic).
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: v1-topic-publish
path: /v1/{topic}:publish
operations:
- name: publish
method: POST
description: Google Pub/Sub Publish messages
inputParameters:
- name: topic
in: path
type: string
required: true
description: The topic name (e.g., projects/my-project/topics/my-topic).
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: v1-projects-project-subscriptions
path: /v1/projects/{project}/subscriptions
operations:
- name: listsubscriptions
method: GET
description: Google Pub/Sub List subscriptions
inputParameters:
- name: project
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: v1-projects-project-subscriptions-subscription
path: /v1/projects/{project}/subscriptions/{subscription}
operations:
- name: getsubscription
method: GET
description: Google Pub/Sub Get a subscription
inputParameters:
- name: project
in: path
type: string
required: true
- name: subscription
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: createsubscription
method: PUT
description: Google Pub/Sub Create a subscription
inputParameters:
- name: project
in: path
type: string
required: true
- name: subscription
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: deletesubscription
method: DELETE
description: Google Pub/Sub Delete a subscription
inputParameters:
- name: project
in: path
type: string
required: true
- name: subscription
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: v1-subscription-pull
path: /v1/{subscription}:pull
operations:
- name: pull
method: POST
description: Google Pub/Sub Pull messages
inputParameters:
- name: subscription
in: path
type: string
required: true
description: The subscription name.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: v1-subscription-acknowledge
path: /v1/{subscription}:acknowledge
operations:
- name: acknowledge
method: POST
description: Google Pub/Sub Acknowledge messages
inputParameters:
- name: subscription
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: v1-subscription-modifyackdeadline
path: /v1/{subscription}:modifyAckDeadline
operations:
- name: modifyackdeadline
method: POST
description: Google Pub/Sub Modify acknowledgement deadline
inputParameters:
- name: subscription
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: v1-projects-project-snapshots
path: /v1/projects/{project}/snapshots
operations:
- name: listsnapshots
method: GET
description: Google Pub/Sub List snapshots
inputParameters:
- name: project
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: v1-projects-project-snapshots-snapshot
path: /v1/projects/{project}/snapshots/{snapshot}
operations:
- name: getsnapshot
method: GET
description: Google Pub/Sub Get a snapshot
inputParameters:
- name: project
in: path
type: string
required: true
- name: snapshot
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: createsnapshot
method: PUT
description: Google Pub/Sub Create a snapshot
inputParameters:
- name: project
in: path
type: string
required: true
- name: snapshot
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: deletesnapshot
method: DELETE
description: Google Pub/Sub Delete a snapshot
inputParameters:
- name: project
in: path
type: string
required: true
- name: snapshot
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: v1-projects-project-schemas
path: /v1/projects/{project}/schemas
operations:
- name: listschemas
method: GET
description: Google Pub/Sub List schemas
inputParameters:
- name: project
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 Pub/Sub Create a schema
inputParameters:
- name: project
in: path
type: string
required: true
- name: schemaId
in: query
type: string
description: The ID to use for the schema.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
exposes:
- type: rest
port: 8080
namespace: google-pub-sub-rest
description: REST adapter for Google Pub/Sub Google Cloud Pub/Sub API.
resources:
- path: /v1/projects/{project}/topics
name: listtopics
operations:
- method: GET
name: listtopics
description: Google Pub/Sub List topics
call: google-pub-sub.listtopics
with:
project: rest.project
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project}/topics/{topic}
name: gettopic
operations:
- method: GET
name: gettopic
description: Google Pub/Sub Get a topic
call: google-pub-sub.gettopic
with:
project: rest.project
topic: rest.topic
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project}/topics/{topic}
name: createtopic
operations:
- method: PUT
name: createtopic
description: Google Pub/Sub Create a topic
call: google-pub-sub.createtopic
with:
project: rest.project
topic: rest.topic
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project}/topics/{topic}
name: deletetopic
operations:
- method: DELETE
name: deletetopic
description: Google Pub/Sub Delete a topic
call: google-pub-sub.deletetopic
with:
project: rest.project
topic: rest.topic
outputParameters:
- type: object
mapping: $.
- path: /v1/{topic}
name: updatetopic
operations:
- method: PATCH
name: updatetopic
description: Google Pub/Sub Update a topic
call: google-pub-sub.updatetopic
with:
topic: rest.topic
outputParameters:
- type: object
mapping: $.
- path: /v1/{topic}:publish
name: publish
operations:
- method: POST
name: publish
description: Google Pub/Sub Publish messages
call: google-pub-sub.publish
with:
topic: rest.topic
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project}/subscriptions
name: listsubscriptions
operations:
- method: GET
name: listsubscriptions
description: Google Pub/Sub List subscriptions
call: google-pub-sub.listsubscriptions
with:
project: rest.project
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project}/subscriptions/{subscription}
name: getsubscription
operations:
- method: GET
name: getsubscription
description: Google Pub/Sub Get a subscription
call: google-pub-sub.getsubscription
with:
project: rest.project
subscription: rest.subscription
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project}/subscriptions/{subscription}
name: createsubscription
operations:
- method: PUT
name: createsubscription
description: Google Pub/Sub Create a subscription
call: google-pub-sub.createsubscription
with:
project: rest.project
subscription: rest.subscription
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project}/subscriptions/{subscription}
name: deletesubscription
operations:
- method: DELETE
name: deletesubscription
description: Google Pub/Sub Delete a subscription
call: google-pub-sub.deletesubscription
with:
project: rest.project
subscription: rest.subscription
outputParameters:
- type: object
mapping: $.
- path: /v1/{subscription}:pull
name: pull
operations:
- method: POST
name: pull
description: Google Pub/Sub Pull messages
call: google-pub-sub.pull
with:
subscription: rest.subscription
outputParameters:
- type: object
mapping: $.
- path: /v1/{subscription}:acknowledge
name: acknowledge
operations:
- method: POST
name: acknowledge
description: Google Pub/Sub Acknowledge messages
call: google-pub-sub.acknowledge
with:
subscription: rest.subscription
outputParameters:
- type: object
mapping: $.
- path: /v1/{subscription}:modifyAckDeadline
name: modifyackdeadline
operations:
- method: POST
name: modifyackdeadline
description: Google Pub/Sub Modify acknowledgement deadline
call: google-pub-sub.modifyackdeadline
with:
subscription: rest.subscription
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project}/snapshots
name: listsnapshots
operations:
- method: GET
name: listsnapshots
description: Google Pub/Sub List snapshots
call: google-pub-sub.listsnapshots
with:
project: rest.project
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project}/snapshots/{snapshot}
name: getsnapshot
operations:
- method: GET
name: getsnapshot
description: Google Pub/Sub Get a snapshot
call: google-pub-sub.getsnapshot
with:
project: rest.project
snapshot: rest.snapshot
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project}/snapshots/{snapshot}
name: createsnapshot
operations:
- method: PUT
name: createsnapshot
description: Google Pub/Sub Create a snapshot
call: google-pub-sub.createsnapshot
with:
project: rest.project
snapshot: rest.snapshot
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project}/snapshots/{snapshot}
name: deletesnapshot
operations:
- method: DELETE
name: deletesnapshot
description: Google Pub/Sub Delete a snapshot
call: google-pub-sub.deletesnapshot
with:
project: rest.project
snapshot: rest.snapshot
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project}/schemas
name: listschemas
operations:
- method: GET
name: listschemas
description: Google Pub/Sub List schemas
call: google-pub-sub.listschemas
with:
project: rest.project
outputParameters:
- type: object
mapping: $.
- path: /v1/projects/{project}/schemas
name: createschema
operations:
- method: POST
name: createschema
description: Google Pub/Sub Create a schema
call: google-pub-sub.createschema
with:
project: rest.project
outputParameters:
- type: object
mapping: $.
- type: mcp
port: 9090
namespace: google-pub-sub-mcp
transport: http
description: MCP adapter for Google Pub/Sub Google Cloud Pub/Sub API for AI agent use.
tools:
- name: listtopics
description: Google Pub/Sub List topics
hints:
readOnly: true
destructive: false
idempotent: true
call: google-pub-sub.listtopics
with:
project: tools.project
pageSize: tools.pageSize
pageToken: tools.pageToken
inputParameters:
- name: project
type: string
description: The project ID (e.g., projects/my-project).
required: true
- name: pageSize
type: integer
description: Maximum number of topics to return.
- name: pageToken
type: string
description: Token for pagination.
outputParameters:
- type: object
mapping: $.
- name: gettopic
description: Google Pub/Sub Get a topic
hints:
readOnly: true
destructive: false
idempotent: true
call: google-pub-sub.gettopic
with:
project: tools.project
topic: tools.topic
inputParameters:
- name: project
type: string
description: project
required: true
- name: topic
type: string
description: topic
required: true
outputParameters:
- type: object
mapping: $.
- name: createtopic
description: Google Pub/Sub Create a topic
hints:
readOnly: false
destructive: false
idempotent: true
call: google-pub-sub.createtopic
with:
project: tools.project
topic: tools.topic
inputParameters:
- name: project
type: string
description: project
required: true
- name: topic
type: string
description: topic
required: true
outputParameters:
- type: object
mapping: $.
- name: deletetopic
description: Google Pub/Sub Delete a topic
hints:
readOnly: false
destructive: true
idempotent: true
call: google-pub-sub.deletetopic
with:
project: tools.project
topic: tools.topic
inputParameters:
- name: project
type: string
description: project
required: true
- name: topic
type: string
description: topic
required: true
outputParameters:
- type: object
mapping: $.
- name: updatetopic
description: Google Pub/Sub Update a topic
hints:
readOnly: false
destructive: false
idempotent: false
call: google-pub-sub.updatetopic
with:
topic: tools.topic
inputParameters:
- name: topic
type: string
description: The name of the topic (e.g., projects/my-project/topics/my-topic).
required: true
outputParameters:
- type: object
mapping: $.
- name: publish
description: Google Pub/Sub Publish messages
hints:
readOnly: false
destructive: false
idempotent: false
call: google-pub-sub.publish
with:
topic: tools.topic
inputParameters:
- name: topic
type: string
description: The topic name (e.g., projects/my-project/topics/my-topic).
required: true
outputParameters:
- type: object
mapping: $.
- name: listsubscriptions
description: Google Pub/Sub List subscriptions
hints:
readOnly: true
destructive: false
idempotent: true
call: google-pub-sub.listsubscriptions
with:
project: tools.project
pageSize: tools.pageSize
pageToken: tools.pageToken
inputParameters:
- name: project
type: string
description: project
required: true
- name: pageSize
type: integer
description: pageSize
- name: pageToken
type: string
description: pageToken
outputParameters:
- type: object
mapping: $.
- name: getsubscription
description: Google Pub/Sub Get a subscription
hints:
readOnly: true
destructive: false
idempotent: true
call: google-pub-sub.getsubscription
with:
project: tools.project
subscription: tools.subscription
inputParameters:
- name: project
type: string
description: project
required: true
- name: subscription
type: string
description: subscription
required: true
outputParameters:
- type: object
mapping: $.
- name: createsubscription
description: Google Pub/Sub Create a subscription
hints:
readOnly: false
destructive: false
idempotent: true
call: google-pub-sub.createsubscription
with:
project: tools.project
subscription: tools.subscription
inputParameters:
- name: project
type: string
description: project
required: true
- name: subscription
type: string
description: subscription
required: true
outputParameters:
- type: object
mapping: $.
- name: deletesubscription
description: Google Pub/Sub Delete a subscription
hints:
readOnly: false
destructive: true
idempotent: true
call: google-pub-sub.deletesubscription
with:
project: tools.project
subscription: tools.subscription
inputParameters:
- name: project
type: string
description: project
required: true
- name: subscription
type: string
description: subscription
required: true
outputParameters:
- type: object
mapping: $.
- name: pull
description: Google Pub/Sub Pull messages
hints:
readOnly: false
destructive: false
idempotent: false
call: google-pub-sub.pull
with:
subscription: tools.subscription
inputParameters:
- name: subscription
type: string
description: The subscription name.
required: true
outputParameters:
- type: object
mapping: $.
- name: acknowledge
description: Google Pub/Sub Acknowledge messages
hints:
readOnly: false
destructive: false
idempotent: false
call: google-pub-sub.acknowledge
with:
subscription: tools.subscription
inputParameters:
- name: subscription
type: string
description: subscription
required: true
outputParameters:
- type: object
mapping: $.
- name: modifyackdeadline
description: Google Pub/Sub Modify acknowledgement deadline
hints:
readOnly: false
destructive: false
idempotent: false
call: google-pub-sub.modifyackdeadline
with:
subscription: tools.subscription
inputParameters:
- name: subscription
type: string
description: subscription
required: true
outputParameters:
- type: object
mapping: $.
- name: listsnapshots
description: Google Pub/Sub List snapshots
hints:
readOnly: true
destructive: false
idempotent: true
call: google-pub-sub.listsnapshots
with:
project: tools.project
pageSize: tools.pageSize
pageToken: tools.pageToken
inputParameters:
- name: project
type: string
description: project
required: true
- name: pageSize
type: integer
description: pageSize
- name: pageToken
type: string
description: pageToken
outputParameters:
- type: object
mapping: $.
- name: getsnapshot
description: Google Pub/Sub Get a snapshot
hints:
readOnly: true
destructive: false
idempotent: true
call: google-pub-sub.getsnapshot
with:
project: tools.project
snapshot: tools.snapshot
inputParameters:
- name: project
type: string
description: project
required: true
- name: snapshot
type: string
description: snapshot
required: true
outputParameters:
- type: object
mapping: $.
- name: createsnapshot
description: Google Pub/Sub Create a snapshot
hints:
readOnly: false
destructive: false
idempotent: true
call: google-pub-sub.createsnapshot
with:
project: tools.project
snapshot: tools.snapshot
inputParameters:
- name: project
type: string
description: project
required: true
- name: snapshot
type: string
description: snapshot
required: true
outputParameters:
- type: object
mapping: $.
- name: deletesnapshot
description: Google Pub/Sub Delete a snapshot
hints:
readOnly: false
destructive: true
idempotent: true
call: google-pub-sub.deletesnapshot
with:
project: tools.project
snapshot: tools.snapshot
inputParameters:
- name: project
type: string
description: project
required: true
- name: snapshot
type: string
description: snapshot
required: true
outputParameters:
- type: object
mapping: $.
- name: listschemas
description: Google Pub/Sub List schemas
hints:
readOnly: true
destructive: false
idempotent: true
call: google-pub-sub.listschemas
with:
project: tools.project
pageSize: tools.pageSize
pageToken: tools.pageToken
inputParameters:
- name: project
type: string
description: project
required: true
- name: pageSize
type: integer
description: pageSize
- name: pageToken
type: string
description: pageToken
outputParameters:
- type: object
mapping: $.
- name: createschema
description: Google Pub/Sub Create a schema
hints:
readOnly: false
destructive: false
idempotent: false
call: google-pub-sub.createschema
with:
project: tools.project
schemaId: tools.schemaId
inputParameters:
- name: project
type: string
description: project
required: true
- name: schemaId
type: string
description: The ID to use for the schema.
outputParameters:
- type: object
mapping: $.
binds:
- namespace: env
keys:
GOOGLE_PUB_SUB_TOKEN: GOOGLE_PUB_SUB_TOKEN