Skip to main content

Agent Tools

The nao agent uses built-in tools autonomously to answer user requests.
Execute SQL against connected databases and return structured results.
  • Supports multiple database connections.
  • Returns typed columns and row counts.
  • Outputs can be reused by other tools.
Create charts from SQL results.Supported chart types:
  • Bar charts
  • Stacked bar charts
  • Line charts
  • Pie charts
  • KPI cards
Charts are rendered in chat and can also be sent in Slack conversations.
Execute code in an isolated sandbox (micro-VM) for advanced analysis.
  • Supports Python and shell execution.
  • Can install Python packages for a run.
  • Can reuse prior SQL outputs as CSV inputs.
  • Images uploaded to the chat are mounted into the sandbox, so the agent can read or manipulate them directly from Python (e.g. OCR, cropping, chart comparison).
  • Requires enabling Sandboxes in Admin -> Agent -> Experimental.
Search files with glob patterns in your context.
List files and directories so the agent can navigate project structure.
Read context files such as SQL models, docs, and rule files.
Search text patterns across context files with regex.
Search the public web with your model provider tools and fetch cited pages when needed.
  • Uses provider-native capabilities (OpenAI, Anthropic, Google) when enabled.
  • Lets the agent answer questions that need fresh external information.
  • Sources are shown in tool call output for traceability.
Ask the user a focused question when their request is genuinely ambiguous (multiple plausible tables, unclear metric, missing time range, etc.).
  • Renders a “Quick question” card with the question and up to 5 clickable answer chips.
  • Clicking a chip sends the answer directly - no extra Enter press required.
  • Free-form answers via the normal chat input are also supported.
  • The agent pauses and waits for the user’s reply before continuing.
  • Multi-turn clarification works naturally: previous cards switch to an “Answered” state with a checkmark on the selected chip so the full decision trail stays visible.
You do not need to select tools manually. The agent chooses and orchestrates tools based on each question.
Web search is optional and can be enabled per project from Settings -> Project -> Agent -> Web search.

MCPs

MCP (Model Context Protocol) servers expose external tools that the agent can call next to built-in tools. Configure MCP servers in agent/mcps/mcp.json:
Do not commit secrets. Store credentials in runtime environment variables or a secrets manager.

Remote HTTP servers

Alongside local command servers, you can connect to remote MCP servers over HTTP. Set transport to streamable-http and point url at the server endpoint:
nao connects to the endpoint once, reads its tool catalog, and stores it in the context filesystem so the agent can search the available tools and call any of them through a single mcp_call tool.

Inline authentication

When a remote server requires OAuth, nao prompts the user to sign in inline the first time its tools are needed, so each user authenticates with their own account instead of sharing one organization-wide login. The connection is authorized per user and reused on later runs. Admins can manage MCP server enablement from Admin Setup. In chat, MCP tool calls and their outputs are rendered with a dedicated block: each call shows the server name, the tool used, and the returned payload formatted for readability (tables, JSON, and text are laid out distinctly rather than dumped as raw strings).

Skills

Skills are reusable workflows defined as markdown files in agent/skills/. A file is recognized as a skill only if:
  1. It is stored in agent/skills/.
  2. It starts with YAML frontmatter including name and description.
In chat, users can trigger skills through / shortcuts or natural prompts that match skill descriptions.