Tools, resources, and prompts
@tool
@tool
@tool search
@tool search --query tea
@tool echo --message hi
@tool echo --message=hi@tool lists the tools on the servers connected to this tab, favourites first within each server, then A→Z. When more than one server is connected, the list names the server after the description. An empty @tool with an active connection shows Disconnect on the chip.
@tool name opens the arguments form when that tool is already connected. If it is not, the scrollback says it was not found and the app looks through the saved servers, stops at the first server that has the tool, connects it, and shows MCP connected with the server name and tool count. It then opens the form, or runs the call when the line already has flags. Servers already connected are checked first.
When the header environment or customer is set, only saved servers with that same environment and customer are searched. When a header value is not set and the remaining servers disagree, a dialog asks for the environment, the customer, or both. Search continues. Cancel leaves the line in the prompt and writes Tool search cancelled. If nothing matches, the scrollback says the tool was not found.
@tool with no MCP server saved points you to @create mcp.
Quotes and --param=value both work. Unknown flags, duplicate flags, bad types, and missing required parameters do not call. The scrollback marks the call with a tool pill and shows how long it took.
Parameter recall keeps the last 10 argument sets per tool and connection, and drops names that look like secrets.
Progress and cancel
Every tool call carries a progressToken. notifications/progress updates one system line in place, for example ⏳ search · 3/10 (30%) · Indexing files. A quiet call can run for up to 5 minutes between updates.
Ctrl+C during a tool call sends notifications/cancelled with the request id and stops waiting. The scrollback says the call was cancelled. This works over HTTP (progress on the call’s event stream) and stdio. The tool form shows the same progress and has Stop.
The client asks for MCP 2025-06-18, uses the version the server answers with, and sends it as MCP-Protocol-Version on every request alongside Mcp-Session-Id.
Interpret the result
Tool output stays JSON unless Settings → Interpret MCP tool responses with the LLM is on (off by default) or the call includes --llm.
@tool search --query tea --llm
@tool search --query tea --llm --instruction Summarise in three linesJSON and interpretation is the default. Interpretation only hides the JSON when the model call succeeds. The interpretation is Markdown, with an ai pill and how long the model call took. A fenced code block is coloured for the language on the fence. A fence with no language, or text, stays plain.
A failed tool call, a missing connection, or a failed model call still shows the JSON. A failed model call still shows the ai pill and the time.
A large tool result is shortened before it is sent to the model, keeping whole records and saying how many were left out. The scrollback still shows the full JSON. The magnifying glass on that block searches the response. Search a response has the keys.
--instruction is only valid with --llm, and it must be last. Everything after it is extra instruction appended to the user message. It does not replace the connection’s system prompt, and it is not stored as a tool parameter. Secret-looking instruction text is masked in @history.
@resources and @prompts
@resources
@prompts@resources lists the resources and resource templates on the tab’s servers. Choosing one reads it into the scrollback. JSON is pretty-printed, Markdown is rendered, and binary content is summarised as a size and a MIME type. A template asks for its placeholders first.
@prompts lists the servers’ prompts. Choosing one asks for its arguments, shows the messages, and puts the last user message in the input line.
Agent approval
@agent <goal> can ask to call these same tools. Each call waits above the prompt. Ask the model covers Run, Run all, Skip, and Stop. Nothing runs without that approval. A call that runs sits on the right of the scrollback while the tool is working. Click it for the parameters, and open the JSON response when you want the body.