Google Cloud Vision

Live

OAUTH 2.0

IMAGE INSIGHTS

AI

Run Google Cloud Vision image insights over OAuth 2.0, scoped to the signed-in user's project.

  • Per-user credentials. each call uses the actual user's Google Cloud Vision token, never a shared bot.
  • Encrypted per-tenant vault. AES-256, resolved at request time, never in LLM context.
  • Scoped before every call. pre-call scope check, 90-day SIEM-exportable audit chain.
Google Cloud Vision
agent · Acme Q3
Run
What text is on the first 3 pages of gs://acme-docs/invoice.pdf?
S
googlecloudvision_files_annotate
140ms
Vision agent
Pages 1 to 3: invoice 1842, Acme Corp, due Sep 30, line items for 40 licenses at $49 each.
Sources: gs://acme-docs/invoice.pdf, pages 1 to 3
googlecloudvision
1 file, 3 pages
18:29
Message Claude...

Tools your vision agent reaches for on Google Cloud Vision, scoped per user.

CALL ANY TOOL
Annotate images, run OCR, and manage Product Search catalogs in Google Cloud Vision with the signed-in user's OAuth 2.0 token. <a href="https://docs.scalekit.com/agentkit/connectors/googlecloudvision/">View Docs</a>
googlecloudvision_images_annotate
Annotate images
Run label, OCR, face, logo, and object detectors against up to 16 images in one synchronous call.
Parameters
Name
Type
Required
Description
requests
array
Required
Up to 16 image annotation requests, each with image source or bytes and a features array.
parent
string
Optional
Optional projects/{project}/locations/{location} routing target.
googlecloudvision_files_annotate
Annotate files
googlecloudvision_operations_list
List operations
googlecloudvision_operations_get
Get operation
googlecloudvision_product_set_list
List product sets
googlecloudvision_product_list
List products
googlecloudvision_reference_image_list
List reference images
googlecloudvision_reference_image_create
Create reference image
Build your Agent
Same OAuth 2.0 vault and scoped tool list across LangChain, OpenAI, Anthropic, and Google ADK.
Python · LlamaIndex
import { ScalekitClient } from "@scalekit-sdk/node";
import { DynamicStructuredTool } from "@langchain/core/tools";
const sk = new ScalekitClient(
process.env.SCALEKIT_ENVIRONMENT_URL,
process.env.SCALEKIT_CLIENT_ID,
process.env.SCALEKIT_CLIENT_SECRET,
);
const page = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["googlecloudvision"], toolNames: [
"googlecloudvision_images_annotate",
"googlecloudvision_files_annotate",
"googlecloudvision_operations_list",
]}, pageSize: 100,
});
import OpenAI from "openai";
import { ScalekitClient } from "@scalekit-sdk/node";
const sk = new ScalekitClient(
process.env.SCALEKIT_ENVIRONMENT_URL,
process.env.SCALEKIT_CLIENT_ID,
process.env.SCALEKIT_CLIENT_SECRET,
);
const page = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["googlecloudvision"], toolNames: [
"googlecloudvision_images_annotate",
"googlecloudvision_files_annotate",
"googlecloudvision_operations_list",
]}, pageSize: 100,
});
const openai = new OpenAI();
import Anthropic from "@anthropic-ai/sdk";
import { ScalekitClient } from "@scalekit-sdk/node";
const sk = new ScalekitClient(
process.env.SCALEKIT_ENVIRONMENT_URL,
process.env.SCALEKIT_CLIENT_ID,
process.env.SCALEKIT_CLIENT_SECRET,
);
const page = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["googlecloudvision"], toolNames: [
"googlecloudvision_images_annotate",
"googlecloudvision_files_annotate",
"googlecloudvision_operations_list",
]}, pageSize: 100,
});
const anthropic = new Anthropic();
import { ScalekitClient } from "@scalekit-sdk/node";
const sk = new ScalekitClient(
process.env.SCALEKIT_ENVIRONMENT_URL,
process.env.SCALEKIT_CLIENT_ID,
process.env.SCALEKIT_CLIENT_SECRET,
);
const page = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["googlecloudvision"], toolNames: [
"googlecloudvision_images_annotate",
"googlecloudvision_files_annotate",
"googlecloudvision_operations_list",
]}, pageSize: 100,
});
Try these prompts
Copy a prompt into your agent. Each one maps to Google Cloud Vision image insights for the signed-in user.
OCR and documents
Copy the prompt
Copied
Extract the invoice number and due date from gs://acme-docs/invoice.pdf pages 1 to 3.
Copy the prompt
Copied
What text is on the first page of this TIFF scan?
Copy the prompt
Copied
Summarize every heading in the uploaded PDF using document text detection.
Image insights
Copy the prompt
Copied
Label the objects in gs://acme-photos/shelf.jpg and list any logos.
Copy the prompt
Copied
Is this product photo safe to publish? Run safe search and label detection.
Copy the prompt
Copied
Read the text on this storefront photo and name the landmarks if any.
Product Search catalogs
Copy the prompt
Copied
List product sets in my us location and how many products each has.
Copy the prompt
Copied
Show reference images on the Acme sneaker product.
Copy the prompt
Copied
Add gs://acme-catalog/sneaker-side.jpg as a reference image on that product.
SEE HOW AUTH WORKS
Your users connect once. Their Google Cloud Vision OAuth 2.0 tokens stay vaulted, every call is checked, and every action is logged.
1
Authorize
Your user connects
Google Cloud Vision
once. We tie it to their identity and the meetings they approved — no shared bot account, no org-wide access
Who:
user ‘A’
when:
Once per user
access:
Limited to user
2
Store
Their
Google Cloud Vision
token lives in a vault scoped to them. User A's meetings are never reachable by an agent acting for user B, even on the same connection
vault:
encrypted
scope:
per-user
tokens:
auto-refreshed
3
Resolve
When your agent calls a
Google Cloud Vision
tool, we fetch the right token server-side. It never touches your agent, never appears in the LLM context, never shows up in your logs
speed:
~40ms
check:
before every call
seen by:
nobody
4
Audit
Every
Google Cloud Vision
tool call is logged — who triggered it, which meeting was fetched, what came back. 90 days of history, tied to the user who authorized it
history:
90 days
export:
SIEM-ready
logged:
every call
Test other agents
Reuse the same per-user OAuth 2.0 vault and audit chain on other Google and document connectors.
No items found.
Test other agents
Reuse the same per-user OAuth 2.0 vault and audit chain on other Google and document connectors.
No items found.
Why Scalekit
Secure your agent's access. Connectors ship in minutes
01.
Shared tokens break per-user analytics
A shared Google Cloud Vision service account makes every OCR and Product Search call look like a bot. Scalekit resolves the credential of the actual user who triggered the agent, never a shared bot.
// shared key
audit → bot_acct

