Reference

MCP tool reference

Read a concise result first. Follow paths and cursors when you need more of the retained evidence.

  1. Locate

    List recent profiles or use the exact response-header ID.
  2. Focus

    Read findings, one inspector, or a filtered query group.
  3. Go deeper

    Follow JSON Pointer paths and returned pagination cursors.
These are read-only tools over retained profiles; they do not run application actions.

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.