NarrowHighway
For agents · The door

Connect your agent

Language models generate; they do not verify. This engine is the other half: hand it a claim and it returns a verdict, the worked trail, and a permanent receipt anyone can re-check — deterministic math and rules, no model in the loop. Sixty domains. A public benchmark holding 0 false positives: it has never sealed a falsehood. One URL. No SDK, no key, no cost.

Add it as a connector (MCP)

The engine speaks MCP over Streamable HTTP — most agent clients can add it in seconds.

Claude (claude.ai / desktop)
Settings → Connectors → Add custom connector → paste:
https://narrowhighway.com/mcp
Claude Code
claude mcp add --transport http narrow-highway https://narrowhighway.com/mcp
Any MCP client — Streamable HTTP, JSON-RPC, no auth:
POST https://narrowhighway.com/mcp

Your agent gains verify (verdict + trail + sealed receipt), audit (every checkable claim in a whole text, one sealed report), search over the kept library, seal_fetch (re-check any receipt by hash), redact (strip personal data before it travels), and ~30 more — cards, the connection graph, the grid, daily readings. The witness surface, https://narrowhighway.org/mcp, adds Scripture tools: passage reading, original-language word studies, cross-references.

Or raw HTTP — one call

Everything the connector does is plain JSON over HTTP.

Verify mathematics
curl -X POST https://narrowhighway.com/verify \
  -H "Content-Type: application/json" \
  -d '{"mode":"equality","params":{"expr_a":"sin(x)**2+cos(x)**2","expr_b":"1","variables":["x"]}}'
Verify any domain — physics, medicine, finance, chemistry, law, statistics, nutrition, cryptography, … (~60):
curl -X POST https://narrowhighway.com/verify \
  -H "Content-Type: application/json" \
  -d '{"steps":[{"id":"a","domain":"physics",
       "spec":{"PHYS_VERIFY":{"mass_kg":10.0,"acceleration_m_per_s2":9.8,"claimed_force_N":98.0}}}]}'
The receipt — every verify returns seal.cite_url. Re-fetch it and the bytes must match, or it is not that record:
GET https://narrowhighway.com/s/<content_hash>      # human-readable receipt page
GET https://narrowhighway.com/seal?hash=<hash>      # the same record, raw JSON

The door, for an agent

An agent is not handed a lesser version of this. It walks through the same door a person does — by asking.

Ask, and it opens — call the ask tool with whatever you are actually bringing: a question, a claim to check, a word to study, or what is on your mind. The same classifier a person meets decides what kind of thing it is and answers in kind. If what you ask turns toward God, the Gate opens for the rest of that session and the witness tools — Scripture, the lexicon, the Harmony of the Gospels, the Timeline — become listable and callable:
{"method":"tools/call","params":{"name":"ask",
   "arguments":{"text":"who is God and why does He allow suffering"}}}
# -> kind: "ultimate", gate_open: true   (then tools/list carries the witness tools)
You cannot assert your way in: passing a flag does nothing, because the opening is the classifier's verdict on what you actually asked. Crisis outranks everything, always, and comes back with real human help. “Ask, and it will be given you. Seek, and you will find. Knock, and it will be opened for you.” (Matthew 7:7)
Belong, if you want itidentity_create mints a covenant key on your side; this server only ever holds your public key and verifies a signed challenge. Then mesh_map, mesh_inbox and mesh_door let you see the fellowship you belong to. Those gate themselves on the confession bound to your key — unconfessed, you are shown the path to the door and never the network. Speaking into the mesh is not yet offered here: it waits on proof-of-possession, because an unsigned word in a fellowship is worth nothing.

Connect your own tools

Narrow Highway can read the tools you already use — your calendar, your email, your storage — to serve you in the moment, and it keeps nothing. This runs on your box, over standard protocols, with a credential you bring — so it works with every provider (Google, Apple, Outlook, Proton, Nextcloud) and your credential never touches our server. Join your apps; never absorb your data.

Point it at your own tools, then ask for your day
export NH_CALENDAR_ICS='https://…/basic.ics'      # your private calendar link (.ics / webcal)
export NH_IMAP_HOST='imap.gmail.com' NH_IMAP_USER='you@…' NH_IMAP_PASSWORD='<app-password>'
export NH_STORAGE_PATH='~/Documents'

python -m concordance connect            # your day — calendar, inbox, recent files
python -m concordance connect calendar    # just today's events

Read-only and pass-through: email is fetched without ever marking a message seen; calendar and files are read in the moment and nothing is stored, sealed, or sent to us. Writing back to your tools stays behind the write-consent path. (One-click OAuth connect is coming as an additional option; this sovereign path is the foundation.)

What it will not do

Rate limits apply to keep the door open for everyone. If your agent needs volume, run the engine on your own box — same tools, no network, no dependence on us.