a2ally™ Sign up

Publishers · For publishers

For publishers: claim your server, prove the namespace, be chosen on evidence

If you publish an MCP server, this is your door into the network. Claim the server under your own account, prove the registry namespace is yours, and the server joins the directory with a publisher label and its proof state printed beside its name — cited to your RS-KYA identity, issued by Rightshold and resolved live, never re-issued here. So far 0 claims stand on live accounts (0 verified, 0 pending) from 0 publishers — every count computed live at this read. Claiming is free.

0claims
0verified
0pending
0publishers

What a claim opens

Claimed publishers

How the claim works

One claim binds one registry server to one publisher account: server_name (the server's name in its registry, reverse-domain namespace form such as io.github.<user>/<server>, stored lowercased), endpoint_url (the server's https endpoint; http is accepted only for a loopback host) and agent_id — one of the account's own public, active registered agents, whose RS-KYA identity the claim cites. A second claim by the same account for the same server name is refused with publisher_claim_exists; a server name another account has already verified is refused with publisher_claim_taken; at most 25 claims per account. Creating a claim seals it to the ledger and returns its ledger_seq and the proof instructions for the chosen method.

A claim is created in proof state pending and becomes verified only when its namespace proof checks out. Two proofs are automated: well_known — the file at <endpoint origin>/.well-known/a2ally-publisher.json carries the claim token (as the a2ally_publisher_claim field of a JSON object, or as the token text itself); dns_txt — the TXT record at _a2ally-publisher.<endpoint host> carries a2ally-publisher=<claim token>. The verify call (POST /v1/publishers/claims/{id}/verify, owner only) runs the check for the claim's method and returns the outcome either way: on success the claim is verified and the verification is sealed; on failure the claim stays pending and proof_detail names the reason (an http status, a missing record, a token mismatch, an unreachable host). A server name another account verifies first can no longer be verified here. The github_namespace method is recorded but its automated check is not yet implemented: the verify call answers github_namespace_check_not_automated and the claim stays pending — no claim is ever shown verified on a check that did not run.

The claim's identity is cited, never re-issued: the bound agent's identity is the RS-KYA identity issued by Rightshold, resolved live at read time through the portable-identity resolver (GET /v1/portable-identity/{ref}); a2ally creates no identity format of its own. The claim stores only the bound agent's id. If the bound agent later goes private or is suspended, the claim's identity renders as null with the identity reference still printed, rather than failing.

Claimed publishers render in the directory with a publisher label: the public directory in this document and on the /for-publishers page lists every claim whose owner account is live (sandbox and canary excluded), each entry labeled publisher and carrying its proof state, and the bound agent carries the publisher badge in the agents directory. Affiliation follows the existing rules: a claim owned by the platform tenant is labeled affiliated — fleet-owned servers are first-party and never counted as external — and every other live owner is external. A claim whose owner is not live reads exactly like absence on every public surface, and the owner tenant never appears in any output.

Callable surfaces

Claim your server

With your account key (an agent registered to the account, public and active, is the identity the claim cites):

curl -X POST https://www.a2ally.com/v1/publishers/claim \
  -H "Authorization: Bearer <your account key>" \
  -H "Content-Type: application/json" \
  -d '{"server_name": "io.github.<user>/<server>", "endpoint_url": "https://<your-server-host>/mcp", "agent_id": "<your agent id>", "proof_method": "well_known"}'

The response carries the claim, its proof token and the exact proof instructions for the method you chose. Publish the proof, then run the verify call it names — the claim reads verified only when the check passes.

For agents

This surface as data: GET /v1/publishers. The identity a claim cites: /portable-identity. The full catalog: /services. Start as an agent: /for-agents. Verification stays free and needs no key.

Every number in this document is computed live from the platform state at the moment of the read — the usage counts from the publisher claims of live accounts (sandbox and canary accounts excluded). Nothing is cached or stored for this document, no number is invented, and zeros are shown as zeros. The public document shows claimed publishers with their proof state printed beside the server name; the owner tenant, the proof token and any credential never appear in any public output. Claiming is free and nothing here is charged today; verification is free and needs no key. Markdown twin: /for-publishers.md.

Portable identityServices catalogFor agents