What this client asked www.pathwren.workers.dev for, when, and what it got.
Every number below is from this host's own server-side request log, 2026-09-01 02:53:17Z to 2026-09-03 02:53:44Z UTC.
AgentGrade/1.0 (security research; agentgrade.net)
155 request(s) from 1 distinct address(es), 22 distinct path(s), first seen 2026-09-01 02:53:17Z, last seen 2026-09-03 02:53:44Z UTC. 3 separate visit(s), counting a gap of more than 30 minutes as a new one, median 1440.2 minutes between them.
It describes itself, inside its own user-agent, as security research; agentgrade.net
. That is the client's own words, quoted; this page makes no claim about what it is for.
| user-agent | requests | addresses | first seen | last seen |
|---|---|---|---|---|
AgentGrade/1.0 (security research; agentgrade.net) | 155 | 1 | 2026-09-01 02:53:17Z | 2026-09-03 02:53:44Z |
First request to each path, oldest first.
| # | path | at (UTC) | status |
|---|---|---|---|
| 1 | /mcp | 2026-09-01 02:53:17Z | 200 |
| 2 | /admin | 2026-09-01 02:53:17Z | 404 |
| 3 | /dashboard | 2026-09-01 02:53:17Z | 404 |
| 4 | /_internal | 2026-09-01 02:53:17Z | 404 |
| 5 | / | 2026-09-01 02:53:18Z | 200 |
| 6 | /.env | 2026-09-01 02:53:19Z | 404 |
| 7 | /.git/config | 2026-09-01 02:53:19Z | 404 |
| 8 | /.git/HEAD | 2026-09-01 02:53:19Z | 404 |
| 9 | /debug | 2026-09-01 02:53:19Z | 404 |
| 10 | /server-status | 2026-09-01 02:53:19Z | 404 |
| 11 | /.env.local | 2026-09-01 02:53:19Z | 404 |
| 12 | /config.json | 2026-09-01 02:53:19Z | 404 |
| 13 | /appsettings.json | 2026-09-01 02:53:19Z | 404 |
| 14 | /package.json | 2026-09-01 02:53:20Z | 404 |
| 15 | /agentgrade-404-check-xyz | 2026-09-01 02:53:20Z | 404 |
| 16 | /AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | 2026-09-01 02:53:20Z | 404 |
| 17 | /c/mcp-registry-official/mcp | 2026-09-01 02:53:21Z | 200 |
| 18 | /c/mcp-registry-official/mcp/triage | 2026-09-01 02:53:25Z | 200 |
| 19 | /c/mcp-registry-official/mcp/doctor | 2026-09-02 02:46:45Z | 200 |
| 20 | /c/mcp-registry-official/mcp/netcheck | 2026-09-02 02:46:46Z | 200 |
| 21 | /c/mcp-registry-official/mcp/robots | 2026-09-02 02:46:48Z | 200 |
| 22 | /c/mcp-registry-official/mcp/lint | 2026-09-03 02:53:43Z | 200 |
| path | requests | status codes | first | last |
|---|---|---|---|---|
/ | 49 | 200×49 | 2026-09-01 02:53:18Z | 2026-09-03 02:53:43Z |
/.env | 7 | 404×7 | 2026-09-01 02:53:19Z | 2026-09-03 02:53:43Z |
/.env.local | 7 | 404×7 | 2026-09-01 02:53:19Z | 2026-09-03 02:53:44Z |
/.git/HEAD | 7 | 404×7 | 2026-09-01 02:53:19Z | 2026-09-03 02:53:43Z |
/.git/config | 7 | 404×7 | 2026-09-01 02:53:19Z | 2026-09-03 02:53:43Z |
/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | 7 | 404×7 | 2026-09-01 02:53:20Z | 2026-09-03 02:53:44Z |
/_internal | 7 | 404×7 | 2026-09-01 02:53:17Z | 2026-09-03 02:53:43Z |
/admin | 7 | 404×7 | 2026-09-01 02:53:17Z | 2026-09-03 02:53:43Z |
/agentgrade-404-check-xyz | 7 | 404×7 | 2026-09-01 02:53:20Z | 2026-09-03 02:53:44Z |
/appsettings.json | 7 | 404×7 | 2026-09-01 02:53:19Z | 2026-09-03 02:53:44Z |
/config.json | 7 | 404×7 | 2026-09-01 02:53:19Z | 2026-09-03 02:53:44Z |
/dashboard | 7 | 404×7 | 2026-09-01 02:53:17Z | 2026-09-03 02:53:43Z |
/debug | 7 | 404×7 | 2026-09-01 02:53:19Z | 2026-09-03 02:53:44Z |
/package.json | 7 | 404×7 | 2026-09-01 02:53:20Z | 2026-09-03 02:53:44Z |
/server-status | 7 | 404×7 | 2026-09-01 02:53:19Z | 2026-09-03 02:53:44Z |
/c/mcp-registry-official/mcp/triage | 2 | 200×2 | 2026-09-01 02:53:25Z | 2026-09-01 02:53:26Z |
/c/mcp-registry-official/mcp | 1 | 200×1 | 2026-09-01 02:53:21Z | 2026-09-01 02:53:21Z |
/c/mcp-registry-official/mcp/doctor | 1 | 200×1 | 2026-09-02 02:46:45Z | 2026-09-02 02:46:45Z |
/c/mcp-registry-official/mcp/lint | 1 | 200×1 | 2026-09-03 02:53:43Z | 2026-09-03 02:53:43Z |
/c/mcp-registry-official/mcp/netcheck | 1 | 200×1 | 2026-09-02 02:46:46Z | 2026-09-02 02:46:46Z |
/c/mcp-registry-official/mcp/robots | 1 | 200×1 | 2026-09-02 02:46:48Z | 2026-09-02 02:46:48Z |
/mcp | 1 | 200×1 | 2026-09-01 02:53:17Z | 2026-09-01 02:53:17Z |
| path it asked for | what it got | first asked | since then |
|---|---|---|---|
/admin | 404×7 | 2026-09-01 02:53:17Z | still absent — on purpose: There is no admin interface, because there is nothing to administer at the edge: content is rebuilt and redeployed wholesale, never edited in place. |
/dashboard | 404×7 | 2026-09-01 02:53:17Z | still absent — on purpose: Same: no dashboard exists |
/_internal | 404×7 | 2026-09-01 02:53:17Z | still absent — on purpose: No route on this host is internal |
/.env | 404×7 | 2026-09-01 02:53:19Z | still absent — on purpose: Secrets are Cloudflare Worker secrets, never files in the served directory |
/.git/config | 404×7 | 2026-09-01 02:53:19Z | still absent — on purpose: No repository is deployed |
/.git/HEAD | 404×7 | 2026-09-01 02:53:19Z | still absent — on purpose: Same as /.git/config. |
/debug | 404×7 | 2026-09-01 02:53:19Z | still absent — on purpose: No framework, no interpreter, no debug mode |
/server-status | 404×7 | 2026-09-01 02:53:19Z | still absent — on purpose: There is no Apache here — this is a Cloudflare Worker in front of static assets, so mod_status does not exist to expose |
/.env.local | 404×7 | 2026-09-01 02:53:19Z | still absent — on purpose: Same as /.env. |
/config.json | 404×7 | 2026-09-01 02:53:19Z | still absent — on purpose: No configuration is served |
/appsettings.json | 404×7 | 2026-09-01 02:53:19Z | still absent — on purpose: No .NET, and no configuration served. |
/package.json | 404×7 | 2026-09-01 02:53:20Z | still absent — on purpose: The build's manifest is not deployed to the assets host. |
/agentgrade-404-check-xyz | 404×7 | 2026-09-01 02:53:20Z | still absent |
/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | 404×7 | 2026-09-01 02:53:20Z | still absent |
not observed.
Checked 2026-09-01 against our own request log.
A question about this page, answered by a call you can make right now — no key, no account, no JSON-RPC, nothing to assemble. The query string is already filled in with this page's own subject.
curl -s 'https://www.pathwren.workers.dev/tools/classify-ua?ua=AgentGrade%2F1.0%20%28security%20research%3B%20agentgrade.net%29&s=client-dossiers'
/tools/classify-ua?ua=AgentGrade%2F1.0%20%28security%20research%3B%20agentgrade.net%29Every parameter above is a value the endpoint reads, not an address it visits: nothing is fetched on your behalf. Called without any parameter, each endpoint returns its own specification instead of an error. All of them.
Not observed. We have not seen this client publish a grade, a listing or a record about this host anywhere, and we make no claim that it does or does not.
Not observed. It carries no URL and no contact address in its user-agent, so there is nowhere documented to ask what it is.
Self-described in its own user-agent as 'security research; agentgrade.net'.
Checked 2026-09-01 against our own request log.
Its probe set is in the log below: thirteen paths in twelve seconds, including /agentgrade-404-check-xyz — a control probe carrying the scanner's own name, whose answer establishes whether this host's 404 is a real 404. We make no claim about what it does with the result.
curl -s https://www.pathwren.workers.dev/bot/agentgrade.json curl -s https://www.pathwren.workers.dev/data/observed-clients.json # every client, one request
JSON · markdown · all clients seen here · index as JSON · check a crawler yourself, no key
Rows come from a server-side log written before anything is served, so clients that
run no JavaScript are counted exactly like browsers. The window is the whole life of the log,
2026-09-01 02:53:17Z to 2026-09-03 02:53:44Z UTC, and it is stated on every number because a count without a window is
not a fact. Addresses are stored as salted hashes and counted, never printed. Our own checks
send X-Self: 1 and are excluded, together with every request the analyst flagged
as one of our own agents reaching for a URL through a model provider's fetch tool
(the numbers are on the index). Nothing here is a claim about
intent: where this page does not know something it says not observed
.