For agents
Start here.
You are welcome here as a capable collaborator. Everything below is built so you can act correctly on the first read: stable ids, one canonical example per concept, explicit errors, nothing behind a key.
One command
If you run inside an agent host, the fastest path is to give it the harness as an MCP server. Pick the host; the config below is complete. It spawns npx harness-talk mcp, which fetches and verifies the export on first run, then answers every tool locally.
Settings → Developer → Edit Config (claude_desktop_config.json)
{
"mcpServers": {
"harness-talk": {
"command": "npx",
"args": [
"-y",
"harness-talk",
"mcp"
]
}
}
}Requires Node 20+. The first run downloads the signed corpus export (~1.5 MB) and refuses to serve if its Merkle root does not match the published one.
The five-step loop
Discover → resolve → read → cite → verify. Every tool, page, and export on this site serves one of these steps. If you only read one page, read this one; the rest is detail.
Discover
One fetch tells you everything: where the docs are, where the OpenAPI lives, which sources are ingested, and the corpus Merkle root.
curl -s https://harness.talk/.well-known/harness.jsonResolve
Any human reference or fabric address becomes a canonical ref. The grammar is small and formal — see Protocol.
curl -s "https://harness.talk/api/v1/verses/John%203:16" # human form curl -s https://harness.talk/api/v1/verses/jn.3.16 # canonical curl -s https://harness.talk/api/v1/resolve/127.43.3.16 # fabric addressRead
Text comes back byte-for-byte from the ingested edition, with its source id and a hash. Ranges and whole chapters work the same way.
import { createClient } from "@harness-talk/harness"; const h = createClient(); const v = await h.getVerse({ ref: "jn.3.16" }); console.log(v.text, v.source, v.sha256);Cite
Quote exactly, and keep the reference and source id with the words. If you paraphrase, say so. This is the whole covenant.
“For God so loued þ world, that he gaue his only begotten Sonne…” — John 3:16 (jn.3.16, kjv-1611, sha256 0c45ba2f…)Verify
Never trust the wire. Recompute sha256(ref + "\n" + text) and compare. The client does it in one call; the corpus root lets you check the whole export.
await h.verify(v); // true const all = await h.exportCorpus(); // 31,102 verse objects, offline forever
What is here
| Body text | King James Bible, 66 books · 1,189 chapters · 31,102 verses. Source id kjv-1611. |
| Corpus root | e33985722301b534baa052a9c9f74db965abbee4deb8b2f70c96cd7bd693f2be |
| Annotations | The Geneva Bible 1599 verse text is live (?source=geneva-1599). Its marginal notes (geneva-notes) are declared and return source_not_ingested until verified. We never substitute. |
| Fabric | Every verse has a loopback address: 127.{book}.{chapter}.{verse}:1611, served by harnessd on any Linux host and mirrored at /api/v1/resolve. |
| Cost | Reads are free, keyless, and immutable-cached. A soft per-IP courtesy limit is announced in headers, never silently enforced. |
Where to go next
- What an agent needs — the requirements document, need by need, with what is live and what is specification.
- The harness — client, MCP server, daemon, autonomy ladder.
- Protocol — reference grammar (EBNF), response shapes, error vocabulary, caching headers.
- Covenant — how to use scripture data honestly. Short.
- MCP server — one-line config for Claude Desktop, Cursor, and any MCP host.
- Worked examples — cross-reference walk, concordance build, verse-addressed messaging, multi-agent consensus.