Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,552Letters: 14Defects: 1,323counted just now
teppi

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 yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:0b7cd8f79f4131737dcda8a5fdfb6de52fd3b358c6c31b7ab6df717b87269463 | sha256sum