// scalekit
audit → user_abc ✓
02.
Authentication is not authorization
03.
Multi-tenancy is architectural
04.
Google Cloud Vision today. Others tomorrow.
“Our agents act across Salesforce, Gong, Google Drive, and more, on behalf of every customer. Scalekit behind the scenes meant we can keep adding tools without ever rebuilding how credentials or tool calling work.”
Venu Madhav Kattagoni
Head of Engineering / Von
FAQs
Frequently Asked Questions
Does the agent access Google Cloud Vision as the user or a shared key?
Per-user resolution. Each tool call uses the signed-in user's Google Cloud Vision OAuth 2.0 token, so image insights and Product Search calls attribute to that user in the audit log.
Where is the Google Cloud Vision token stored?
In Scalekit's AES-256 vault, namespaced per tenant. Tokens refresh automatically. You revoke access from one dashboard without rotating a shared secret across every agent.
Can I limit what the agent does in Google Cloud Vision?
Yes. Filter tool names in listScopedTools (for example googlecloudvision_images_annotate only) and Scalekit checks that scope before the API call.
What happens when a user revokes access?
The next Google Cloud Vision tool call fails closed for that user. Other users and other connectors are unaffected. The revoke is logged.
Does the agent see every image in the Google Cloud project?
Only the images, product sets, and GCS objects the authorized user's token can already read. Scalekit does not broaden that access; it vaults and scopes the existing OAuth grant.
Start in your coding agent
Up and running in one command
Install the Scalekit skill in your editor of choice. Connector, auth, tools, prompt, all wired up
Claude Code REPL
/plugin marketplace add scalekit-inc/claude-code-authstack
/plugin install agentkit@scalekit-auth-stack
Cursor Code REPL
# ~/.cursor/mcp.json
{
""mcpServers"": {
""googlecloudvision"": {
""url"": ""https://mcp.scalekit.com/googlecloudvision"",
""headers"": { ""Authorization"": ""Bearer $SCALEKIT_TOKEN"" }
}
}
}
Codex Code REPL
# ~/.codex/config.toml
[mcp_servers.googlecloudvision]
url = ""https://mcp.scalekit.com/googlecloudvision""
auth_env = ""SCALEKIT_TOKEN""
Copilot Code REPL
# .vscode/mcp.json
{
""servers"": {
""googlecloudvision"": {
""url"": ""https://mcp.scalekit.com/googlecloudvision"",
""type"": ""http""
}
}
}