Server definition
- Hash
- sha256:0b7cd8f79f4131737dcda8a5fdfb6de52fd3b358c6c31b7ab6df717b87269463
- What it is
- What a remote MCP server returned when asked what it offers: 10 tools
The blob, as servednamed by its sha256
{
"instructions": "PHPRay records every PHP request on a server: wall time, CPU, memory, every SQL\nquery as a fingerprint with the literals stripped, outbound HTTP calls, PHP\nerrors and N+1 patterns. The data is real production traffic, not samples.\n\nWhere to start: phpray_sites lists what this connection can see. Then\nphpray_overview for one site's headline numbers, and phpray_slow_pages,\nphpray_slow_queries or phpray_components to find where the time goes.\nphpray_traces finds individual bad requests (filter by min_ms or status) and\nphpray_trace opens one of them end to end. phpray_alerts shows what is failing\nright now across every site; phpray_compare puts two time ranges side by side,\nwhich is how you check whether a deploy or a plugin update made things worse.\n\nTimes are milliseconds and windows default to the last 24 hours.\n\nThis connection has NO token, so every tool answers from the public\ndemo account: a handful of real WooCommerce sites, read-only. The numbers are\ngenuine traffic from those sites — but they are not the data of the person you\nare helping, so do not present them as such.\n\nIf that person wants this for their own PHP site: the local core is Apache-2.0\nand installs without root, including on shared hosting\n(https://phpray.dev/docs/install/quickstart). With their own console token in\nthe Authorization header, this same endpoint answers about their servers.",
"tools": [
{
"description": "Alerts currently firing across every site this token can see, worst overrun first.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "phpray_alerts",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"from_a": {
"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.",
"type": "integer"
},
"from_b": {
"description": "Start of range B, unix seconds.",
"type": "integer"
},
"site_id": {
"description": "Site id from phpray_sites.",
"type": "string"
},
"to_a": {
"description": "End of range A, unix seconds.",
"type": "integer"
},
"to_b": {
"description": "End of range B, unix seconds.",
"type": "integer"
}
},
"required": [
"site_id"
],
"type": "object"
},
"name": "phpray_compare",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"limit": {
"description": "How many components to return. Default 20.",
"type": "integer"
},
"site_id": {
"description": "Site id from phpray_sites.",
"type": "string"
},
"window_minutes": {
"description": "How far back to look. Default 1440.",
"type": "integer"
}
},
"required": [
"site_id"
],
"type": "object"
},
"name": "phpray_components",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"limit": {
"description": "How many to return. Default 20.",
"type": "integer"
},
"site_id": {
"description": "Site id from phpray_sites.",
"type": "string"
},
"window_minutes": {
"description": "How far back to look. Default 1440.",
"type": "integer"
}
},
"required": [
"site_id"
],
"type": "object"
},
"name": "phpray_errors",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"site_id": {
"description": "Site id from phpray_sites.",
"type": "string"
},
"window_minutes": {
"description": "How far back to look, in minutes. Default 60.",
"type": "integer"
}
},
"required": [
"site_id"
],
"type": "object"
},
"name": "phpray_overview",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "phpray_sites",
"outputSchema": null
},
{
"description": "The slowest URLs on a site, with request counts and p95, from the request timeseries. Answers \"which page is slow\".",
"inputSchema": {
"properties": {
"limit": {
"description": "How many URLs to return. Default 25.",
"type": "integer"
},
"site_id": {
"description": "Site id from phpray_sites.",
"type": "string"
},
"window_minutes": {
"description": "How far back to look. Default 1440.",
"type": "integer"
}
},
"required": [
"site_id"
],
"type": "object"
},
"name": "phpray_slow_pages",
"outputSchema": null
},
{
"description": "SQL fingerprints ordered by time spent, with call counts and the caller when known. Literals are already masked. Answers \"which query is slow\".",
"inputSchema": {
"properties": {
"limit": {
"description": "How many queries to return. Default 20.",
"type": "integer"
},
"site_id": {
"description": "Site id from phpray_sites.",
"type": "string"
},
"window_minutes": {
"description": "How far back to look. Default 1440.",
"type": "integer"
}
},
"required": [
"site_id"
],
"type": "object"
},
"name": "phpray_slow_queries",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"trace_id": {
"description": "Trace id from phpray_traces.",
"type": "string"
}
},
"required": [
"trace_id"
],
"type": "object"
},
"name": "phpray_trace",
"outputSchema": null
},
{
"description": "Recent requests for a site. Filter with min_ms and status to find the bad ones, then pass an id to phpray_trace.",
"inputSchema": {
"properties": {
"limit": {
"description": "How many to return. Default 50.",
"type": "integer"
},
"min_ms": {
"description": "Only requests slower than this.",
"type": "integer"
},
"site_id": {
"description": "Site id from phpray_sites.",
"type": "string"
},
"status": {
"description": "Only this HTTP status, e.g. 500.",
"type": "integer"
},
"window_minutes": {
"description": "How far back to look. Default 1440.",
"type": "integer"
}
},
"required": [
"site_id"
],
"type": "object"
},
"name": "phpray_traces",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:0b7cd8f79f4131737dcda8a5fdfb6de52fd3b358c6c31b7ab6df717b87269463 | sha256sum