Reference
MCP tool reference
Read a concise result first. Follow paths and cursors when you need more of the retained evidence.
-
Locate
List recent profiles or use the exact response-header ID. -
Focus
Read findings, one inspector, or a filtered query group. -
Go deeper
Follow JSON Pointer paths and returned pagination cursors.
Shared conventions
Replace PROFILE_ID in the examples with a real profile UUID. Tool names use hyphens; inspector names and structured fields use underscores where shown. Arguments below are JSON objects, not shell commands.
Structured responses use a version, a status, and a data object. The current response version is 2. The default maximum is 50 items per page and 100,000 bytes per response; configuration can lower or raise those bounds.
| Result | Meaning |
|---|---|
ok |
The requested read completed. Check pagination for more retained data. |
not_found |
The requested profile, inspector, or path was not found. Inspect the returned context. |
partial on a tool error |
Retained data is available, but background activity could not be refreshed. Read background_error; a null pending state is unknown. |
| Validation or processing error | Fix the argument or reported processing problem. Do not assume the profile expired. |
list-debug-profiles
List recent summaries in the configured store. This tool is also useful for Artisan and worker profiles that are outside the browser’s current-page picker.
| Argument | Default | Meaning |
|---|---|---|
method |
Omitted | Exact method; the tool normalizes it to uppercase. |
path |
Omitted | Case-sensitive path fragment, up to 200 characters. |
status |
Omitted | Exact HTTP status from 100 to 599. |
warning |
Omitted | True for profiles with findings; false for profiles without them. |
limit |
10, capped by retention | From 1 to the configured maximum retained profile count. |
{"path": "/trips/kyoto-autumn", "warning": true, "limit": 10}
Read data.profiles and the list’s returned totals and truncation state. The list has no cursor argument. Narrow the filters or request a larger allowed limit when useful.
get-debug-profile-inspector
Read one inspector’s summary and a page of focused evidence. Required: profile_id and inspector. Optional: cursor defaults to 0; limit defaults to 5 and is capped by the item limit.
{
"profile_id": "PROFILE_ID",
"inspector": "queries",
"cursor": 0,
"limit": 5
}
Accepted inspector names are overview, request, timeline, queries, http_client, queue, mail, notifications, redis, models, cache, views, events, authorization, validation, logs, exceptions, and livewire. Use the available-inspector list for the selected profile; an accepted name need not be populated in every profile.
Focused responses intentionally summarize some fields. Use the generic data tool for retained detail such as folded model operations, complete exception causes, or individual view data.
inspect-debug-queries
| Argument | Default | Meaning |
|---|---|---|
profile_id |
Required | The exact retained profile UUID. |
filter |
all |
all, repeated, slow, read, or write. |
search |
Empty string | Search retained SQL, driver, and binding evidence; up to 200 characters. |
sort |
execution |
execution or duration; duration puts larger values first. |
cursor / limit |
0 / 5 | Read another bounded page with the same filters. |
{"profile_id": "PROFILE_ID", "filter": "slow", "sort": "duration", "limit": 5}
The repeated filter returns data.repeated_groups; other filters return data.items. A repeated group is not necessarily an N+1 problem. Read its bindings and source evidence.
get-debug-findings
Required: profile_id. Optional: cursor defaults to 0 and limit defaults to 10, capped by the item limit. The result includes deterministic rule IDs, explanations, supporting evidence, and next checks under data.findings.
{"profile_id": "PROFILE_ID", "cursor": 0, "limit": 10}
Treat findings as leads. Validate the actual operation and the app’s intended behavior before deciding that a denial, cache miss, or repeated query needs a change.
get-debug-profile-data
Required: profile_id. Optional: path defaults to /inspectors, cursor to 0, and limit to 10, capped by the item limit. An empty path reads the profile root. Paths use JSON Pointer syntax, up to 1,000 characters.
{
"profile_id": "PROFILE_ID",
"path": "/inspectors/queries/payload/records",
"cursor": 0,
"limit": 5
}
An object or list returns entries with paths you can follow. A scalar uses value; a large retained string can use chunks. Follow the returned paths rather than guessing object keys or list indexes.
| Evidence | Starting path |
|---|---|
| Grouped query records and per-run evidence | /inspectors/queries/payload/records |
| Folded model operations | /inspectors/models/payload/model_groups |
| Normalized server Livewire activity | /inspectors/livewire/payload/activity_records |
| An exception’s retained causes | /inspectors/exceptions/payload/items/0/causes |
| A view occurrence’s retained data | /inspectors/views/payload/items/0/data |
| A Redis command’s application source | /inspectors/redis/payload/items/0/callsite |
The index 0 is illustrative. Choose the index returned for the record you actually want.
Finish the read without dropping evidence
Paged responses report cursor, returned, total, truncated, and next_cursor; byte-limited responses can also report omitted_due_to_bytes. Keep the same profile, tool, path, and filters when following the next cursor.
A null next_cursor means there is no next page from that read. Check omission counts before concluding that all matching evidence was returned. With a small byte budget, a focused query group can be too large to fit:
{
"returned": 0,
"total": 1,
"truncated": true,
"next_cursor": null,
"omitted_due_to_bytes": 1
}
This result still has one matching retained group. Use get-debug-profile-data to walk its nested paths and read smaller pieces, or choose a suitable mcp.max_bytes budget. Lowering the item limit cannot make one oversized item smaller.
Join string chunks in their returned order. A response limit is different from capture truncation: another MCP page cannot recover data omitted before storage.
For connection or data failures, use MCP troubleshooting and missing-profile checks.