CAKE20

AI Web PaaS

MCP-provided tools

A tool that allows AI to explore, modify, and validate projects.

reading tools

  • get_guide: Read the Cake20 structure and AI task rules.
  • read_web: Read public HTTP(S) text with GET or HEAD. Private networks, credentials, non-standard ports, cookies, and binary responses are blocked.
  • list_templates: Read the purpose and reusable features of available templates.
  • check_templates: From a manager's built-in AI Chat, read or start Preview and Runtime build inspection for all templates or one selected variant.
  • read_template: Read the file tree or specific text source of the selected template. Please refer to the current website implementation. The template is not modified.
  • view_template: Check the template thumbnail as an image to see what the user wants. Compare and recommend starter templates that match your visual style.
  • get_service: Actual website status, public URL, including sleeping for engine diagnostics, Check the latest wake-up time and the number of users connected in the last 10 minutes.
  • list_sites·get_site_resources·get_site_activity: Log in from built-in AI Chat Check the user's entire site, resources, and activity records.
  • list_site_backups·list_deleted_sites·list_owner_transfers: Site backups; Check recoverable deletion sites and transfer ownership requests.
  • list_account_messages: Account inbox separated from website-specific messages.Read Sent Mail, Archives, and Trash.
  • get_subscription: Read current subscription status, processing applications and published deposit instructions.
  • get_settings: Read environment variables, Secret names, CORS, domains, runtime limits, and Telegram or Gmail owner-alert state.
  • search_chat_history: Permanence of current user and website in built-in AI Chat. Search Chat logs. Logs from other websites cannot be read.
  • get_logs: Read recent build and Runtime logs for debug or release. The legacy test and production targets remain aliases.
  • list_files: Editable files under package.json and app, public, server, and shared. Read the entire file tree. System management/creation paths are excluded from the results.
  • search_files: Search for text sources under the same conditions as the editor's file content search. Find files, lines, columns and surrounding content.
  • read_file: Read the current content and size of a text file up to 2MB before editing.
  • read_asset: Read a source-controlled binary file up to 2MB as base64.
  • list_storage·read_storage: Operational user file storage separated from Git source Searches folders and files and reads files under 2MB.
  • git_status: Check the current commits and changed files in your website source.
  • git_diff: Check source differences after the current commit.
  • git_log: Check recent website source commit history.
  • list_tables: List tables in the website database shared by the editor, review, and release.
  • read_table: Read the shared database schema and up to 100 rows of data.
  • query_db: Run parameterized, read-only SQL against the shared database.
  • list_redis: Read keys, types, TTLs, sizes, and value previews from shared Redis.
  • query_redis: Executes read-only Redis commands such as GET, HGETALL, and LRANGE on a single website key.
  • list_memos: Retrieves notes for the current administrator or owner account and reads them by page.
  • list_messages: Check the number of messages sent and received by the current account and the number of unread ones.
  • check_readiness: Checks the desktop and mobile design preview of the storage source. SEO, accessibility, responsive screens, internal linking, console errors and great initial resources. Returns a deployment readiness result of 0 to 100 points.
  • get_operation: Asynchronous operation ID returned by start_review, which indicates the build/transition stage and Completion Read the results and wait up to 30 seconds if necessary.
  • get_preview_state: Actual design/review iframe state reported by the open editor, Read start/stop button activation, transition history and blank screen issues.
  • inspect_preview: document readiness status, DOM elements, Read location, visibility, selected compute style and secure storage metadata.
  • get_preview_network: MCP browser's HTTP status/failure and WebSocket connection/Reads the number of ends/sending/receiving. The body, header, and payload are not returned.
  • trace_preview: Prepare document for up to 10 seconds, blank screen, number and specify iframes Track selector visibility at intervals of at least 50ms.

