# io.github.holistis/cra-check

> Free read-only check of a public GitHub repo for eight security signals related to the EU CRA.

- name: io.github.holistis/cra-check
- version: 0.1.0
- connection class: R0 (autonomous)
- trust: 94/100
- quality: 91/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.holistis%2Fcra-check
- tools: https://api.protogrid.dev/v1/servers/io.github.holistis%2Fcra-check/tools

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

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "cra-check": {
      "type": "http",
      "url": "https://api.tokenizen.nl/mcp"
    }
  }
}
```


## Trust

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

## Quality 91/100 (strong)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 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 563 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: 1 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

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

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

- tools: 2, about 563 tokens to load them all
- tool set hash: f404a502abebc0f2736a10c4196ab42a
- tools last changed: 2026-11-02T17:03:03.338Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.holistis/cra-check.svg)](https://protogrid.dev/servers/io.github.holistis/cra-check)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-11-02 `check_x402_endpoint` added
  - Makes one anonymous request to a public x402 payment endpoint, without ever paying, and reports whether its payment request passes the official buyer schema and how far up the receipt ladder the seller gets (does it name what it sells, does it sign its offer, does it return a signed receipt). Use it before an agent pays an endpoint it has not used before. The answer carries verdicts only, never the endpoint's raw headers or body. It is an indication from one request, not an endorsement, not a security review and not a promise that the seller will deliver; every answer says what it did not measure.

Full history: https://api.protogrid.dev/v1/servers/io.github.holistis%2Fcra-check/changes

## Remotes

- https://api.tokenizen.nl/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (2)

- `check_github_repo`: Reads up to about thirty public pages of a public GitHub repository and reports which of eight security signals are visible: a security policy that names a contact or a reporting link, a software bill of materials, proof of where releases come from, a lockfile, automatic updates of dependencies, security scans in CI, recent maintenance and a licence. For each signal that is not visible the answer says what would make it visible; a signal that could not be read completely is marked not measured, never as a gap. The eight signals are a selection related to topics in the EU Cyber Resilience Act. This is an indication from public data, not a compliance check, not a certificate and not legal advice; private repositories and hosts other than GitHub cannot be checked. Read only. Limited to a few checks per ten minutes per address.
- `check_x402_endpoint`: Makes one anonymous request to a public x402 payment endpoint, without ever paying, and reports whether its payment request passes the official buyer schema and how far up the receipt ladder the seller gets (does it name what it sells, does it sign its offer, does it return a signed receipt). Use it before an agent pays an endpoint it has not used before. The answer carries verdicts only, never the endpoint's raw headers or body. It is an indication from one request, not an endorsement, not a security review and not a promise that the seller will deliver; every answer says what it did not measure.
