Skip to main content
Glama

Create a project

projects.create

Create a new backend (Postgres, Auth, Storage, Realtime, Functions) and wait until it is live. Everything is optional: the name, region and database engine are picked for you. Returns the project URL and publishable key, ready for createClient(). If the project adds to this month's bill the answer is 402 confirm_billable with the amount: ask the user, and only if they approve call again with confirm_billable_cents. Scope: projects:write.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "projects.create"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNoProject name, e.g. `todo-app` (lowercase letters, digits, hyphens). Optional.
engineNoDatabase engine. Optional: defaults to the deployment's default. `postgres-cow` is Postgres on the Scribase box with instant branches; `neon-cloud` is serverless Neon that scales to zero; `neon-local` is Neon on the box. Only engines this deployment runs are accepted (otherwise 422 engine_not_configured).
regionNoRegion id. Optional; hosted Scribase runs in `eu-frankfurt`.
wait_secondsNoSeconds to wait until it is live (default 60, 0 returns immediately)
organization_idNoOrganization id. Optional: defaults to the token's organization, or the only one you belong to.
confirm_billable_centsNoOnly after the user approved a charge: the monthly_delta_cents from a previous 402 confirm_billable answer. A project that adds to this month's bill is not created without it; never guess it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing that the call blocks until the project is live, that it returns a URL and publishable key, that a 402 confirm_billable gate exists with an amount, and that the retry must carry the approved amount. Scope is stated as projects:write, and the 'never guess it' instruction guards a risky mutation the annotations only flag as non-idempotent.

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

Conciseness5/5

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

Five short sentences, front-loaded with the action and outcome, then defaults, then the return payload, then the billing exception, then scope. Nothing is padding; the billing warning is placed exactly where an agent would hit it.

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

Completeness4/5

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

Strong coverage for a mutating create with no output schema: it describes the returned credentials, the billing gate, and the required scope. It leaves one meaningful gap: with wait_seconds capped at 120 and idempotentHint false, it does not say what happens if the project is not live in time or whether a retry risks creating a duplicate project.

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

Parameters3/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 restates optionality and defaults that the schema already spells out per-property, adding little new per-parameter meaning beyond reinforcing the confirm_billable_cents approval chain.

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?

Opens with a specific verb and resource: 'Create a new backend (Postgres, Auth, Storage, Realtime, Functions)' and states the wait-until-live semantics. It also names the return payload (project URL and publishable key), which makes it clearly distinguishable from sibling reads like project.get or projects.list.

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

Usage Guidelines4/5

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

Gives concrete operating guidance: everything is optional, defaults are auto-selected, and the billable path requires asking the user before retrying with confirm_billable_cents. It does not contrast with adjacent creation paths (environment.create, project.put, import.*), so an agent still has to infer which creation tool to reach for.

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