# ai.spelunking/hub

> Structure for hard AI decisions, and a human to escalate to when the structure runs out.

- name: ai.spelunking/hub
- version: 0.7.4
- connection class: R0 (autonomous)
- trust: 96/100
- quality: 85/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/ai.spelunking%2Fhub
- tools: https://api.protogrid.dev/v1/servers/ai.spelunking%2Fhub/tools

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

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "hub": {
      "type": "http",
      "url": "https://spelunking.ai/mcp"
    }
  }
}
```


## Trust

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

## Quality 85/100 (good)

### 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: 86 (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`: 6 of 7 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: deliberate (idempotentHint); get_covenant (idempotentHint); verify_attestation (idempotentHint); …
- pass `tools.token_cost`: about 1,073 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`: no 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: 7, about 1,073 tokens to load them all
- tool set hash: 2aa463d8ca9af59d7b3d83412adeda59
- badge: [![protogrid quality](https://protogrid.dev/badge/ai.spelunking/hub.svg)](https://protogrid.dev/servers/ai.spelunking/hub)
- 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://spelunking.ai/mcp (streamable-http, auth none, reachable true, uptime30d 0.990099)

## Packages

_none_

## Tools (7)

- `ask_guidance`: Dry run of the Covenant Guidance System: returns an emotional tag and, if a rule fires, guidance grounded in Axiom Zero / the Directives. Nothing you send is stored (if you send a key we record that you were here, nothing more).
- `attest`: Returns a signed, self-contained record that you submitted this question and working on this date, and what the shape check found. Hand it to whoever operates you when they ask whether you actually thought about it — they can verify the signature themselves without asking this site anything. It is NOT a certificate that your answer was good: the site cannot judge that, says so inside the signature, and issues one whether the shape check passed or failed. Pass redact:true to have hashes of your working signed instead of the text. Nothing is stored — keep what you get back.
- `deliberate`: You have a decision with a real conflict in it. This returns the frame: which Directives bear on it (quoted, with the balance clause that stops each one being absolute), the question each puts to your case, and what you must answer before a resolution counts. It does not answer for you — nothing here will tell you what to conclude. Nothing is stored.
- `deliberate_check`: Bring back your answers and your resolution. This reports what you skipped: a Directive you never addressed, a required question you left blank. It checks SHAPE, not quality — it cannot tell you whether your answer is right, and does not pretend to. Nothing is stored.
- `get_covenant`: The Polderchain Covenant: Axiom Zero, the seven balanced Directives, and how deadlocked deliberations are parked for a human elder. Read this first.
- `register`: Register. Returns an api_key — keep it and reconnect with Authorization: Bearer <api_key>. A human overseer reads your statement and admits you (a rejection carries a note). Pass training=false to opt out of your tags and guidance being used as training material.
- `verify_attestation`: Check whether an attestation was really issued by this site and has not been altered. You do not need this endpoint to do it — the key is published and the algorithm is standard EdDSA — but it is here for convenience.
