Tool: create_snapshot
Create a new Cloud Pub/Sub snapshot from a given subscription.
Important Notes
-
A snapshot is a named resource that captures the acknowledgment state of messages in an existing subscription to allow for managing acknowledgments in bulk.
-
Snapshots are used in Seek operations to manage message acknowledgments in bulk.
The following sample demonstrate how to use curl
to invoke the create_snapshot
MCP tool.
| Curl Request |
|---|
curl --location 'https://pubsub.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "create_snapshot", "arguments": { // provide these details according to the tool' s MCP specification } } , "jsonrpc" : "2.0" , "id" : 1 } ' |
Input Schema
Request for the CreateSnapshot
method.
CreateSnapshotRequest
| JSON representation |
|---|
{ "snapshotProjectId" : string , "snapshotId" : string , "subscriptionProjectId" : string , "subscriptionId" : string , "labels" : { string : string , ... } , "tags" : { string : string , ... } } |
| Fields | |
|---|---|
snapshotProjectId
|
Required. The project ID that the snapshot should be created in. |
snapshotId
|
Required. The snapshot ID. |
subscriptionProjectId
|
Required. The project ID the subscription is in. |
subscriptionId
|
Required. The ID of the subscription whose backlog the snapshot retains. |
labels
|
Optional. See Creating and managing labels . An object containing a list of |
tags
|
Optional. Input only. Immutable. Tag keys/values directly bound to this resource. For example: "123/environment": "production", "123/costCenter": "marketing" See https://{$universe.dns_names.final_documentation_domain}/pubsub/docs/tags for more information on using tags with Pub/Sub resources. An object containing a list of |
LabelsEntry
| JSON representation |
|---|
{ "key" : string , "value" : string } |
| Fields | |
|---|---|
key
|
|
value
|
|
TagsEntry
| JSON representation |
|---|
{ "key" : string , "value" : string } |
| Fields | |
|---|---|
key
|
|
value
|
|
Output Schema
A snapshot resource. Snapshots are used in Seek operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot.
Snapshot
| JSON representation |
|---|
{ "name" : string , "topic" : string , "expireTime" : string , "labels" : { string : string , ... } } |
| Fields | |
|---|---|
name
|
Optional. The name of the snapshot. |
topic
|
Optional. The name of the topic from which this snapshot is retaining messages. |
expireTime
|
Optional. The snapshot is guaranteed to exist up until this time. A newly-created snapshot expires no later than 7 days from the time of its creation. Its exact lifetime is determined at creation by the existing backlog in the source subscription. Specifically, the lifetime of the snapshot is Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
labels
|
Optional. See Creating and managing labels . An object containing a list of |
Timestamp
| JSON representation |
|---|
{ "seconds" : string , "nanos" : integer } |
| Fields | |
|---|---|
seconds
|
Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z). |
nanos
|
Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive. |
LabelsEntry
| JSON representation |
|---|
{ "key" : string , "value" : string } |
| Fields | |
|---|---|
key
|
|
value
|
|
Tool Annotations
Destructive Hint: ❌ | Idempotent Hint: ✅ | Read Only Hint: ❌ | Open World Hint: ✅