change tool

  • set_chat_plan and update_chat_plan: In built-in AI Chat, show a 3-to-8-step Plan only for work with at least three independent substantial steps, then mark each step running, done, or error. Skip it for short and one- or two-step requests.
  • begin_work: Reveal the actual AI/model name and work details just before the first change. Record the editing status. If there is an Incomplete status, replace it with a new task.
  • ping: Cake20 MCP no request time reaches 3 minutes after begin_work It is an alternative activity signal that is only called directly by the AI ​​before. General MCP request/notification Just one of the pings is enough, and if you're sending or receiving requests, The 3 minutes are recalculated from that point without a separate ping. think for a long time If it is determined to be planned or waiting, ping is called first before starting.
  • finish_work: After modification, commit, and inspection are completed, the modification status is completed and the completion result is displayed. Add to editor history. The actual publish_service success is also recorded. Unrecoverable errors are terminated by sending status to error. In either case Immediately, another AI or editor can begin the next edit.
  • handoff_to_ai: When the user tries to continue working in the built-in AI Chat. AI communicates progress after finish_work. Active AI on the same website Save handovers and internal AI confirmation answers in conversations, and open the editor to AI Chat. Switch and renew. Only for external MCPs linked to your account, not for internal AI. Not exposed.
  • apply_template: The template selected by the user in the first conversation has not yet been modified/tested.Apply it as a starting source for the default, unbuilt project and save it to Git. Executes after explicit selection only in built-in AI Chat.
  • create_site·import_site·export_site: User limit and Verify ownership to create a default/template site or a ZIP under 10MB Import and export. import_site is the source and top folder of the ZIP root You get the same source structure all wrapped into one.
  • manage_site: Deploy, start, stop, favorite, and rename my site. Termination is carried out after revealing the exact site and obtaining consent.
  • restore_site_backup·delete_site·restore_deleted_site: restore backup, site When performing deletion and recovery of deleted sites, first select the target and scope of replacement/deletion. Explain and require task-specific consent.
  • request_owner_transfer·cancel_owner_transfer·respond_owner_transfer: Site ownership transfer is requested, canceled, accepted, and rejected, all with consent for each task.
  • send_account_message·update_account_message·clear_account_trash: Account Send messages and change the read, archive, or trash status. Move the trash can Permanent vacancy requires separate consent.
  • request_subscription: Subscription after showing the period, amount, and name of the depositor and receiving consent Create an application and deposit information note. We do not perform physical bank transfers.
  • write_file: Create or replace a text file up to 2MB using its complete content. The latest save wins, so read the current file immediately before writing and preserve unrelated changes. Cake20 applies View and DB source save rules automatically.
  • upload_files: Upload new binary sources such as images and fonts under 2MB per file. Add up to 20 at a time in base64.
  • write_asset: Replace a binary source from complete base64 content or create a new file up to 2MB.
  • create_directory: Creates a folder in an allowed website path.
  • move_path: Example·Change the path of a user file or subfolder. Common folders and standard files cannot be moved.
  • delete_path: Example · Delete a user file or subfolder. Common folders and standard files cannot be deleted.
  • write_storage·create_storage_folder·transfer_storage·delete_storage: Create, move, copy, and delete files and folders in the operating user file storage. Overwrite and delete are explicitly acknowledged.
  • git_commit: Commit all reviewed source changes along with a task description.
  • git_restore: First save the current changes and then restore only the specified path from the selected commit.
  • update_settings: Environment variables, encryption Secret, CORS, Custom Domain and execution Change restrictions/site deletion protection. Any settings you omit will be retained and the next This applies from the start.
  • insert_rows: Adds up to 100 rows of data requested by the user at a time.
  • update_rows: Modifies up to 100 rows of data specified as the primary key at a time.
  • delete_rows: Deletes up to 100 rows of data specified as the primary key after explicit confirmation.
  • execute_db: Executes DDL and DML inside the website-specific DB.
  • execute_redis: Change string, hash, list, set, sort set, stream and TTL.
  • clear_redis: After explicit confirmation, only all Redis data for the website is deleted.
  • create_memo: Creates a private note for the current administrator or owner account.
  • delete_memo·clear_memos: One note for the current account role after explicit confirmation. Or, delete everything and leave the other role's notes unchanged.
  • send_message: Sends a message between the website administrator and owner to the current account.
  • mark_messages_read: Marks all unread messages arriving at the current account as read.
  • show_media: Site image, MP4, WebM or verified text in built-in AI Chat answers Shows the YouTube player. Used instead of Markdown image syntax You can send up to 6 responses per response.
  • beta_service: Build the current source into build/debug, connect it to the shared database, Redis, and files, then open the review URL after all server/**/*.test.ts files pass. Scheduled tasks stay disabled in review.
  • start_review: Starts the review build and execution as an asynchronous task and sets the operation ID to Return it immediately. No duplicate builds are performed if the same inspection task is running.
  • stop_review: Stop the review runtime until the new design runtime is ready. Retains existing inspection iframe and URL and checks end screen state.
  • publish_service: User explicitly requests deployment/publishing/operation application Only if the verified source is launched as an operational website.
  • check_service: Rechecks process execution and web page response status.
  • run_test: Run one saved API, Job, Task, SQL, or server/**/*.test.ts file with the editor's test engine and shared database. It can change live data and call real external services such as email or payment providers.
  • control_editor: Start/end Preview of the editor opened in internal AI Chat.Controls refresh, device, rotation, selection mode, display target, and runs Console.Stop, delete, move to the end, switch to Chat, and select files and pages. In Easy Mode, the same controls are performed even if the relevant screen is hidden.
  • start_mcp_browser: Design an isolated MCP browser without taking screenshots Alternatively, open it in inspection mode to begin a general implementation/runtime inspection.
  • control_mcp_browser: Open the active MCP browser without an image by clicking, entering, or entering a key.Move within, go back, refresh, and return page status and errors.
  • open_preview: Open a quick design preview or a review preview connected to the shared database and APIs in an isolated browser, returning a screen image. The same AI screen is displayed in the opened editor Preview. in current request Use only when the user specifies a screen capture or visual confirmation.
  • interact_preview: Click, enter, move, and refresh the preview screen and change Returns back screen images, manipulable elements and browser errors. Use only in the scope of explicit visual confirmation requests.
  • close_preview: Immediately closes the MCP preview session, including the login cookie.
  • close_mcp_browser: Maintains design and inspection runtime and isolates MCP browser and Only cookies are explicitly terminated.
  • request_service: explicitly wakes up the sleeping inspection website and runs the page and API. It is called with an internal loopback to verify the status, header, body, and authentication cookie.

