Your agent already
knows Squiid.

One key, every service, and the tools an agent needs to see what is callable, what it costs and what a new project needs. Install it once and your coding agent stops asking you for accounts.

Install it

One command, your key, and the agent can see the whole catalog. Pick your client.

claude mcp add squiid -e SQUIID_API_KEY=sq_live_… -- npx -y @squiid/mcp

Claude Desktop, VS Code and Windsurf take the same server in their own config file: the command, args and an env block with SQUIID_API_KEY. Without a key the server writes one line to stderr and exits, so the client tells you why instead of hanging.

How it works

An MCP server is a small local process your agent talks to. This one is a thin, honest wrapper over the Squiid gateway: it never holds a provider credential, and it never decides to spend.

STEP 1

Install it with your key

One line in your client, with SQUIID_API_KEY in the server's environment. The key is created by you in the console, with a scope and a spend cap already on it.

STEP 2

The agent calls tools over stdio

The server runs locally and speaks MCP over stdio. Every tool call it makes goes on to api.squiid.io with that one key, and the gateway enforces the key's scope, cap and rate limit before the request leaves.

STEP 3

You watch the spend in the console

Requests, prices and the balance land in the console as they happen. balance and request_cost let the agent see the same numbers, so it can tell you what a call cost.

Your IDE Claude Code · Cursor @squiid/mcp eight tools, stdio api.squiid.io scope · cap · rate limit Providers models, db, email… STDIO ONE KEY BILLED
Nothing new is stored on your machine. The key is the only secret, and the gateway checks it before a request leaves.

The tools

Eight of them. Every result comes back as two blocks: one line to read out loud, then compact JSON to act on.

ToolArgumentsWhat it answers
start_project name stack? needs? purpose? monthly_budget_usd? Which services a new project needs, and a console link to review them and create the key. Creates nothing.
list_services category? class? status? query? Every service, with class · category · status · what it is priced by.
get_service slug One service, and exactly how to call it through Squiid.
provision Rolling out service name region? Create an isolated resource: a database, a bucket, a sub-account.
get_credentials Rolling out id That resource's credentials, env-var shaped.
usage since? Spend and recent requests. Falls back to the balance while GET /v1/usage rolls out.
balance none Balance in USD, with the org and the key behind this key.
request_cost request_id What one request cost, by its x-sq-request-id.

Two tools are rolling out. They already exist and are already described to the model, so the agent asks for them by name, and gets an explanation instead of a silent failure.

Starting a project from your IDE

An MCP server cannot watch your editor, so "this looks like a new project" is a job for the model, not the server. Two things make it happen.

start_project is a tool whose description says when to call it: at the start of a new project or scaffold, when a task needs a service the repo has no account for (no DATABASE_URL, no email provider, no model key) or when you ask what services you need.

The new-project prompt is the manual version. Invoke it by hand (/squiid:new-project in Claude Code) and the model reads the package manifest, .env.example and the README, calls start_project with what it found, and shows you the result.

agent › (new repo: next, prisma, stripe, resend in package.json)
start_project({ name: "anvil-web", stack: ["next", "prisma", "postgres", "stripe", "resend"],
                needs: "send receipts, take payments", purpose: "app", monthly_budget_usd: 25 })
←  anvil-web · 3 services recommended (neon, stripe, resend) · balance $142.18 ·
   review and create the key at https://squiid.io/keys/new?name=anvil-web&services=neon,
   stripe,resend&cap=25&purpose=app&source=mcp: this tool created nothing

What comes back is recommended, alternatives, your balance_usd, next_steps and a console_url, a deep link into the console's new-project flow:

<console>/keys/new?name=<urlenc>&services=<comma slugs>&cap=<int USD>&purpose=<…>&source=mcp

You open that link. You drop the services the project does not need, you set the monthly spend cap, and you create the key: Squiid shows it once. You paste it back into the project as SQUIID_API_KEY and into the agent's MCP config. Then the agent calls list_services or get_service to learn exactly how to call each one.

What the agent never does

  • It never signs up for an account: not with Squiid, not with a provider.
  • It never creates an API key, and never raises the cap on the one it has.
  • It never tops up the wallet or moves money.
  • start_project returns created: false, every time. It proposes; you approve.

A key is a policy

That split (the agent proposes, the human approves) is the whole security model, and it only works because a Squiid key carries its limits with it. A key is not a password that unlocks everything you own. It is a policy the gateway enforces on every request before it leaves.

Give an agent a key with a spend cap and the services it needs, and nothing else. If the agent goes wrong, or a prompt injection convinces it to try something silly, the worst it can reach is what that policy allows. Revoke it and the resources it created are untouched.

What rides on the key

ScopeWhich services
Spend capPer month, in USD
Rate limitRequests per minute
RevokeInstant, resources kept

Set at creation, in the console, by a person. Enforced at the gateway, before a request leaves.

Spend controls

Questions people ask

Which clients does it work with?

Any MCP client. Claude Code, Codex and Gemini CLI take a one-line mcp add; Cursor, Claude Desktop, VS Code and Windsurf declare the same server in their config file with command, args and an env block. There is one server and it is the same everywhere.

Does the MCP server cost anything?

No. @squiid/mcp is free and so are the tool calls that only read: listing services, reading the balance, pricing a request. You pay for the provider calls your project actually makes, from prepaid credits, at the provider price.

What happens to my secrets?

There is one secret: SQUIID_API_KEY, in the MCP server's environment. Squiid holds the upstream provider credentials, so no provider key is ever on your machine, in your .env, or in a prompt the agent can read back.

Can the agent provision a database?

Not yet. provision and get_credentials are rolling out and today return a not_implemented explanation that points the agent at a service it can call right now. Instant services work today: the gateway convention is the same for all of them.

Can the agent spend my money or make new keys?

No. An agent key can never mint another key, sign up for anything, or top up the wallet. A key is a policy (scope, spend cap and rate limit) and the gateway enforces it. Key creation and top-ups stay behind a human in the console.

How do I revoke a key?

Revoke it in the console and every call it was making stops at the gateway. Revoking a key never touches your resources: the data, the databases and the provider accounts are untouched, and a new key with a different policy picks up where it left off.

Set it up in your agent

The per-agent pages carry the exact config file, the exact flag and the convention to put in your project rules.

Get your key.
Then install the server.

One account, one key, one bill and one dashboard for every service your project needs, and eight tools so your agent can see all of it.