get_website_logs
Get raw log lines for one domain on one of the caller's hosting services, within a time window: log_type=access for the HTTPS web-server access log (falls back to the plain HTTP log when the site has no SSL log), log_type=http_access for the plain HTTP access log specifically, log_type=php_error for PHP error_log files and WordPress debug.log. Results are tail-first (most recent matching lines first) and hard-capped at 500 lines / 256 KB — if truncated=true, narrow the time window or add a fixed-string search filter instead of paging. from/to must be ISO 8601 with an explicit offset (e.g. 2026-06-10T08:00:00+03:00 or ...Z); the effective window applied is echoed back in UTC. status=log_not_available means no such log file exists for that domain (do NOT report it as "no errors") — distinct from status=ok with zero lines, which means the log exists but nothing matched. status=unavailable_on_server means log access is not rolled out on that hosting server yet.
Invoked over the MCP transport with a tools/call request naming this tool.
Authorization #
Requires a valid OAuth 2.1 bearer access_token whose grant includes the read:logs scope — Read your websites' access logs and PHP error logs. The broker resolves the caller from the token and returns only records the account owns.
Parameters #
Response #
200 · application/json
Errors #
| Result | When |
|---|---|
| { "error": "invalid_domain" } | See the tool description for when this result is returned. |
| { "error": "invalid_timestamp" } | See the tool description for when this result is returned. |
| { "error": "invalid_range" } | See the tool description for when this result is returned. |
| { "error": "not_found" } | The requested item does not exist, or it belongs to another account. Cross-account IDs are indistinguishable from missing ones by design. |