The tools an assistant gets over MCP
The tools, resources and prompts Nova's MCP server offers, including find_operations and call_nova_operation, which reach everything a connection's grant covers.
Once connected (Connect an AI agent through MCP), an assistant calls
tools/list and gets only the tools its connection can actually use.
Built-in tools
| Tool | What it does |
|---|---|
whoami |
Who the connection acts as, which organization, and the permissions behind it. Call it first. |
list_my_organizations |
The organizations the person belongs to; a machine credential is bound to one. |
find_operations |
Search every operation this connection can call, by words, address or permission key. |
call_nova_operation |
Call any operation find_operations returned, by its operation_id. |
Documented tools
The documented operations in the API reference are tools with the same
names: list_accounts, create_quote, send_invoice,
schedule_work_order, search_help, get_help_article and so on. A tool is
listed only when the connection holds every permission it checks.
Reaching everything else
An assistant cannot hold the roughly 3,200 operations Nova has, so it searches for them:
{"jsonrpc": "2.0", "id": 3, "method": "tools/call",
"params": {"name": "find_operations",
"arguments": {"query": "void agreement", "limit": 5}}}
{"items": [{"operation_id": "post_agreements_by_agreement_void",
"method": "POST",
"path": "/v1/agreements/{agreement_uid}/void",
"summary": "Void an agreement",
"permissions": ["agreements.void"],
"path_params": ["agreement_uid"],
"read_only": false, "destructive": false}],
"count": 1,
"next_step": "Call one with call_nova_operation, passing its operation_id."}
Only operations the connection holds the permissions for are returned. Then:
{"jsonrpc": "2.0", "id": 4, "method": "tools/call",
"params": {"name": "call_nova_operation",
"arguments": {"operation_id": "post_agreements_by_agreement_void",
"arguments": {"agreement_uid": "agr_5c2e9a0d1b7f4e36",
"body": {"reason": "Customer cancelled"}}}}}
Inside arguments: address placeholders by name, filters as plain keys, the
request body under body. The operation runs its own permission checks, so
these two tools add reach, never rights. A connection with nothing granted is
not offered them.
Resources and prompts
- Resources: every help article as
nova://help/<key>. Read the article for a screen before acting on it. - Prompts:
create_quote_for_customer,schedule_work_orderandanswer_with_help.
When a tool call fails
The result is marked isError: true and its text is Nova's error
(Errors and how to recover). The ones an assistant meets most:
approval_required— tell the person, then repeat the same call once they approve (Handle an action that waits for a person's approval).- A missing permission — say which one (
detail.missing_permissions); a person can add it to the connection. agent_outside_working_hours— say when it may act next.429— slow down; wait the time the error gives.