Skip to content

dev.phpray/phpray

by phpray.dev · remote · no sign-in to list tools · v0.15.6 · published by dev.phpray

Ask an agent why a PHP site is slow: every request with its SQL, HTTP calls, errors and N+1.

Changes · 7

10 tools: 7 change things and 3 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http phpray https://phpray.dev/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The description contains "every other tool", wording about other tools or servers.

    Matched text

    description: "...p95 latency and error rate. Start here: every other tool needs a site_id from this list."

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

10 tools

Changes things 7Claude Code: ask
  • phpray_alertsAlerts currently firing across every site this token can see, worst overrun first.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Alerts currently firing across every site this token can see, worst overrun first.
  • phpray_componentsTime attributed to each plugin, theme or vendor package on profiled requests.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    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.
  • phpray_errorsRequests 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.No findings

    Why it is in this group

    • The description's first verb is "request": a word for a change.
    Description, as the server wrote it
    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.
  • phpray_overviewHeadline numbers for one site over a time window: requests, errors, p50/p95/p99 latency, database share and N+1 count.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    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.
  • phpray_slow_pagesThe slowest URLs on a site, with request counts and p95, from the request timeseries.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    The slowest URLs on a site, with request counts and p95, from the request timeseries. Answers "which page is slow".
  • phpray_traceOne 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.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    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.
  • phpray_tracesRecent requests for a site.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Recent requests for a site. Filter with min_ms and status to find the bad ones, then pass an id to phpray_trace.
Only reads 3Claude Code: allow
  • phpray_compareTwo time ranges for one site side by side.No findings

    Why it is in this group

    • The name "phpray_compare" says "compare": a word for reading.
    Description, as the server wrote it
    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.
  • phpray_sitesList the PHP sites this token can see, with requests, p95 latency and error rate.1 finding

    Why it is in this group

    • The description's first verb is "list": a word for reading.

    Findings

    • Warn

      The description contains "every other tool", wording about other tools or servers.

      Matched text

      description: "...p95 latency and error rate. Start here: every other tool needs a site_id from this list."

      What this check looks for
    Description, as the server wrote it
    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.
  • phpray_slow_queriesSQL fingerprints ordered by time spent, with call counts and the caller when known.No findings

    Why it is in this group

    • The name "phpray_slow_queries" says "query": a word for reading.
    Description, as the server wrote it
    SQL fingerprints ordered by time spent, with call counts and the caller when known. Literals are already masked. Answers "which query is slow".

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 0.15.6. Values in angle brackets are yours to fill in.

claude mcp add --transport http phpray https://phpray.dev/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__phpray__phpray_sites",
      "mcp__phpray__phpray_slow_queries",
      "mcp__phpray__phpray_compare"
    ],
    "ask": [
      "mcp__phpray__phpray_overview",
      "mcp__phpray__phpray_slow_pages",
      "mcp__phpray__phpray_components",
      "mcp__phpray__phpray_errors",
      "mcp__phpray__phpray_traces",
      "mcp__phpray__phpray_trace",
      "mcp__phpray__phpray_alerts"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as phpray. Review it before you use it.