Tool reference
Every tool the AINOX App MCP server exposes, with its inputs, its result, and the errors it returns.
Every tool acts on the threads owned by the API key’s account. A threadId that doesn’t exist, or belongs to someone else, fails with Thread <id> not found. Results come back as structuredContent; a failed call sets isError, and content[0].text holds a JSON string with the error in its message field.
list_threads
Lists your 50 most recently updated threads, newest first. Takes no input.
threadsobject[]requiredproperties
idstringrequiredtitlestringrequiredupdatedAtstringrequireddeploymentIdstringget_thread
Gets one thread’s state: whether the agent is working, what it’s waiting on, and the deployment.
threadIdbodystringrequiredThread ID (a UUID) from list_threads or create_thread.
idstringrequiredtitlestringrequiredupdatedAtstringrequiredurlstringLink to the thread in the web app. Missing when the server has no public URL configured.
status"idle" | "running" | "waiting"requiredrunning while the agent replies, waiting while it is paused on a tool call, idle when it is ready for send_message.
pendingToolCallsobject[]requiredTool calls waiting on you. Empty unless status is waiting.
properties
runIdstringrequiredresolve_tool_call.toolCallIdstringrequiredresolve_tool_call.toolNamestringrequiredask_user.kind"answers" | "approval"requiredinputunknownrequiredanswers, or the command and arguments to judge, for approval.deploymentobjectPresent once the thread has been published.
properties
idstringrequiredurlstringrequiredstatusstringrequiredcloning, uploading, waiting, active, completed, failed, or unreachable. See Deployment status.
create_thread
Starts a new thread. The agent begins building in its own sandbox and the call returns immediately.
promptbodystringrequiredWhat to build, in plain language.
threadIdstringrequiredrunIdstringrequiredurlstringsend_message
Sends a follow-up prompt to an idle thread and returns immediately.
threadIdbodystringrequiredpromptbodystringrequiredrunIdstringrequiredFails with The agent is still replying while the thread is running, and with The agent is waiting on a tool call while it is waiting.
list_messages
Reads a thread’s conversation, oldest first. Tool inputs and outputs are left out; read the code with list_files and read_file.
threadIdbodystringrequiredmessagesobject[]requiredproperties
idstringrequiredrole"system" | "user" | "assistant"requiredtextstringrequiredtoolCallsobject[]requiredThe tools the agent called in this message, each with toolName and its state, such as output-available.
resolve_tool_call
Answers a tool call listed in pendingToolCalls and resumes the run.
threadIdbodystringrequiredrunIdbodystringrequiredtoolCallIdbodystringrequiredactionbody"approve" | "decline" | "answer"requiredanswer for kind: "answers"; approve or decline for kind: "approval".
answersbodyobjectRequired with answer. Keyed by question ID: an option label for single_select, an array of labels for multi_select, text for text, or null to skip a question that isn’t required.
reasonbodystringWith decline, why you declined. The agent reads it.
runIdstringrequiredFails with No pending tool call with that runId and toolCallId when the call was already answered or the IDs are wrong; call get_thread for the current ones.
stop_run
Stops the agent’s reply. A tool call it is waiting on stays pending.
threadIdbodystringrequiredstoppedbooleanrequiredfalse when nothing was running.list_files
Lists one directory of the thread’s project. Wakes the thread’s sandbox if it has stopped, so the first call after a while can be slow.
threadIdbodystringrequiredpathbodystring.Directory, relative to the project root.
entriesobject[]requiredEach entry has a name and a type of file or directory.
read_file
Reads one text file of the thread’s project. Wakes the sandbox if it has stopped.
threadIdbodystringrequiredpathbodystringrequiredcontentstringrequiredpublish
Publishes the thread’s app to its public URL. The build runs after the call returns; poll get_thread for deployment.status. Later publishes update the same deployment.
threadIdbodystringrequirednamebodystringRequired on the first publish and ignored after. Up to 100 characters. It becomes the thread’s title and, as a lowercase slug of letters, digits, and hyphens, the URL’s subdomain: My App publishes to https://my-app.app-builder.poring.arkcube.com, or https://my-app-2.app-builder.poring.arkcube.com when that is taken.
deploymentIdstringrequiredurlstringrequiredFails with Name the app before publishing it when the first publish has no name, and with Nothing to publish yet when the thread has no files. Don’t call it again while a build is in progress.