Set your agents loose.
Keep them accountable.
Pick the tools your agent can call. Pin each parameter to a constant. Hand it a key that can only post to #dev-log — not refund Stripe charges, not read your inbox. Across Stripe, GitHub, Gmail, Notion, Linear and 123 more, with a full audit log.
Free tier. Usage-based pricing after that. No card required.
# Add Clawband to Claude Code (or any MCP client)
claude mcp add clawband \
--transport http \
--url https://api.clawband.io/mcp \
--header "Authorization: Bearer cb_live_a8f3…"
# Your agent now sees only the tools you ticked,
# with the parameters you pinned. Nothing else exists.The problem
Provider APIs let your agent do everything you can. Including the things you'd never tell it to.
Raw API keys give your agent every endpoint, every value
Drop your Stripe key into an agent's config and it can refund any charge, for any amount, to any account. Provider APIs don't let you say 'only refund up to $50, only from this customer.' Your agent inherits everything you can do, at any value it picks.
Every service wants its own OAuth dance
Wiring an agent to Gmail, Notion, GitHub, Linear, and Stripe means five OAuth apps, five sets of scopes, and five token refreshes, all before you've written a single prompt. And the moment you swap agents, you do it all again.
No idea what the agent actually did
When the agent sends the wrong email, closes the wrong issue, or refunds the wrong charge, you're left grepping through twelve provider dashboards. There's no single per-call log of what it tried, what it sent, and what came back.
How it works
Connect once. Grant narrowly. Audit everything.
- 01
Connect your accounts
Sign into Stripe, Gmail, GitHub, Notion, or whatever else you use, once, in the Clawband dashboard. Tokens are encrypted and stay in the gateway. Your agent never sees them.
stripe · connected gmail · connected github · connected notion · connected - 02
Pick the tools. Pin the parameters.
Issue a Clawband key per agent. Tick the exact tools it can call. Lock parameters to constants — only this Slack channel, only this Notion database, max refund $50 — so a prompt injection can't widen the surface on a bad day.
agent: my-coding-agent + github.create_pr + linear.update_issue + slack.post_message channel = #dev-log # pinned - 03
Point your agent at one endpoint
Drop the key into Claude Code, OpenClaw, Cursor, or your own runtime via MCP, or POST JSON to /v1/invoke. Clawband enforces the policy and writes a per-call audit log you can review.
POST /mcp { "method": "tools/call", "params": { "name": "github.create_pr", ... } }
Code
One line to wire up. The tools your agent sees are the tools you ticked.
Clawband speaks native MCP and a plain HTTP endpoint. The tools/list your agent gets back contains only what you ticked, with the parameter schemas you pinned baked in. Anything else is invisible — and uncallable.
# MCP setup (one line)
claude mcp add clawband \
--transport http \
--url https://api.clawband.io/mcp \
--header "Authorization: Bearer cb_live_a8f3…"Integrations
128 services your agent can use.
+ 104 more, across AI, calendar, email, cloud storage, dev tools, finance, smart home, and more.
Security & policy
If your agent's key leaks, the blast radius stays small.
Policy at the edge
Per-agent tool allowlists
Each Clawband key carries an explicit list of tools it can call. Everything else is invisible to that agent, even if the provider's API supports it.
my-coding-agent:
- github.create_pr
- linear.update_issueParameter pinning
Lock specific parameters to constants. The agent can't override them, even if it tries, even if a prompt tells it to.
slack.post_message:
channel: "#dev-log" # pinnedMinimal OAuth scopes
When you connect a provider, Clawband requests only the OAuth scopes the tools you've enabled actually need. Nothing speculative.
github scopes:
repo:status, pull_requestObservability & safety
Response scrubbing
Some provider APIs return credential material (webhook signing secrets, API keys, embed tokens) inside otherwise routine responses. The gateway strips that material before the agent sees it, so a misbehaving agent can't read its way around the policy.
// upstream response
{ "id": "whsec_...", "secret": "whsec_8a…" }
// what the agent receives
{ "id": "whsec_...", "secret": "[redacted]" }Full audit log
Every call: timestamp, which agent key, which tool, the exact parameters sent upstream after policy was applied, upstream status, and a hash of the response. Browse it in the dashboard or stream it to your own sink.
2026-05-26T11:04:12Z my-coding-agent
slack.post_message channel=#dev-log
upstream=200 hash=sha256:7c…FAQ