The DB tool runs in a website-specific role. You can freely change tables, columns, indexes, constraints, views, functions, and triggers, but you cannot obtain other DB and server role permissions.

Using files larger than 2MB

MCP's text and binary file tools handle up to 2MB per file. Web static images are first converted to WebP·AVIF and resized to less than 2MB. We recommend optimizing it.

Even with optimization, if you really need static resources exceeding 2MB, you need to select the folder and folder for AI to use. The file name is provided and the user selects the target folder from the editor's file list. Select it and right-click to upload it locally.

  • After uploading, AI checks the exact path with list_files and only references that path in the code.
  • Files larger than 2MB are uploaded to the final name as MCP cannot read or replace their contents.
  • Original photos and videos uploaded by website users are not included in the source code, but are used for storage and files.
  • Direct editor uploads also apply website-wide file size restrictions.

Complete development flow using only MCP

  • AI that receives a user's code modification request stops at analysis or patch suggestions. Instead, modify the website source directly with MCP and commit it to Git.
  • Just before the first change, notify the actual AI/model name and work details with begin_work. Record the editing status. If there is an Incomplete status, replace it with a new task.
  • After begin_work is successful, Cake20 MCP request is made every 3 minutes until finish_work. If there is one, I'm working on it. One of general MCP request/notification and ping That's enough. If a request is being exchanged or executed, there is no need for a separate ping. AI only uses the ping tool if there are no new requests within 3 minutes of the last request. Call it directly. If you decide to think, plan, or wait for a long time, start. send a ping before, and if the no signal condition continues, before the next 3 minutes Send it again. This stays connected It is not advisory and is not a replacement for HTTP keep-alive, open connections, or local operations.
  • State service.name from initialization once and proceed because the authenticated URL already fixes the target. If the connection is expiring, Instead of starting a new fix, we'll guide you through the solution included in the response.
  • Before external integration, check the current settings with get_settings and use Only the Secret is saved as update_settings. The Secret value does not appear in the response.
  • Read_file·write_file for text sources, read_asset·write_asset for binary sources. I use it. Several new binaries are added as upload_files.
  • When showing an image or video to a user, the created/uploaded file must be made public. Or save it in app/assets and pass the path to show_media. external HTTPS images, videos and YouTube addresses are also sent to show_media and Markdown It doesn't answer just image or iframe strings.
  • All MCP file tools use up to 2MB per file. larger static resources If absolutely necessary, guide the user to the exact destination path and After requesting an upload locally, only check the path with list_files.
  • Read the shared database and Redis with their dedicated tools, then change only the requested scope. Before a schema change or broad data edit, call create_site_backup to create an immediate restore point.
  • Changed API, Job, Task, SQL, or test files are individually checked with run_test. SSE and WebSockets require connection maintenance, so we use the editor's test run.
  • UI tasks also basically include source review, target testing, check_readiness, Check with request_service and log. Browser runtime check start_mcp_browser·control_mcp_browser·inspect_preview·Perform without image with get_preview_network·trace_preview. open_preview and interact_preview allow the user to take a screen capture or screenshot in the current request. Use only when visual confirmation is specified.
  • After git_diff and git_commit, call start_review and use get_operation to wait for the build/debug review Runtime connected to shared data. beta_service is the synchronous compatibility tool for the same operation.
  • The editor opened with get_preview_state maintains the existing design screen and prepares it. Was it changed to an inspection iframe and was the exit button activated at the same time? Confirm.
  • Source reads and writes remain available during review and release builds. Changes saved during a build are not guaranteed to belong to that build, so verify them with a new review build.
  • After checking the HTML, API, login, and cookie authentication flows with request_service, Directs the user to the address web-{website-id}-test.cake20.com.
  • open_preview's review mode only if the user specifies visual confirmation Use interact_preview. If you need a password or authentication information, please chat Instead of receiving it, we ask the user to open the MCP screen in the editor and enter it directly.
  • After checking the inspection browser, close only the MCP browser with close_mcp_browser. If you need to return to the editing screen, call stop_review and get_preview_state. Make sure your new design iframe and start button are ready together.
  • If the user did not mention deployment, the AI ​​task ends at the inspection stage. The final operational application is performed by humans.
  • After successful inspection only if the user specifies distribution, posting, and operation application Call publish_service and check the operation status with check_service.
  • When the inspection is finished, finish_work is called. Operation due to unrecoverable error If it cannot continue, send status as error to immediately finish editing. If distributed to the editor, operate If the application is complete and has not been distributed, the status of only modifications and notification of need for deployment will be accumulated. You can expand the complete completion history by clicking the arrows.
  • Do not capture previews or attach images to general implementation, testing, or completion reports. It doesn't. In the current request, the user specifies a screen capture or visual confirmation. Use the Preview Image tool only.
  • finish_work when the user attempts to continue external AI work in the built-in AI Chat Next we call handoff_to_ai. Goals, completed items, major decisions, verification, remaining The problem and next task are delivered, and the internal AI leaves only handover confirmation and summary. The call waits for the user's next instructions without making any changes to the website.
  • BUILD_FAILED, 5xx, unexpected response or task problem, go to get_logs Diagnose. Cake20 Direct access to storage, SSH, administrator screen, or website DB is not required.
