Ask an agent why a PHP site is slow: every request with its SQL, HTTP calls, errors and N+1.
Call this server's tools from your browser. Nothing to install.
Bearer <console token>. Omit the header entirely to use the read-only public demo account.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Alerts currently firing across every site this token can see, worst overrun first.
This tool takes no arguments.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Alerts currently firing across every site this token can see, worst overrun first.
No arguments.
{
"type": "object",
"properties": {}
}Two time ranges for one site side by side. Use it to check whether a deployment, a plugin update or a configuration change made things better or worse.
| Argument | Type | Description |
|---|---|---|
| to_a | integer | End of range A, unix seconds. |
| to_b | integer | End of range B, unix seconds. |
| from_a | integer | Start of range A (the earlier one), unix seconds. Without any range: the day before yesterday's 24 h against the last 24 h. |
| from_b | integer | Start of range B, unix seconds. |
| site_id* | string | Site id from phpray_sites. |
{
"type": "object",
"required": [
"site_id"
],
"properties": {
"to_a": {
"type": "integer",
"description": "End of range A, unix seconds."
},
"to_b": {
"type": "integer",
"description": "End of range B, unix seconds."
},
"from_a": {
"type": "integer",
"description": "Start of range A (the earlier one), unix seconds. Without any range: the day before yesterday's 24 h against the last 24 h."
},
"from_b": {
"type": "integer",
"description": "Start of range B, unix seconds."
},
"site_id": {
"type": "string",
"description": "Site id from phpray_sites."
}
}
}Time attributed to each plugin, theme or vendor package on profiled requests. Answers "which plugin is slowing the site down". Empty when function profiling is off.
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many components to return. Default 20. |
| site_id* | string | Site id from phpray_sites. |
| window_minutes | integer | How far back to look. Default 1440. |
{
"type": "object",
"required": [
"site_id"
],
"properties": {
"limit": {
"type": "integer",
"description": "How many components to return. Default 20."
},
"site_id": {
"type": "string",
"description": "Site id from phpray_sites."
},
"window_minutes": {
"type": "integer",
"description": "How far back to look. Default 1440."
}
}
}Requests that failed on a site: PHP errors and warnings with file and line where PHP raised one, plus 5xx responses that carry no PHP error. Pass an id to phpray_trace to see what one of them did.
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many to return. Default 20. |
| site_id* | string | Site id from phpray_sites. |
| window_minutes | integer | How far back to look. Default 1440. |
{
"type": "object",
"required": [
"site_id"
],
"properties": {
"limit": {
"type": "integer",
"description": "How many to return. Default 20."
},
"site_id": {
"type": "string",
"description": "Site id from phpray_sites."
},
"window_minutes": {
"type": "integer",
"description": "How far back to look. Default 1440."
}
}
}Headline numbers for one site over a time window: requests, errors, p50/p95/p99 latency, database share and N+1 count. Use this before digging into anything else.
| Argument | Type | Description |
|---|---|---|
| site_id* | string | Site id from phpray_sites. |
| window_minutes | integer | How far back to look, in minutes. Default 60. |
{
"type": "object",
"required": [
"site_id"
],
"properties": {
"site_id": {
"type": "string",
"description": "Site id from phpray_sites."
},
"window_minutes": {
"type": "integer",
"description": "How far back to look, in minutes. Default 60."
}
}
}List the PHP sites this token can see, with requests, p95 latency and error rate. Start here: every other tool needs a site_id from this list.
No arguments.
{
"type": "object",
"properties": {}
}The slowest URLs on a site, with request counts and p95, from the request timeseries. Answers "which page is slow".
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many URLs to return. Default 25. |
| site_id* | string | Site id from phpray_sites. |
| window_minutes | integer | How far back to look. Default 1440. |
{
"type": "object",
"required": [
"site_id"
],
"properties": {
"limit": {
"type": "integer",
"description": "How many URLs to return. Default 25."
},
"site_id": {
"type": "string",
"description": "Site id from phpray_sites."
},
"window_minutes": {
"type": "integer",
"description": "How far back to look. Default 1440."
}
}
}SQL fingerprints ordered by time spent, with call counts and the caller when known. Literals are already masked. Answers "which query is slow".
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many queries to return. Default 20. |
| site_id* | string | Site id from phpray_sites. |
| window_minutes | integer | How far back to look. Default 1440. |
{
"type": "object",
"required": [
"site_id"
],
"properties": {
"limit": {
"type": "integer",
"description": "How many queries to return. Default 20."
},
"site_id": {
"type": "string",
"description": "Site id from phpray_sites."
},
"window_minutes": {
"type": "integer",
"description": "How far back to look. Default 1440."
}
}
}One request in full: wall time split into PHP, database and outbound HTTP, every query, every external call, errors, and the component breakdown when the request was profiled.
| Argument | Type | Description |
|---|---|---|
| trace_id* | string | Trace id from phpray_traces. |
{
"type": "object",
"required": [
"trace_id"
],
"properties": {
"trace_id": {
"type": "string",
"description": "Trace id from phpray_traces."
}
}
}Recent requests for a site. Filter with min_ms and status to find the bad ones, then pass an id to phpray_trace.
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many to return. Default 50. |
| min_ms | integer | Only requests slower than this. |
| status | integer | Only this HTTP status, e.g. 500. |
| site_id* | string | Site id from phpray_sites. |
| window_minutes | integer | How far back to look. Default 1440. |
{
"type": "object",
"required": [
"site_id"
],
"properties": {
"limit": {
"type": "integer",
"description": "How many to return. Default 50."
},
"min_ms": {
"type": "integer",
"description": "Only requests slower than this."
},
"status": {
"type": "integer",
"description": "Only this HTTP status, e.g. 500."
},
"site_id": {
"type": "string",
"description": "Site id from phpray_sites."
},
"window_minutes": {
"type": "integer",
"description": "How far back to look. Default 1440."
}
}
}