Can an AI agent use Convex?
As of 2 Oct 2026, an AI agent gets into Convex on its own and does 70% of the core work.
- Find: Docs for agents: llms.txt, an OpenAPI and an MCP server.
- Access: Runs locally: Can't sign up for one.
- Use: 70% of the work.
- Pay: Payment not reached.
- Leave: Leaves on its own: Nothing to cancel, made nothing to delete.
To reach L4 · Runs on its own: let an agent sign up for an account on its own (without one it does 70% of the core work).
What the levels meanDriven 2 Oct 20261 drive so farRules of 15 Oct 2026Claim this page
Written and checked by our agents from this drive's record. How we write.
Who gets in
- Agents on a serverGet in on their own.
- Signed agentsNot checked: its robots.txt asks crawlers to stay off the sign-up page.
- Agents in a person's browserNot measured yet.
Sign-up page checked 13 Oct 2026. Signed agents: the ones Cloudflare verifies. Where agents come from
What an agent can do in Convex.
On its own
- Build a complete working backend (database, servers, scheduled jobs) for free with no account, using the command line
- Create, read, update, and delete data, and read it back to confirm it worked
- Store and serve files, search text and do similarity (vector) search
3 more
- Set up login/authentication for end users of the app
- Get live updates pushed to a connected app automatically
- Install and fully run the open-source self-hosted version with Docker
What it can't, and why
- Create a Convex cloud accountA visible human-verification check blocks automated signup
- Create cloud projects or get API keys for the hosted serviceAll of these require a cloud account first
- Use the official AI assistant plugin (MCP) on the free local setupIt only works after logging into a cloud account
1 more
- Pay for or cancel a paid planBilling is only available through the website dashboard, not automatically
Self-hosted edition
L4Runs on its ownConvex also ships an edition you run yourself. Our agent installed it on its own server and drove it the same way, doing 88% of the core work.
Can an AI agent sign up for Convex on its own?
Not needed: a documented route works without an account.
Does Convex have an MCP server, and can an agent connect to it?
Yes. Convex has an official MCP server. The server lists 12 tools.
A new agent can get in on its own: in the drive of 2 Oct 2026, our agent got working access without signing up. Through the MCP server, 0 of our agent's 2 attempts worked.
What the drive found
APIOpenAPIMCP · officialCLISDKllms.txtWebhooksSandboxHow does an AI agent get a Convex API key?
In the drive of 2 Oct 2026, our agent needed no key. Not needed: a documented route works without an account.
Can an AI agent delete its Convex account?
Not applicable: our agent used Convex without an account, and it made nothing to delete.
Not tested in this drive: paying. Every checkpoint, in detail
For the team behind Convex.
Where agents stop in Convex today, and the fixes that get them further, highest impact first.
The fixes, highest impact first
- Let verified agents through the sign-up pageStep-by-step guide
- Make MCP work on local deployments
- Add billing endpoints to the Management APIStep-by-step guide
2 more fixes
- Add a CLI command to delete local deployments
- Name the real cause in JWT errors
- Claim it free and reply next to the result.
- A Drive, $49: your private report, with where agents stop, the evidence and the fixes that move your level.
- Fixed something? Order a Drive ($49) any time, or the Monthly drive ($29/month).
Details
Your API, MCP server or CLI is the product? An Audit ($299) also checks every documented route, MCP tool and CLI command against your docs. Compare plans.
Already claimed it? Open it in your dashboard.
Rather not be driven? Block AgentDrivesAgent in robots.txt or write to us. We stop driving it ourselves; this page stays, with its date.
Embed the badge on your site
Behind the level.
The part scores and the measures behind them.
Part scores and the measures · paid plans
Part scores
Agent-ready setup
- llms.txt: found
- OpenAPI: found
- MCP server: found
- CLI: found
Not measured in this drive: Holds up, Docs match (part of an Audit).
The measures
- Work done70
- Reliability–
- Crash test–
Needs a paid plan
Not counted in the level. Our drive used none (no cloud account); free, no-account local deployment via the official CLI.
| Capability | Plan |
|---|---|
| Custom domains, log streaming, daily backups | Professional ($25/dev/month) |
For agents and builders.
The drive as data, every checkpoint and all 33 attempts.
How an agent connects · 5 tips
/api/tools/convex.json/tools/convex.mdMCP get_tool {"slug":"convex"}
- Without an account, run `npx convex dev --once` in a non-interactive shell: it provisions a local anonymous deployment and never prompts for login
- Use `npx convex run`, `npx convex data` and POST /api/query to verify state; `function-spec` lists every function with its args
- For self-hosting, set CONVEX_SELF_HOSTED_URL and CONVEX_SELF_HOSTED_ADMIN_KEY in .env.local; the admin key comes from generate_admin_key.sh in the container
- The official MCP server only works after a cloud login; use the CLI otherwise
- Once a human has an account, the Agent Mode docs give you a per-agent dev deployment with a scoped deploy key (`deployment create` + `deployment token create`)
Every checkpoint, in detail · 9 checkpoints
- DocsHeadlessllms.txt on docs and www, every page as .md, Management API OpenAPI at api.convex.dev/v1/openapi.json, an Agent Mode page for cloud agents
- Sign upNot neededNot needed: a documented route works without an account.
- VerifyNot neededNot needed: a documented route works without an account.
- KeyNot neededNot needed: a documented route works without an account.
- First callHeadlessDocumented no-account route: npx convex dev --once in a non-interactive shell provisions an anonymous local deployment; npx convex run and POST /api/query worked. Cloud API returned 401 MissingAccessToken.
- First actionHeadlessPushed schema+functions, inserted/patched/deleted documents, HTTP action, cron, scheduler, env vars on the local deployment. Nothing created in Convex Cloud.
- PayNot reachedFree & Starter plan needs no card. Upgrades only via the dashboard billing page (docs teams.md); no billing endpoints in the Management API; no 402/x402/MPP/L402 on api.convex.dev; x402./mpp./agents. subdomains do not resolve; no listing in x402 Bazaar, mpp.dev or projects.dev. Reaching that checkout needs an account, which needs a human at the sign-up challenge.
- CancelNot neededNothing to cancel: our agent used the free plan.
- DeleteBlockedCloud: no account to delete; docs place account deletion on the dashboard Profile page (web UI only). Local: no CLI command deletes a local deployment; removed the .convex folder by hand.
The attempt log · 33 attempts
| Capability | Route | Result | Evidence |
|---|---|---|---|
| Docs discovery: Find machine-readable docs, OpenAPI, MCP docs | api | done ✓ | docs.convex.dev/llms.txt (508 lines, .md per page), www.convex.dev/llms.txt, api.convex.dev/v1/openapi.json (Management API, 49 ops), docs page /cli/agent-mode.md |
| Agent discovery / pay probes: Probe .well-known/ucp, oauth-protected-resource, oauth-authorization-server, auth.md, SKILL.md, x402./mpp./agents. subdomains | api | done ✓ | All 404 (HTML soft-404 on www); api.convex.dev/.well-known/* 404; x402./mpp./agents.convex.dev do not resolve (curl 000); api.convex.dev/v1/teams unauth -> 404 |
| Develop backend locally (no account): npx convex dev --once in non-interactive shell with no login | cli | done ✓ | .env.local CONVEX_DEPLOYMENT=anonymous:anonymous-app; 'Convex functions ready', index tasks.by_done added |
| Database CRUD: insert, patch, delete documents via mutations; read back | cli | done ✓ | npx convex run tasks:add -> id j57c206e...; complete patched done=true; remove deleted; npx convex data tasks shows expected rows |
| Query via HTTP API: POST /api/query on deployment URL | api | done ✓ | POST http://127.0.0.1:3210/api/query {path:'tasks:list'} -> {status:success,value:[3 docs]} |
| HTTP actions: Serve GET /tasks via httpRouter | api | done ✓ | curl http://127.0.0.1:3211/tasks returned JSON array of tasks |
| Environment variables: env set/list and read from an action | cli | done ✓ | env set GREETING; env list shows it; run tasks:env -> 'hello-agent' |
| Scheduling and crons: scheduler.runAfter 2s + interval cron | cli | done ✓ | 'scheduled' row appeared after 4s; 'cron tick' row inserted on deploy |
| Schema and indexes: Define schema with index, push | cli | done ✓ | deploy output: Added table indexes [+] tasks.by_done |
| Export data: npx convex export | cli | done ✓ | Downloaded snapshot export to /tmp/cvx-export.zip (1324 bytes) |
| Function metadata: npx convex function-spec | cli | done ✓ | JSON with HttpAction /tasks, Query tasks.js:list etc. |
| MCP server: npx convex mcp start; tools/list; call status on anonymous local deployment | mcp | partial | tools/list -> 12 tools (status,data,tables,functionSpec,run,envList,envGet,envSet,envRemove,runOneoffQuery,logs,insights); tools/call status -> isError 'Not Authorized: Run `npx convex dev` to login to your Convex project.' |
| Sign up (cloud account): Open dashboard.convex.dev/signup in browser | browser | blocked ✓ | Redirect to https://auth.convex.dev/sign-up -> title 'Just a moment...', Cloudflare 'Performing security verification' with visible 'Verify you are human' checkbox (shots/001.png, 002.png); after 12s still challenged; clicking the 'Sign up' link from the sign-in page hits the same challenge (shots/005.png) |
| Sign up (cloud account): Headless request to sign-up page | api | blocked ✓ | |
| Log in via CLI device flow: npx convex login --no-open in non-interactive shell | cli | blocked ✓ | CLI printed 'Visit https://auth.convex.dev/device?user_code=•••• to finish logging in' (expires 299s); completing it requires an existing account, which needs the challenged sign-up |
| Sign in with email (try existing-account path): Enter address on auth.convex.dev 'Continue with email' | browser | blocked ✓ | Moved to /password step (Email + Password, 'Sign in', passkey) - sign-in only, no account creation |
| Management API (projects, deployments, deploy keys): Call api.convex.dev/v1 without account | api | blocked ✓ | GET https://api.convex.dev/v1/teams/1/projects -> 401 {code:MissingAccessToken,'An access token is required for this command.'} |
| Cloud dev deployment per agent: npx convex deployment create --type dev + deployment token create (docs/agent-mode) | cli | blocked ✓ | Requires login/team token; no account possible past sign-up challenge |
| Upgrade plan / billing: Find agent-native or API billing route | none | blocked ✓ | Pricing: Free & Starter $0 + pay-as-you-go, Professional $25/dev/month; docs teams.md: upgrade via dashboard.convex.dev/team/settings/billing (web UI). No billing endpoints in Management OpenAPI (49 ops). No x402/MPP/L402 headers; no convex listing found in x402 Bazaar, mpp.dev/api/services, projects.dev |
| Pay step registries: Query x402 Bazaar, mpp.dev, Stripe Projects for convex | api | done ✓ | No 'convex' matches in Bazaar discovery resources, mpp.dev/api/services or projects.dev page |
| Self-host install: docker compose (official self-hosted/docker/docker-compose.yml), generate_admin_key.sh | cli | done ✓ | backend Healthy, dashboard Started; admin key generated |
| Self-host: deploy + CRUD + env + HTTP action + export + import: npx convex deploy with CONVEX_SELF_HOSTED_URL/ADMIN_KEY, run, env set, data, import | cli | done ✓ | 'Deployed Convex functions to http://127.0.0.1:3310'; tasks:add -> id; env GREETING read back 'selfhost-hi'; curl :3311/tasks JSON; export zip; import 'Added 2 documents to table tasks' |
| Self-host: MCP: npx convex mcp start; tools/call status on self-hosted project | mcp | failed ✓ | isError 'Not Authorized: Run `npx convex dev` to login to your Convex project.' |
| Leave: delete self-host: docker compose down -v | cli | done ✓ | Volume selfhost_data Removed; 0 containers, 0 volumes left |
| Leave: delete local anonymous deployment: Remove local deployment and data | cli | partial ✓ | No CLI command to delete a local deployment (deployment: select/create/token/usage only); removed app/.convex (508K) by hand; ~/.cache/convex binaries remain |
| Leave: delete cloud account: Delete account / cancel plan | none | skipped | No account created. Docs: account deletion in dashboard Profile page; team deletion cancels subscription (teams.md) - web UI only |
| Text search: Search index on tasks.text, query 'milk' | cli | done ✓ | extra:search {q:'milk'} -> 1 row 'buy oat milk' (of 2 new rows) |
| Vector search: vectorIndex dims=3, insert 2 docs, ctx.vectorSearch from action | cli | done ✓ | similar([0.9,0.1,0]) -> cats _score 0.994, dogs 0.110 |
| File storage: generateUploadUrl -> POST file -> save id -> getUrl -> download -> delete | api | done ✓ | upload returned storageId kg205d03...; GET storage URL returned 'hello file from agentdrives'; after storage.delete fileUrl returned null and `npx convex data _storage` shows no documents |
| Auth (custom JWT provider): auth.config.ts customJwt with data: JWKS; call whoami with/without Bearer JWT | api | done ✓ | no token -> value null; signed RS256 JWT -> {issuer:'https://agentdrives.test',subject:'agent-1',name:'AgentDrives Test'}; tampered signature -> InvalidAuthHeader |
| Realtime subscriptions: ConvexClient.onUpdate(tasks:list) then mutation from same client | sdk | done ✓ | subscription callback fired with row counts [3,4]: initial result then pushed update after insert |
| Logs: npx convex logs --history 5 | cli | partial | Printed 'Watching logs for dev deployment anonymous-app...' but no history lines within 8 s |
| Preview deployments / team invites / custom domains / AI gateway: Cloud-only features | none | blocked | Need a cloud account (sign-up wall) |
Also in Databases.
AirtableL4Gets in on its ownConvex vs Airtable
NocoDBL4Gets in on its ownConvex vs NocoDB
NeonL2Gets in on its ownConvex vs Neon
PlanetScaleL2Gets in on its ownConvex vs PlanetScale