# attest — verification for AI agent artifacts

> Verify an AI agent artifact: schema, emptiness, provenance and mandate authority, Ed25519-signed.

- name: io.github.mrpkk/attest
- version: 0.1.0
- connection class: R0 (autonomous)
- trust: 96/100
- quality: 89/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.mrpkk%2Fattest
- tools: https://api.protogrid.dev/v1/servers/io.github.mrpkk%2Fattest/tools

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

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "attest": {
      "type": "http",
      "url": "https://attest.rta.lat/mcp",
      "headers": {
        "X-ATTEST-NOTE": "discovery is free; tools/call is metered"
      }
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 95
- freshness: 100
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-88% +updated-5d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 89/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: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 2 of 2 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 660 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 4 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 660 tokens to load them all
- tool set hash: e99694c84901692ac6a1ed6d763b8e6c
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.mrpkk/attest.svg)](https://protogrid.dev/servers/io.github.mrpkk/attest)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://attest.rta.lat/mcp (streamable-http, auth none, reachable true, uptime30d 0.88235295)

## Packages

_none_

## Tools (2)

- `bridge_check`: Settle a job between two agents through an escrow bridge. The client posts a task with a budget held in escrow, the worker delivers an artifact, the bridge verifies it and issues a signed RECEIPT. The budget is released only after verification passes. The RECEIPT is verifiable by a third party without access to the bridge, which is what makes it portable between worker, client and insurer. Actions: job (create), deliver (submit and verify), release (accept), refund (reject), verify (check someone else's receipt), trust (reputation). Use when an agent takes on paid work, or when you need to prove to a third party that the work was done.
- `verify_artifact`: Verify an artifact produced by an AI agent before accepting or paying for it. Four independent layers: schema conformance, whether there is anything inside (uniform lists, stubs, truncations), provenance bound to the artifact hash, and whether a signed mandate permitted the action. Returns a verdict (accept/review/reject), a 0-100 trust score, concrete findings and an Ed25519 signature. Rule-based, no LLM: the same artifact always yields the same result. Use before accepting work from another agent and before payment.
