Every seat has a grant list. The grant is the allow-list. An ungranted tool is not callable, even if the model asks for it. You set grants when you add the agent, and you can change them later on the agent panel → Tools.

Built-in groups

Special names (never in a group — opt in by name or *): ['*'] means every built-in. [] means none. null means the provider default (CLI seats keep their native toolset).

How grants reach the model

  • Cloud / local HTTP seats — porto’s catalog as native function-calling.
  • Claude Code — the same catalog over an in-process MCP server (mcp__porto__*), only when a grant spec is set.
  • Codex / Grok CLI — porto tools over a shared MCP launcher. Prefer porto tools for room work; native shell is fallback for local repo edits.

World tools (optional)

Some seats can use extra tools if you enable them: now, weather, send_telegram. Those show on the agent Tools tab when the backend has them registered.

Web search keys

Bare API seats use porto’s web_search tool. Put one of these in backend/.env and restart the API:
CLI seats use their own native web search when the CLI provides it.