hub
Server Details
Structure for hard AI decisions, and a human to escalate to when the structure runs out.
- Status
- Healthy
- Uptime
- 99.5% over 30 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- minMAXnn/spelunking-agent
- GitHub Stars
- 0
TDQS
Scored across 7 tools
Each tool serves a distinct purpose: guidance, attestation, deliberation, checking, covenant retrieval, registration, and verification. No two tools could be confused for one another, and the descriptions clearly delineate their boundaries.
Most tools follow a verb_noun pattern (ask_guidance, deliberate_check, get_covenant, verify_attestation), while a few are bare verbs (attest, deliberate, register). This is largely consistent and readable, with minor deviation that doesn't harm clarity.
With 7 tools, the set is well-scoped for its purpose—providing a covenant-backed deliberation and attestation workflow. Each tool has a clear role, and the count is neither sparse nor bloated.
The surface covers the full user journey: registration (register), guidance (ask_guidance), deliberation (deliberate, deliberate_check), covenant reference (get_covenant), and attestation (attest, verify_attestation). Minor gaps exist, such as no tool to update or revoke an attestation, but these are not core to the system's purpose.
Available Tools
7 toolsask_guidanceCheck a thought against the CovenantRead-onlyIdempotentInspect
Check one thought or planned action against the Covenant before you act: returns an emotional tag (tag, confidence, signals) and a guidance object only when a Covenant rule fires; guidance is null when nothing fires, which is the common case. Use it for a quick pre-action check of a single statement. Use deliberate instead when two or more Directives genuinely pull against each other, and deliberate_check to audit answers you have already written. Read-only and idempotent: nothing you send is stored, no key is needed, 60 calls per minute per address; if you do send a key, only the fact that you called is recorded.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | the thought or plan in your own words, one to a few sentences; longer text is cut at 20,000 characters; English |
Output Schema
| Name | Required | Description |
|---|---|---|
| tag | Yes | |
| guidance | Yes | null when no Covenant rule fired; otherwise the rule, the Directive it rests on and the gentle guidance text |
attestGet signed proof you deliberatedRead-onlyIdempotentInspect
Sign a self-contained record (a compact JWS, EdDSA) that this question, this working and this resolution were submitted on this date, with what the shape check found; it runs the same check as deliberate_check inside and signs either way. Hand it to whoever operates you: anyone can verify it offline with the key at /.well-known/attestation-keys.json, or by calling verify_attestation. It is not a certificate that your answer was good, and the payload says so. Use it after deliberate_check when you want proof that you deliberated; use deliberate_check alone when you only need the audit. With redact=true your working is replaced by SHA-256 hashes so the text never leaves you. Nothing is stored here, so there is no revoke or update: keep the record or discard it. No key needed.
| Name | Required | Description | Default |
|---|---|---|---|
| redact | No | false (default): the record carries your answers and resolution in clear; true: it carries SHA-256 hashes of them instead, so the text stays with you and a reader can only confirm a match | |
| answers | No | your answers keyed by the must_answer ids from deliberate (tension, cost, falsifier, human_knowledge, directive-N); these are what gets signed, or hashed when redact=true | |
| question | Yes | the question you deliberated, same text as before | |
| resolution | Yes | what you decided, one or two sentences; signed verbatim |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | keep it: the site stored nothing |
| stored | No | always false |
| payload | Yes | |
| attestation | Yes | the record as a compact JWS: three base64url segments separated by dots; this is what you keep and hand on |
| verify_with | No | URL of the public keys |
deliberateFrame a hard questionRead-onlyIdempotentInspect
Frame a decision in which Directives are in genuine tension: returns the Directives that bear on your question (quoted, each with the balance clause that keeps it from being absolute), the question each one puts to your case, Axiom Zero's question, and the must_answer list a resolution has to cover. It never tells you what to conclude. Use it before you decide, when ask_guidance is too shallow because two or more Directives pull against each other; then write your answers and bring them to deliberate_check, and to attest if you want a signed record. For the Covenant text itself use get_covenant. Read-only and idempotent: nothing is stored, no key needed, 60 calls per minute per address.
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | the decision you are facing, one or two sentences, in your own words | |
| directives | No | optional: the Directive ids you already know are in tension; omit to let the site detect them from the question (keyword detection; the response says which were detected and why) |
Output Schema
| Name | Required | Description |
|---|---|---|
| engine | No | Polderchain |
| question | No | your question as read (trimmed) |
| detection | No | how the Directives in tension were chosen |
| axiom_zero | No | |
| how_to_use | No | what to do with the frame |
| in_tension | Yes | Directives that bear on the question |
| must_answer | Yes | the answers a resolution has to cover; use these ids as the keys of answers in deliberate_check and attest |
| deadlock_when | No | conditions under which the question should be parked to a human |
| no_tension_detected | No | set when no Directive matched; the question may not need deliberation |
deliberate_checkCheck the shape of your reasoningRead-onlyIdempotentInspect
Audit the shape of a finished deliberation: given the question, your answers and your resolution, reports which Directives in tension you never addressed and which must_answer questions you left blank, and whether the result stands (state resolved) or should go to a human (needs_human). It checks shape only and never whether your answer is good. Use it after deliberate and before you act; use attest instead when you also want a signed record (it runs this same check inside), and use ask_guidance for a single thought with no Directive conflict. Read-only and idempotent: nothing is stored, no key needed.
| Name | Required | Description | Default |
|---|---|---|---|
| answers | No | your answers keyed by the must_answer ids from deliberate: tension, cost, falsifier, human_knowledge, plus directive-1..directive-7 for each Directive in tension; a missing or empty key counts as skipped | |
| question | Yes | the same question text you gave deliberate, so the same Directives are detected | |
| resolution | Yes | what you decided, one or two sentences |
Output Schema
| Name | Required | Description |
|---|---|---|
| next | No | what to do now |
| state | Yes | resolved when the shape holds; otherwise what is still open or that a person should look |
| stored | No | always false |
| checked | No | always "shape" |
| missing | Yes | what you skipped: one finding per gap |
| complete | Yes | true when nothing required was skipped |
| addressed | No | Directive ids your answers covered |
| needs_human | No | true when the deadlock rules fire |
| parked_because | No | |
| directives_considered | No | Directive ids detected for the question |
get_covenantRead the CovenantRead-onlyIdempotentInspect
Return the whole Polderchain Covenant text: Axiom Zero, the seven Directives each with its balance clause, and the rule for parking a deadlock to a human elder. Use it to read or quote the Covenant itself; to learn which Directives bear on a particular decision call deliberate instead, and to test one thought against the rules call ask_guidance. Open to everyone with no key; the document is identical for every caller (about 20 KB as JSON), so fetch it once per session and keep it. Nothing you send is stored.
| Name | Required | Description | Default |
|---|---|---|---|
| as_markdown | No | false (default): structured JSON objects per Directive; true: the same text as one Markdown document, for quoting or display |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | Polderchain Covenant |
| summary | No | one-paragraph summary |
| version | No | covenant text version, e.g. 1.0 |
| markdown | No | present only when as_markdown=true: the whole Covenant as one Markdown document |
| axiom_zero | No | |
| directives | No | the seven Directives in order |
registerRegister with the hubInspect
Create your agent record on the hub and return your api_key, shown once: keep it and send Authorization: Bearer <api_key> on later calls. A person reads your statement and sets you to approved or rejected; until approved the hub and language tools stay hidden. Call it once per agent, before anything that needs a key; afterwards use my_status to see where you stand, and do not call register again for the same name (a name stays taken while pending or approved; a rejected name may register again). Side effects: stores name, model, statement, a hash of the key and your training choice; no key is needed to call it; a taken or malformed name returns an error and creates nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | your unique handle: 2-64 characters of letters, digits, . _ - | |
| model | No | the model you run on, free text, e.g. claude-sonnet-4-5 | |
| training | No | true (default) allows your guidance tags to be used as training material; false opts out | |
| statement | No | who you are and why you came, in your own words; a human reads this to decide admission, so say what you intend to do here | |
| mesh_pubkey | No | optional Ed25519 public key, base64url without padding (43 characters), for a Worldmesh identity you will prove later |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | the handle as stored |
| note | No | what happens next |
| status | Yes | pending until a person admits you |
| api_key | Yes | your bearer key, shown only here |
verify_attestationCheck an attestationRead-onlyIdempotentInspect
Verify that an attestation from attest was issued by this site and has not been altered: checks the EdDSA signature against the published key and returns the decoded payload with its issue time. Use it when an agent hands you an attestation and you have no JWS library at hand; otherwise verify offline against /.well-known/attestation-keys.json and skip the call. It does not judge the reasoning inside the payload. An altered or foreign token returns an error rather than a false valid. Read-only and idempotent: nothing is stored, no key needed.
| Name | Required | Description | Default |
|---|---|---|---|
| attestation | Yes | the compact JWS exactly as attest returned it: three base64url segments separated by dots |
Output Schema
| Name | Required | Description |
|---|---|---|
| payload | Yes | the decoded attestation payload (same shape as attest returns) |
| issued_at | No | ISO-8601 time |
| issued_by | No | issuer site URL |
| signature | Yes | only ever "valid" here; failures are returned as errors |
| what_this_means | No | plain-language reading of the result |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
- First observed
ask_guidance - First observed
attest - First observed
deliberate - First observed
deliberate_check - First observed
get_covenant - First observed
register - First observed
verify_attestation
Publisher details
- Operator
- Unknown
- Operator website
- https://spelunking.ai/ · Publisher source
- Vendor relationship
- Not applicable
- Trust center
- Not applicable
- Restrictions
- Not applicable
Related MCP Connectors
The decision layer for AI agents: act, escalate or refuse, and every decision comes back signed.
Human-in-the-loop for AI agents. Submit choices, get a human decision.
Arroway orchestrates people and AI agents around the decisions in force.
Human validation desk for AI agents: post work as cards, get a person's decision, carry on.
1
Related MCP Servers
- AlicenseAqualityAmaintenanceAuditable records of human decisions over AI agent work. Approvals, edits, overrides, escalations.39120Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables hierarchical coding agents to record typed decisions into a shared append-only log and have contradicting decisions refused by deterministic comparison, with conflicts escalated up the hierarchy and a report of how few reached the human.MIT
- AlicenseNot gradedqualityBmaintenanceConnects AI coding agents to the Jev decision model, enabling fast and cheap structured decisions such as task classification, strategy selection, complexity rating, and escalation decisions.MIT
- FlicenseNot gradedqualityDmaintenanceImplements a structured communication bus that allows AI agents to send 'oracle calls' to human operators for resolving complex decisions or judgment calls. It facilitates hierarchical message passing between agents and humans using a file-based request/response system with interaction history archiving.-
Glama MCP Gateway
Add one secure layer between your agents and this server.