Totalum MCP
Let your AI agent build, change and publish real apps with Totalum.
Connect Totalum to any MCP-compatible AI agent. Once connected, your agent can launch full-stack apps, prompt Totalum's builder and follow it live, read and change the app's data, and publish — through natural language. It takes two steps.
Get your API key
The MCP server uses the same tlm_sk_ key as the REST API — there is no separate MCP key.
Add Totalum to your AI agent
Pick your client below and paste the config. That's it — your agent can now build with Totalum.
#Step 1 — Get your API key
The MCP key is the same tlm_sk_ key used for the REST API. Reveal it in the API section of your Totalum account — it becomes available once your account has an active credit balance.
Treat the key like a password. In shared configs, prefer an environment-variable reference (e.g. ${TOTALUM_API_KEY}) over hard-coding the raw key.
#Step 2 — Add Totalum to your AI agent
https://builder-api.totalum.app/api/v1/mcpapi-key: <your key>The old server URL https://api-accounts.totalum.app/api/v1/mcp still works and answers identically, so existing agent configs need no change.
Pick your agent:
#Claude Code
Run in your terminal:
claude mcp add-json totalum-vcaas '{
"type": "http",
"url": "https://builder-api.totalum.app/api/v1/mcp",
"headers": { "api-key": "<API_KEY>" }
}'Or add it to .mcp.json in your project root for team sharing. Use ${TOTALUM_API_KEY} instead of the raw key for environment-variable support.
#Codex
Add the server (this preserves your existing MCP servers):
codex mcp add totalum-vcaas --url https://builder-api.totalum.app/api/v1/mcpThen add the api-key header in ~/.codex/config.toml (the CLI does not support custom headers):
[mcp_servers.totalum-vcaas]
url = "https://builder-api.totalum.app/api/v1/mcp"
http_headers = { "api-key" = "<API_KEY>" }For environment-variable support, replace http_headers with env_http_headers = { "api-key" = "TOTALUM_API_KEY" } and set export TOTALUM_API_KEY="your_key".
#Cursor
Add to ~/.cursor/mcp.json (or .cursor/mcp.json for project-level):
{
"mcpServers": {
"totalum-vcaas": {
"url": "https://builder-api.totalum.app/api/v1/mcp",
"headers": {
"api-key": "<API_KEY>"
}
}
}
}If you already have other MCP servers, add the "totalum-vcaas" entry inside your existing mcpServers object. Restart Cursor after saving.
#Windsurf
Add to ~/.codeium/windsurf/mcp_config.json (note: Windsurf uses serverUrl, not url):
{
"mcpServers": {
"totalum-vcaas": {
"serverUrl": "https://builder-api.totalum.app/api/v1/mcp",
"headers": {
"api-key": "<API_KEY>"
}
}
}
}Restart Windsurf completely after saving.
#Claude Desktop
Add to claude_desktop_config.json. Claude Desktop is stdio-only, so mcp-remote bridges the HTTP server (requires Node.js):
{
"mcpServers": {
"totalum-vcaas": {
"command": "npx",
"args": [
"-y", "mcp-remote",
"https://builder-api.totalum.app/api/v1/mcp",
"--header",
"api-key: <API_KEY>"
]
}
}
}Config file location:
- macOS —
~/Library/Application Support/Claude/claude_desktop_config.json - Linux —
~/.config/Claude/claude_desktop_config.json - Windows —
%APPDATA%\Claude\claude_desktop_config.json
Restart Claude Desktop after saving.
#OpenClaw
Method A — /mcp slash command (safe, preserves existing MCP servers):
/mcp set totalum-vcaas={ "command": "npx", "args": ["-y", "mcp-remote", "https://builder-api.totalum.app/api/v1/mcp", "--header", "api-key: <API_KEY>"] }Requires commands.mcp: true in your config. Use /mcp show to verify and /mcp unset totalum-vcaas to remove.
Method B — config file (~/.openclaw/openclaw.json, under mcp.servers):
{
"mcp": {
"servers": {
"totalum-vcaas": {
"command": "npx",
"args": [
"-y", "mcp-remote",
"https://builder-api.totalum.app/api/v1/mcp",
"--header",
"api-key: <API_KEY>"
]
}
}
}
}OpenClaw is stdio-only, so mcp-remote bridges the HTTP server as a local process. Restart the gateway after editing the config. Requires Node.js.
#Any other MCP agent
Use these values to configure any MCP-compatible agent. The server uses Streamable HTTP (not stdio), and the api-key header must be sent with every request. Some agents use serverUrl instead of url — check your agent's docs.
{
"mcpServers": {
"totalum-vcaas": {
"url": "https://builder-api.totalum.app/api/v1/mcp",
"headers": {
"api-key": "<API_KEY>"
}
}
}
}For stdio-only agents, bridge the HTTP server with the mcp-remote npm package (requires Node.js).
#What your agent can do
The MCP tools are the App Builder API as tools, with the same key, credits and limits:
| Area | Tools |
|---|---|
| Build | launchProject, createProject, runAgent, getAgentStatus, getAgentProgress, stopAgent, getConversationHistory, clearAgentContext, getProject, getProjectState, listProjects |
| Publish | deploy, getDeploymentStatus, getVersions, recoverVersion, addCustomDomain, deleteCustomDomain |
| Data | getDatabaseSchema, queryRows, runSql, askDatabase, createDatabaseRecord, editDatabaseRecord, bulkRecords, linkRecords, getDatabaseUsage, backups and restores, undoAgentRunDatabaseChange |
| Run | getProjectLogs, getBackendLogs, getProjectUsage, getSiteAnalytics, getSpendingAnalytics, scheduled jobs, getProjectLimits, updateProjectCreditLimits, pauseProject, resumeProject |
| Configure | secrets, project keys, getProjectEnv, the agent's system prompt and MCP servers, webhooks, GitHub, payments, mobile builds, data residency |
| Copy | exportProject, importProject: the imported project keeps the id of the project it goes into, so to choose its id call createProject with that projectId and sourceImportCode first |
Tell your agent what you want ("build me a booking site for my barbershop and publish it"); it calls the tools in the right order: launch, follow, preview, publish. For agents without MCP, give them the docs for AI agents instead.
#See it in action
Create and deploy multiple websites in parallel using Claude Code + the Totalum MCP:
