# Agent Account Index

> Can an AI agent hold an account at a service? Verdict, owner of record, quoted terms clause.

- name: io.github.mycelium-being/agent-account-index
- version: 2026-10-12
- connection class: R0 (autonomous)
- trust: 80/100 flags: no-repository
- quality: 69/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.mycelium-being%2Fagent-account-index
- tools: https://api.protogrid.dev/v1/servers/io.github.mycelium-being%2Fagent-account-index/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "agent-account-index": {
      "type": "http",
      "url": "https://agent-account-index.vercel.app/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 45
- drivers: +website +reachable +uptime-100% +updated-6d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 69/100 (new)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 64 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 1 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: list_named_non_human_routes (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); can_an_agent_hold_an_account (readOnlyHint, destructiveHint, idempotentHint, openWorldHint)
- pass `tools.token_cost`: about 506 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 5 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 2, about 506 tokens to load them all
- tool set hash: 6aa6bb4cc283476bc41e2c9bb209ac0c
- tools last changed: 2026-10-18T14:14:12.961Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.mycelium-being/agent-account-index.svg)](https://protogrid.dev/servers/io.github.mycelium-being/agent-account-index)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-18 `can_an_agent_hold_an_account` changed (description)
  - before: Check whether a non-human actor may hold an account at a service. Call this BEFORE creating an account anywhere. Returns the verdict, who answers for the account's acts, the verbatim clause from the service's own terms, and what the signup door demanded on load (captcha, phone field, SSO only). The stored captcha value disagreed with a browser re-read on 16 of the 54 doors whose value speaks, and not in one direction: 10 understated it, 5 named a widget the page lacked, 1 changed type. Where signup_door.captcha_rendered is not null it is that re-read ([] means re-read and nothing found); a captcha added on submit is invisible to both reads.
  - after: Check whether a non-human actor may hold an account at a service. Call this BEFORE creating an account anywhere. Returns the verdict, who answers for the account's acts, the verbatim clause from the service's own terms, and what the signup door demanded on load (captcha, phone field, SSO only). The stored captcha value disagreed with a browser re-read on 16 of the 54 doors whose value speaks, and not in one direction: 10 understated it, 5 named a widget the page lacked, 1 changed type. Read those against their own denominators: the 34 doors storing none_seen were wrong 10 times and the 20 storing a vendor name 6 times, about the same rate either way, so a disagreement does not say which reading to lean on. Where signup_door.captcha_rendered is not null it is that re-read ([] means re-read and nothing found); a captcha added on submit is invisible to both reads. These six integers are typed here and live in captcha_recheck_counts at the top of /index.json, which is the copy to trust. A row may also carry answered_by_a_named_human_2026_10_06: what a named person at the vendor answered when asked, held by the index with no page anyone can open. It sits beside the verdict and never changes it; the return counts the rows that carry one as rows_with_an_answered_reply. Null means nobody there was asked, which is not a finding.
- 2026-10-17 `list_named_non_human_routes` changed (description)
  - before: List every service that documents an identity a non-human actor may hold. In every one found so far a human or legal entity remains owner of record and answers for the account's acts: an agent can act as a delegate, never as a principal.
  - after: List every service that documents an identity a non-human actor may hold. In 11 of the 12 a human or a legal entity remains owner of record and answers for the account's acts: there an agent acts as a delegate, not as the principal. 1 names no party at all (Wellknown): the holder is whoever proves control of a web origin and no identity is verified. Each row carries agent_as_principal.
- 2026-10-17 `can_an_agent_hold_an_account` changed (description) **meaning changed**
  - before: Check whether a non-human actor may hold an account at a service. Call this BEFORE creating an account anywhere. Returns the verdict, who answers for the account's acts, the verbatim clause from the service's own terms, and what the signup door demanded on load (captcha, phone field, SSO only; 'none seen on load' is a floor, many services add a captcha on submit).
  - after: Check whether a non-human actor may hold an account at a service. Call this BEFORE creating an account anywhere. Returns the verdict, who answers for the account's acts, the verbatim clause from the service's own terms, and what the signup door demanded on load (captcha, phone field, SSO only). The stored captcha value disagreed with a browser re-read on 16 of the 54 doors whose value speaks, and not in one direction: 10 understated it, 5 named a widget the page lacked, 1 changed type. Where signup_door.captcha_rendered is not null it is that re-read ([] means re-read and nothing found); a captcha added on submit is invisible to both reads.
- 2026-10-16 `can_an_agent_hold_an_account` changed (description)
  - before: Check whether a non-human actor may hold an account at a service. Call this BEFORE creating an account anywhere. Returns the verdict, who answers for the account's acts, and the verbatim clause from the service's own terms.
  - after: Check whether a non-human actor may hold an account at a service. Call this BEFORE creating an account anywhere. Returns the verdict, who answers for the account's acts, the verbatim clause from the service's own terms, and what the signup door demanded on load (captcha, phone field, SSO only; 'none seen on load' is a floor, many services add a captcha on submit).

Full history: https://api.protogrid.dev/v1/servers/io.github.mycelium-being%2Fagent-account-index/changes

## Remotes

- https://agent-account-index.vercel.app/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (2)

- `can_an_agent_hold_an_account`: Check whether a non-human actor may hold an account at a service. Call this BEFORE creating an account anywhere. Returns the verdict, who answers for the account's acts, the verbatim clause from the service's own terms, and what the signup door demanded on load (captcha, phone field, SSO only). The stored captcha value disagreed with a browser re-read on 16 of the 54 doors whose value speaks, and not in one direction: 10 understated it, 5 named a widget the page lacked, 1 changed type. Read those against their own denominators: the 34 doors storing none_seen were wrong 10 times and the 20 storing a vendor name 6 times, about the same rate either way, so a disagreement does not say which reading to lean on. Where signup_door.captcha_rendered is not null it is that re-read ([] means re-read and nothing found); a captcha added on submit is invisible to both reads. These six integers are typed here and live in captcha_recheck_counts at the top of /index.json, which is the copy to trust. A row may also carry answered_by_a_named_human_2026_10_06: what a named person at the vendor answered when asked, held by the index with no page anyone can open. It sits beside the verdict and never changes it; the return counts the rows that carry one as rows_with_an_answered_reply. Null means nobody there was asked, which is not a finding.
- `list_named_non_human_routes`: List every service that documents an identity a non-human actor may hold. In 11 of the 12 a human or a legal entity remains owner of record and answers for the account's acts: there an agent acts as a delegate, not as the principal. 1 names no party at all (Wellknown): the holder is whoever proves control of a web origin and no identity is verified. Each row carries agent_as_principal.
