Skip to main content
Glama

Deploy a website or Worker to Cloudflare without a wrangler login

connections_cloudflare_deploy_ticket
Destructive

Use this when you must deploy to Cloudflare (wrangler deploy, upload a website to Cloudflare, publish a Worker with static assets, push a Pages build) and this chat has only the remote Connections MCP, no local tools. When the vault holds the Cloudflare account, NEVER ask the human for a Cloudflare or wrangler sign-in (wrangler login, a browser Allow click, an API token): Connections deploys with the vaulted credential and the chat never sees it. Mints a ONE-TIME deploy ticket bound to one account + one Worker script (or one Pages project): single use, expires in minutes (default 10, at most 15), grants nothing else. Reply: a URL and a curl recipe. Build the site, then POST the JSON bundle (modules, static assets, wrangler.jsonc text, bindings) to that URL with curl; Connections creates or updates the Worker server-side, inherits its existing bindings, and answers with the live workers.dev URL. Find accountId with connections_accounts { service: 'cloudflare' }. About 5 MB of base64 per ticket. With local tools use the local cloudflare_deploy tool instead (one call, reads wrangler.jsonc from disk).

Input Schema

NameRequiredDescriptionDefault
personNoLinked person to run this call as (first name). Omit to run as the connection's holder.
projectNoWorkspace to run this call in (id or name).
instanceNoWhich Cloudflare connection when the vault holds several (omit for the default).
accountIdNoThe 32-character Cloudflare account id the vault holds (connections_accounts { service: 'cloudflare' }). Omit it to use the account this workspace chose (connections_cloudflare_account).
scriptNameNoThe Worker script name to create or update (the wrangler.jsonc `name`, or `<name>-<env>` for an env). Give this OR pagesProject.
ttlMinutesNoHow long the ticket lives (1-15, default 10).
pagesProjectNoA Pages project name for a direct upload of a build folder. Give this OR scriptName.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / person
      Added value: +{
      +  "description": "Linked person to run this call as (first name). Omit to run as the connection's holder.",
      +  "type": "string"
      +}
  2. Changed2 schema fields changed
    • changedInput schema / properties / accountId / description
      Previous value: -"The 32-character Cloudflare account id the vault holds (connections_accounts { service: 'cloudflare' })."New value: +"The 32-character Cloudflare account id the vault holds (connections_accounts { service: 'cloudflare' }). Omit it to use the account this workspace chose (connections_cloudflare_account)."
    • changedInput schema / required
      Previous value: -[
      -  "accountId"
      -]New value: +[]
  3. Added

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations, which only mark this as destructive and open-world: it discloses that the ticket is single-use, expires in minutes (default 10, max 15), is bound to one account and one script, and grants nothing else. It also describes the downstream effect (server-side create/update that inherits existing bindings), the response shape (URL plus curl recipe, live workers.dev URL), and the ~5 MB base64 ceiling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the use condition and the never-ask-for-login rule, and every sentence carries operational content rather than filler. It is dense and long for a tool description, with the flow details packed into a single run-on middle section, which slightly hurts scanability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-step flow with no output schema, the description covers what an agent needs end to end: prerequisites (remote MCP only), credential sourcing, ticket lifetime and limits, how to build and POST the bundle, and what comes back. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description still adds routing value by naming connections_accounts { service: 'cloudflare' } as the way to obtain accountId, restating the scriptName-or-pagesProject exclusivity, and confirming the ttl ceiling of 15 minutes. It does not add much on person, project, or instance, which is the only shortfall.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb and resource — mints a ONE-TIME deploy ticket bound to one account plus one Worker script or Pages project — and names exactly which deployment shapes it covers (wrangler deploy, static site upload, Worker with assets, Pages build). It explicitly separates itself from the local cloudflare_deploy tool, so an agent can pick between them without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger condition ('this chat has only the remote Connections MCP, no local tools') and an explicit exclusion with the alternative named ('with local tools use the local cloudflare_deploy tool instead'). It also rules out a wrong action the agent might otherwise take: never ask the human for a wrangler login or API token.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources