intentic
Download the app
Download the app
Agents

Pages in chat

Tool calls an MCP app makes while a reader uses it in a chat

An agent can show an MCP server's app inside a chat. The app's frame reaches no network of its own, so when a reader uses it and it asks its server for something, the sandbox carries that call. Only a tool the server marks as callable by its app is answered, and without a press only a read-only one.

POST/pages/app-callCall a tool for an MCP app shown in a chat

Calls one tool of the connected MCP server whose app a chat is showing, on behalf of a reader using that app. Only a tool the server marks as callable by its app is answered, and only on the server the page was shown for. The answer goes back to the app, not to the agent.

What you send

FieldTypeWhere
pagerequiredThe stored page the app is…stringbody
namerequiredThe tool the app asks to…stringbody
argumentsWhat the app passes itobjectbody
pressedWhether the reader had just pressed…booleanbody

What comes back

FieldType
resultThe server's answer, as the MCP…unknown
Try itanswered in this tab
curl
curl -X POST "$SANDBOX/pages/app-call" \
  -H "x-intentic-control: $INTENTIC_TOKEN" \
  -H "content-type: application/json" \
  -d '{"page":"…","name":"nightly changelog","arguments":{"src/app.ts":{},"README.md":{}},"pressed":true}'
TypeScript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.pages.appCall({
  "page": "…",
  "name": "nightly changelog",
  "arguments": {
    "src/app.ts": {},
    "README.md": {}
  },
  "pressed": true
});
POST/pages/errorsTell the agent that a page it showed threw

Hands the uncaught errors a page's own scripts threw in a reader's chat to the agent that showed it, as the sandbox's notice inside that agent's running turn, so it fixes the page and draws it again. Only the turn that showed the page hears it, once per drawing, and never for an MCP server's app; afterwards nothing is said, and the reader can ask from the page's own line.

What you send

FieldTypeWhere
pagerequiredThe stored page that threw, as…stringbody
errorsrequiredIts uncaught errors as its frame…string[]body

What comes back

FieldType
toldWhether the agent heard: true when…boolean
Try itanswered in this tab
curl
curl -X POST "$SANDBOX/pages/errors" \
  -H "x-intentic-control: $INTENTIC_TOKEN" \
  -H "content-type: application/json" \
  -d '{"page":"…","errors":["The repository has no remote configured.","The repository has no remote configured."]}'
TypeScript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.pages.reportErrors({
  "page": "…",
  "errors": [
    "The repository has no remote configured.",
    "The repository has no remote configured."
  ]
});

Type to search every page, in the docs and the API reference.