phpray

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

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
97%
Vollständigkeit des Schemas
86%
Qualität der Benennung
80%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (1)

  • LOWTool 'phpray_components' description lacks action verbin phpray_components

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~1,077Tokens (Tool-Definitionen)
~767 BTypische Antwortgröße
Mittlere Auswirkung auf die Aufmerksamkeit (0.84% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "phpray": {
      "url": "https://phpray.dev/mcp"
    }
  }
}

Remote-Endpunkte

https://phpray.dev/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (10)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢phpray_sites

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {}
}
⚪phpray_overview(site_id, window_minutes)

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.

Eingabe-Schema

{
  "type": "object",
  "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"
  ]
}
⚪phpray_slow_pages(limit, site_id, window_minutes)

The slowest URLs on a site, with request counts and p95, from the request timeseries. Answers "which page is slow".

Eingabe-Schema

{
  "type": "object",
  "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"
  ]
}
🟢phpray_slow_queries(limit, site_id, window_minutes)

SQL fingerprints ordered by time spent, with call counts and the caller when known. Literals are already masked. Answers "which query is slow".

Eingabe-Schema

{
  "type": "object",
  "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"
  ]
}
⚪phpray_components(limit, site_id, window_minutes)

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.

Eingabe-Schema

{
  "type": "object",
  "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"
  ]
}
⚪phpray_errors(limit, site_id, window_minutes)

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.

Eingabe-Schema

{
  "type": "object",
  "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"
  ]
}
🟢phpray_traces(limit, min_ms, site_id, status, window_minutes)

Recent requests for a site. Filter with min_ms and status to find the bad ones, then pass an id to phpray_trace.

Eingabe-Schema

{
  "type": "object",
  "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"
  ]
}
⚪phpray_trace(trace_id)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "trace_id": {
      "description": "Trace id from phpray_traces.",
      "type": "string"
    }
  },
  "required": [
    "trace_id"
  ]
}
🟡phpray_compare(from_a, from_b, site_id, to_a, to_b)

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.

Eingabe-Schema

{
  "type": "object",
  "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"
  ]
}
⚪phpray_alerts

Alerts currently firing across every site this token can see, worst overrun first.

Eingabe-Schema

{
  "type": "object",
  "properties": {}
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet10 Tools
verifiziertVersion nicht aufgezeichnet10 Tools