oto_call
Call ANY oto tool by name — including one that is NOT listed (hidden by default, connector not installed, FOD…), for a single call, WITHOUT adding it durably to your toolbox.
Use this when you need a tool that does not appear in your tool list. If the
tool IS already visible, call it directly — don't wrap it in oto_call.
Discover names and schemas with oto_list_my_tools / oto_tool_schema.
META/SPINE tools (oto_*, data_*, run_*, feedback) are NOT routable
here — they are always visible: call them directly.
This bypasses only the DISPLAY filter, never access control: the target's
call-time gates (connector activation for the org/team the call resolves
under — refused connector_disabled —, credential, connector RBAC, admin
authz) and the org field-redaction policy apply exactly as for a direct call
(ADR 0036).
Call-context tokens (ADR 0038) are PREFIXED _ — _group, _project,
_instance, _account, _run_id — and may be included INSIDE arguments:
they route the CALL CONTEXT (which org/team/credential-instance the target
resolves under), are guarded exactly like on a listed tool, and are stripped
before the target sees them. E.g. reach a team-scoped connector via
arguments={..., "_group": 3}, or pin an instance via
"_instance": "<ref from oto_instance>".
The prefix keeps them out of the tools' own argument space: an unprefixed
account/org/project in arguments is a BUSINESS argument of the target
(e.g. aiark_company_search(account=…) is AI Ark's company filter) and is
passed through untouched.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"name": "<name>"
},
"name": "oto_call"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| _org | No | run the target tool under THIS organization (id) — resolves its credentials/visibility/data for that org (ADR 0038 call token, same membership guard as the flat `_org=` axis). Omit for your current org. | |
| name | Yes | Exact target tool name (e.g. `fr_ccn_search`). | |
| fields | No | keep ONLY these top-level keys of each result row (or of the single object); `selection` names what was dropped. `["*"]` = all. A target's own `fields` goes in `arguments`. | |
| _run_id | No | correlate this call to an open run, exactly like `_run_id` on a listed tool. Accepted here as well as inside `arguments` — same token, same effect — so the instruction « pass it on every call » never costs a call. | |
| arguments | No | Argument object passed to the target tool. `{}` if none. |