begin_work({
  agent: "Codex",
  model: "actual model name",
  task: "Member list page and API implementation"
})
get_settings()
update_settings({
  secrets: { OPENAI_API_KEY: "User-supplied value" }
})
upload_files({
  files: [{ path: "public/hero.webp", base64: "..." }]
})
// Create an immediate restore point before a broad database change
create_site_backup({ siteId: "web-site-id" })
run_test({ path: "server/api/login.post.ts" })
beta_service()
request_service({ path: "/", headers: { accept: "text/html" } })
// Executes only when the user specifies distribution, publication, and operational application.
publish_service({ message: "Landing page and API implementation" })
get_logs({ target: "production", lines: 200 })
finish_work({ summary: "Edit/commit/review completed" })
// Runs after finish_work only if the user wants to continue from the built-in AI Chat
handoff_to_ai({
  summary: "Goals, completions, key decisions, verification results, remaining issues and next actions"
})

DB and Redis control scope

  • The editor, review Runtime, and release Runtime share one website database and Redis namespace. target values test and production are legacy aliases for that same data.
  • When the current request explicitly includes a database or Redis change, AI executes only that target and scope without another approval popup or repeated confirmation.
  • Row deletion, full Redis deletion, and broad schema changes run only when the current request specifically includes that operation.
  • Database writes create a backup without stopping the running release and restore it automatically if the write fails. Call create_site_backup separately before a schema change or broad data edit.
  • Redis finds keys with list_redis, reads values ​​with query_redis, and changes values ​​and TTL with execute_redis.
  • Only command arguments following the key are passed to args of query_redis and execute_redis. The website prefix is ​​automatically added by Cake20.
  • execute_redis supports the following commands: hash, list, set, sorted set and stream, as well as SET.
  • clear_redis also deletes login sessions and queued jobs, so use it only when the current request explicitly asks to clear all website Redis data.
  • All Redis commands are executed only within the cake20:{website-id}: prefix and cannot access other website keys.
  • The Redis management tool is only used on Redis websites managed by Cake20.
list_redis({ target: "production", query: "session:", limit: 50 })
query_redis({ target: "production", key: "session:user:1", command: "GET" })
execute_redis({
  target: "production",
  key: "session:user:1",
  command: "SET",
  args: ["value", "EX", "3600"]
})