Skip to main content
An agent reads your answer as text or as data. If your tool changes something, the agent also needs to know whether the change happened.

MCP results

Put the facts the agent needs in the text. Do not rely on an image.

API results

If your API answers with a JSON body, send Content-Type: application/json. A JSON body with another content type arrives as text. An answer can be up to 1 MB. A larger one counts as no answer. If your answer contains the key that ImpelLabs sent, ImpelLabs replaces it with [hidden] before the agent sees it.

Write clear errors

The agent reads the error text and decides what to do next. Say what is wrong and what to change, in one or two sentences. An error message reaches the agent up to 2000 characters. Do not put secrets or stack traces in it.

Side effects

A tool with the risk write, send or money changes something outside ImpelLabs. For those, your workspace rules decide whether the call runs, waits on a card for a person to approve, or is refused. The card shows the operation, the connection and the fields the call would send. When a call may have run, the agent gets: “It may have run. Check before you try again.” This happens for an MCP server that answers 5xx, 408 or 429 or does not answer, and for an API in the cases above. A tool call runs once. ImpelLabs does not retry it. Make your side safe for a repeated call:
  • Give the agent a read operation that shows the current state, so it can check before it tries again.
  • Accept a client-chosen id or key in create operations, and ignore a second request with the same one.
  • Return the final state, not only “ok”.

Timeouts

ImpelLabs waits up to 15 seconds for each request to your server. It does not follow redirects. A slow tool needs to answer with a job id and offer a second operation to read the result.