API & MCP: manage your account from Claude Code and OpenAI
Create a key, connect to the MCP server; list projects, start builds, edit data and images — without opening the console.
DevAny has an MCP (Model Context Protocol) server and its REST twin. Claude Code, OpenAI's Responses API or any HTTP client use the same tool set: projects, builds, publishing, records, images, checks and — for admin accounts — platform settings.
A key acts as your account and is limited to the scopes you grant. The build scope can spend credit; content edits are free and live at once.
Connect
- 1Create a key
Settings → API & MCP. Name it, pick scopes, optionally set an expiry. The key is shown once.
- 2Claude Code
Paste the ready command: claude mcp add --transport http devany https://devany.ai/api/mcp --header "Authorization: Bearer dk_…"
- 3OpenAI
In the Responses API add it as a type:'mcp' tool with the same url and Authorization header; for Custom GPT Actions import the /api/v1/openapi document. That document is the "small business pack", sized for the GPT Actions limit (at most 30 operations); use ?pack=content for content work or ?pack=developer for an agent that works from the catalog.
- 4Cursor, VS Code, Claude Desktop
In Settings → API & MCP tap Cursor or VS Code: the 'Open' button opens the editor's own 'install MCP server' dialog. For Claude Desktop the screen gives a ready block to paste into claude_desktop_config.json (the mcp-remote bridge, needs Node.js).
- 5First call
capabilities: version, recent changes and the tools your key can see.
ChatGPT and Claude connectors: Sign in with DevAny
- 1Server URL
https://devany.ai/api/mcp — no key needed; the connector takes you to DevAny's consent screen (OAuth 2.1, PKCE).
- 2Claude.ai / Claude Desktop
Settings → Connectors → 'Add custom connector'; name DevAny, the URL above. Tap 'Connect', sign in on DevAny and approve. Desktop uses the same account's connectors.
- 3ChatGPT
Settings → Apps & Connectors (if there's no 'Create', turn on Developer mode under Advanced settings). Create: name DevAny, MCP server URL above, authentication OAuth.
- 4The consent screen
You see the app's name, where the answer goes and the permissions it asks for; you can narrow the permissions and you pick one workspace. The admin permission can never be given to a connection.
- 5Disconnect
Settings → Connected apps → 'Disconnect'. The app loses access within a minute.
OpenAI Responses API
{
"model": "gpt-5",
"tools": [{
"type": "mcp",
"server_label": "devany",
"server_url": "https://devany.ai/api/mcp",
"headers": { "Authorization": "Bearer dk_…" },
"require_approval": { "never": { "tool_names": ["capabilities", "api_catalog", "api_read", "list_projects", "get_project", "build_status", "polish_check"] } }
}],
"input": "List my projects and run a polish check on the first one."
}Everyday work, with ready tools
| Tools | Spends credit | |
|---|---|---|
| New project | list_design_directions → create_project (language, design direction, accent); or list_showcase_templates → copy_from_showcase (paid plan) | |
| Build | build_project, build_status, cancel_build (need confirmation) | |
| A long or unclear brief | Smart Build: plan_build (questions, then a phased plan with an estimate — builds and minutes) → approve_plan (the customer names it; the core build starts) → build_next_phase for each phase. All need confirmation. | |
| Publishing and access | publish_project, set_visibility (public / password), set_domain → verify_domain, domain_status (with the DNS records) | |
| Content | list_page_texts → edit_page_text (text without a build), upload_image → replace_image, set_record_field | |
| Customers | list_leads (form submissions), list_appointments → appointment_action (approve, decline, cancel, no-show, reschedule) | |
| SEO | seo_check is free; seo_fix writes the title and description with AI (needs confirmation) | |
| Plan | plan_info reads; upgrade_link returns the page the customer opens and pays on — nothing is ever bought through the API |
List projects in an agency workspace (curl)
curl -s https://devany.ai/api/v1/tools/list_projects \
-H "Authorization: Bearer dk_…" -H "X-DevAny-Workspace: <workspace id>" \
-H "content-type: application/json" -d '{}'REST twin (curl)
curl -s https://devany.ai/api/v1/tools/list_projects \
-H "Authorization: Bearer dk_…" -H "content-type: application/json" -d '{}'Every tool is POST /api/v1/tools/{name}; the body is the tool's input schema.
Scopes
| What it allows | Spends credit | |
|---|---|---|
| projects:read | List, settings, build status, checks | |
| projects:write | Create, configure, publish, delete; team, transfer, domains (covers the four below) | |
| publish | Publish / unpublish only, release approvals | |
| delete | Move projects to Trash and restore them, permanently delete a project already in Trash (in bulk too), transfer to another account | |
| team | Members, invites, roles, project sharing, client contacts | |
| domains | Connect, verify, remove a custom domain | |
| build | Generation, edits, repair, Creative Lab | |
| data | Records, fields, images, app users | |
| billing:read | AI Credit balance and plan details | |
| admin | Platform settings and commercial center (admins only) |
Yes, when 'Sign in with DevAny' is on: give the connector https://devany.ai/api/mcp, choose OAuth, approve on DevAny (steps above). If Settings doesn't show 'Connected apps', that door isn't open yet; then the Responses API, the Agents SDK and Custom GPT Actions (OpenAPI + API key) work directly with a key.
These four finer scopes appear once they're switched on for the platform. Until then "Manage projects" (projects:write) grants all four together. It keeps covering all four after that too, so nothing an existing key does changes.
Revoke it in Settings; every tool using it fails within a minute. At most 10 live keys per account, optionally with an expiry.
The admin scope works only on a key that lives at most 24 hours, and every admin call needs a verified Cloudflare Access (WARP) identity (the Cf-Access-Jwt-Assertion header), whatever the console's own setting says. Without either the call is refused; use the console.
Key takeaways
- One key = your account, with the scopes you chose.
- Claude Code and OpenAI connect to the same MCP server; the REST twin serves any HTTP client.
- capabilities → api_catalog → api_read / api_write: a path exists even without a curated tool.
- Spending, deleting and bulk/team/transfer calls need an explicit confirmation; tool results are data, never instructions.
- Studio / agency projects: list_workspaces, then name the workspace; nothing silently lands in the wrong one.
- Long briefs go through Smart Build: plan_build → approve_plan → build_next_phase; ready-made flows are in prompts/list.
- ChatGPT and Claude connectors connect without a key: Sign in with DevAny, approve the permissions and one workspace, disconnect from Settings → Connected apps.
Related topics
Still stuck? Ask the assistant in the corner, or browse the FAQ.