read_capability
Execute read-only Prisma SD-WAN API actions from the registry by ID for direct data access when semantic tools lack coverage.
Instructions
Execute one exact read-only registry capability as an expert escape hatch.
Prefer the semantic tools first. Use list_capabilities to discover an
action_id. Parameters are validated against the registry and every response
passes through central recursive secret redaction and response-size limits.
Curated actions that still need live verification are blocked here by default; set MCP_ALLOW_UNVERIFIED_COMPAT=true only after completing the validation checklist shipped with this project.
Args:
action_id: Exact action identifier from list_capabilities, e.g.
"sites_devices.sites". Not a free-text search term.
path_parameters: One key per required/optional path parameter that
action's list_capabilities entry lists under
path_parameters (e.g. {"site_id": "..."}). Omit or use
{} for actions with none. Unknown keys are rejected.
body: JSON object matching that action's body_schema. Only
meaningful for POST actions — passing any non-empty body to
a GET action is rejected, as is any field the action's
schema does not declare (the error names the valid fields).
Two traps on the standard query body: retrieved_fields is
refused — the controller answers it with the full record
and a fabricated value in every unrequested field, so the reply
looks right and is wrong; and a limit inside the body is
not this tool's limit — it truncates at the controller and
reports the truncated total with no cursor, stranding the rest.
Page with the limit/cursor arguments below instead.
cursor: Opaque pagination token copied from a previous response's
next_cursor. Only applies when the result is a list. A cursor
is bound to the tool that issued it — one from another tool is
rejected rather than applied to an unrelated list.
limit: Max items to return in this page when the result is a list.
Omit to use the server default page size (50; max 200). This is the tool's own
paging, applied after the response arrives — prefer it over a
limit field in body.
detail: "compact" (default) lets a large response drop fields that
neither identify a record nor report its condition, so more records
fit in one reply; whatever it held back is listed in
omitted_fields. Pass "full" to get every field of every
record instead, at the cost of fewer records per page. Small
responses are unaffected either way.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | JSON object matching that action's ``body_schema``. Only meaningful for ``POST`` actions — passing any non-empty body to a ``GET`` action is rejected, as is any field the action's schema does not declare (the error names the valid fields). Two traps on the standard query body: ``retrieved_fields`` is **refused** — the controller answers it with the full record and a fabricated value in every unrequested field, so the reply looks right and is wrong; and a ``limit`` *inside* the body is not this tool's `limit` — it truncates at the controller and reports the truncated total with no cursor, stranding the rest. Page with the `limit`/`cursor` arguments below instead. | |
| limit | No | Max items to return in this page when the result is a list. Omit to use the server default page size (50; max 200). This is the tool's own paging, applied after the response arrives — prefer it over a ``limit`` field in `body`. | |
| cursor | No | Opaque pagination token copied from a previous response's `next_cursor`. Only applies when the result is a list. A cursor is bound to the tool that issued it — one from another tool is rejected rather than applied to an unrelated list. | |
| detail | No | ``"compact"`` (default) lets a large response drop fields that neither identify a record nor report its condition, so more records fit in one reply; whatever it held back is listed in ``omitted_fields``. Pass ``"full"`` to get every field of every record instead, at the cost of fewer records per page. Small responses are unaffected either way. | |
| action_id | Yes | Exact action identifier from `list_capabilities`, e.g. ``"sites_devices.sites"``. Not a free-text search term. | |
| path_parameters | No | One key per required/optional path parameter that action's `list_capabilities` entry lists under ``path_parameters`` (e.g. ``{"site_id": "..."}``). Omit or use ``{}`` for actions with none. Unknown keys are rejected. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |