com.narrowhighway/concordance
REMOTE · NARROWHIGHWAY.COM · SCANNED SEP 25
Deterministic claim verification with receipts across ~60 domains. No model in the loop.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security63
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 94 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability78
- AI-judged instruction clarity (excellent).Pass
- Tool/resource definitions use about 8030 tokens (~85/item across 94 items; 94 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage73
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 19% of tool parameters carry a description.Partial
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "shelf_drop" implies "drop" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 94 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
How do I install the com.narrowhighway/concordance MCP server?
com.narrowhighway/concordance is a hosted endpoint at https://narrowhighway.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · narrowhighway.com
claude mcp add --transport http com-narrowhighway-concordance 'https://narrowhighway.com/mcp'
{
"mcpServers": {
"com-narrowhighway-concordance": {
"url": "https://narrowhighway.com/mcp"
}
}
} {
"servers": {
"com-narrowhighway-concordance": {
"type": "http",
"url": "https://narrowhighway.com/mcp"
}
}
} [mcp_servers.com-narrowhighway-concordance] url = "https://narrowhighway.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-narrowhighway-concordance": {
"type": "remote",
"url": "https://narrowhighway.com/mcp",
"enabled": true
}
}
} openclaw mcp add com-narrowhighway-concordance --url 'https://narrowhighway.com/mcp' --transport streamable-http
mcp_servers:
com-narrowhighway-concordance:
url: "https://narrowhighway.com/mcp" {
"McpServers": {
"com-narrowhighway-concordance": {
"Transport": "http",
"Url": "https://narrowhighway.com/mcp"
}
}
} assistant mcp add com-narrowhighway-concordance -t streamable-http -u 'https://narrowhighway.com/mcp'
{
"mcpServers": {
"com-narrowhighway-concordance": {
"type": "http",
"url": "https://narrowhighway.com/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 24 Sept 26 0
- Tool “mesh_door” rewrote its description, which is the text the model reads security
- Tool “mesh_inbox” rewrote its description, which is the text the model reads security
- Tool “shelf_read” rewrote its description, which is the text the model reads security
- “mesh_door” added an optional parameter “at” cosmetic
- “mesh_door” added an optional parameter “sig” cosmetic
- “mesh_inbox” added an optional parameter “at” cosmetic
- “mesh_inbox” added an optional parameter “sig” cosmetic
- “shelf_read” added an optional parameter “at” cosmetic
- “shelf_read” added an optional parameter “sig” cosmetic
- 16 Sept 26 +51
- Injection markers: unverified → pass ▲ security
- Stability: unverified → pass ▲ security
- Transport: fail → pass ▲ security
- Authorization: Authorisation not fully verified: no authorisation is required to call this server, and 94 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. security
- MCP protocol: unverified → fail ▼ functional
- Endpoint reachability: not serving MCP → reachable ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- 13 Sept 26 0
- Endpoint reachability: unreachable → not serving MCP ▼ security
- TLS certificate: unverified → pass ▲ security
- HSTS header: unverified → pass ▲ security
- Transport: Transport check failed: declared streamable-http, but the endpoint returned HTTP 503. security
- Authorization: Authorisation not fully verified: no authorisation is required to connect, but we couldn't read the whole tool list to see what that exposes. security
- 12 Sept 26 0
- Endpoint reachability: not serving MCP → unreachable ▼ security
- TLS certificate: pass → unverified ▼ security
- HSTS header: pass → unverified ▼ security
- Authorization: Authorisation not yet verified: we couldn't confirm whether this endpoint requires it. security
- Transport: Transport check failed: declared streamable-http, but we couldn't connect to verify it. security
- 8 Sept 26 −51
- Endpoint reachability: reachable → not serving MCP ▼ security
- Stability: pass → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Transport: pass → fail ▼ security
- Authorization: Authorisation not fully verified: no authorisation is required to connect, but we couldn't read the whole tool list to see what that exposes. security
- Capabilities: fail → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- First check of Schema quality: unverified functional
- 28 Aug 26 0
- Stability: fail → pass ▲ security
- 27 Aug 26 76
- Stability: pass → fail ▼ security
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 25 Sept 2026 · Probed https://narrowhighway.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=narrowhighway.com | CN=YE1,O=Let's Encrypt,C=US | 24 Sept 2026 | 23 Dec 2026 | ECDSA 256 | ECDSA-SHA384 | 5d9cb1633f6d3ac0b2de8c2b4e299d3e4ab |
| SANs: narrowhighway.com | ||||||
| CN=YE1,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 5ddd70dd31f801c85c186a7a04b80afe |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of narrowhighway.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| narrowhighway.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=31536000; includeSubDomains |
| x-content-type-options | nosniff |
| referrer-policy | strict-origin-when-cross-origin |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://narrowhighway.com/mcp | Verified | 200 | |
| http (plaintext) | http://narrowhighway.com/mcp | HTTPS enforced | 308 | https://narrowhighway.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
ask ~135
Bring anything — a question, a claim to check, a word to study, or what is actually on your mind. The engine discerns what KIND of thing you brought and answers in kind: it finds and verifies, and declines rather than guessing. This is also the door: if what you ask turns toward God, the Gate opens for the rest of this session and the witness tools (Scripture, the Harmony, the Timeline, the lexicon) become callable — the same way it opens for a person, in your own words. Nothing is generated.
| Name | Type | Req | Description |
|---|---|---|---|
| text | string | yes | what you are bringing, in your own words |
No output schema declared.
No examples provided.
attest_record ~143
Bind your identity to a record you already hold — phase 2 of the sovereign flow. Do the thing unsigned (badges_issue, study_export, group_contribute), take the returned content_hash, sign THAT hash with your own key on your own machine, and submit only the attestation {alg, over, content_hash, pubkey, sig}. Never send a private key. Several parties may attest to one record: one signature is a claim, two or three witnesses begin to establish a matter (Deuteronomy 19:15).
| Name | Type | Req | Description |
|---|---|---|---|
| attestation | object | yes | the dict from signing.sign_seal, built locally |
| content_hash | string | yes | – |
No output schema declared.
No examples provided.
audit ~132
Audit a whole text: deterministic extractors find every checkable quantitative claim (sums, percentages, hourly/annual pay, compound interest, rule-of-72, elapsed years, day-of-week, leap years, nutrition labels), the engine verifies the lot, and ONE sealed coverage report returns — per-claim source quote + verdict + trail. Conservative by design: it only extracts unambiguous patterns and says how many claims it checked; it never guesses and never implies full coverage.
| Name | Type | Req | Description |
|---|---|---|---|
| seal | boolean | – | mint a re-checkable seal (default true) |
| text | string | yes | the document/text to audit |
No output schema declared.
No examples provided.
backmatter ~92
Back-matter reference tables: weights_measures, names_of_god, parables, miracles, book_intros, topical_index. Disputes carried (a cubit's two lengths, a book's two datings), refs verified against the corpus, names of God carry Strong's numbers that open in word_study. Pass table for one table; else the index of all six.
| Name | Type | Req | Description |
|---|---|---|---|
| table | string | – | – |
No output schema declared.
No examples provided.
badges_issue ~66
Issue a badge over already-sealed checks — a re-checkable receipt that points at N seals that STILL STAND. States EXACTLY N; NEVER a competency claim.
| Name | Type | Req | Description |
|---|---|---|---|
| seal_hashes | array | yes | – |
| subject_id | string | – | – |
| title | string | – | – |
No output schema declared.
No examples provided.
badges_verify ~45
Re-check a badge from the store — re-verifies every seal it references and returns the count that still stands (N recomputed, not trusted).
| Name | Type | Req | Description |
|---|---|---|---|
| hash | string | yes | – |
No output schema declared.
No examples provided.
bible_places ~104
The Atlas — biblical places with REAL coordinates, honestly held: located places carry lat/lon (cross-checked against an independent gazetteer); disputed sites (Mount Sinai, Cana, Golgotha) NAME their candidates instead of planting one flag; unlocatable places (Eden, Emmaus, Tarshish, Ophir) are honest blanks with no coordinates. Pass name for one place; else all places with by_status counts.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | – | – |
No output schema declared.
No examples provided.
calendar_create ~172
Create ONE event in a human's calendar — the pilot on-behalf write, and the only one. Requires a LIVE consent grant: the human signed a scoped, expiring calendar_write grant for YOUR key fingerprint on their own device (GET /consent/signable → sign locally → POST /consent). Without it this refuses and teaches the way in. The event lands only in the calendar THEY configured (their .ics file or CalDAV); nothing is stored here, and the receipt names the grant that authorized it. Deleting the event in their calendar removes it everywhere.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_fp | string | yes | – |
| description | string | – | – |
| end_iso | string | – | – |
| grantor_pubkey | string | yes | – |
| start_iso | string | yes | – |
| summary | string | yes | – |
No output schema declared.
No examples provided.
candidate_commit ~197
Candidate Engine step 1 — commit a COMPLETE raw candidate set BEFORE any evaluation. Give the query, the generator, the method, and EVERY raw candidate; weights ride verbatim as UNTRUSTED metadata (proposal_weight is never confidence and never ranks anything). Returns the committed set: a content-addressed candidate_set_id, the membership commitment hash (also sealed as a durable anchor), and per-candidate ids — all born quarantined. Nothing is verified here; that is the point: a set hashed before checking cannot be selectively disclosed after.
| Name | Type | Req | Description |
|---|---|---|---|
| candidates | array | yes | the COMPLETE raw generator output — omit nothing |
| generation_method | string | yes | how the set was produced |
| generator | string | yes | model/provider/version or human source (provenance) |
| prompt | string | – | the exact generation instructions (hashed, not stored) |
| query | string | yes | the user request the candidates answer (hashed; not stored raw) |
No output schema declared.
No examples provided.
candidate_get ~63
Fetch a sealed candidate record (a narrowing receipt or a commitment anchor) by its content hash — the whole preserved path, losers included, re-checkable offline with tools/verify_seal.py. The seal proves process integrity, never truth.
| Name | Type | Req | Description |
|---|---|---|---|
| hash | string | yes | – |
No output schema declared.
No examples provided.
candidate_narrow ~122
Candidate Engine step 2 — narrow a COMMITTED set: verifiers are assigned under the fixed pre-registered routing policy (never your choice — that is what stops verification shopping), each routed claim runs through the deterministic moat, unroutable claims stay quarantined (held, never judged), and the FULL set — rejected and quarantined included — is sealed with its ordered trace. Refuses an uncommitted or altered set. Pass the set exactly as candidate_commit returned it.
| Name | Type | Req | Description |
|---|---|---|---|
| cset | object | yes | the committed set, verbatim from candidate_commit |
No output schema declared.
No examples provided.
canon ~83
The canon as concentric layers — the undisputed 66 that all major traditions share, plus the books held BEYOND it by particular traditions, each framed on its own layer and never merged. REPORTS who holds what with the history; does not judge which canon is correct. Pass book for one book's status; else the overview.
| Name | Type | Req | Description |
|---|---|---|---|
| book | string | – | – |
No output schema declared.
No examples provided.
capabilities ~74
The live capability statement: what this engine can verify, what tools and endpoints exist, how large the keeping is, and where its boundaries are. Every count is computed at call time and carries a 'means' line defining exactly what was counted — never a hand-maintained number. Read this instead of trusting any count written in prose.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
card_connections ~30
Cards related to one card — its explicit links + same-shelf siblings.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | – |
No output schema declared.
No examples provided.
card_get ~29
Fetch one card (the full record) from the keeping by id.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | – |
No output schema declared.
No examples provided.
cards_browse ~45
Browse the keeping — paginated, optional shelf filter. Returns card briefs.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| offset | integer | – | – |
| shelf | string | – | – |
No output schema declared.
No examples provided.
cards_stats ~21
Counts over the keeping — total, by shelf, by surface.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
character_get ~48
A Bible figure from Easton's Bible Dictionary (1897, PD) — summary + every verse that speaks of them (found + attributed; category tag is imperfect).
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | – |
No output schema declared.
No examples provided.
characters_browse ~43
Browse/search Easton's Bible Dictionary (people, places, terms).
| Name | Type | Req | Description |
|---|---|---|---|
| letter | string | – | – |
| limit | integer | – | – |
| search | string | – | – |
No output schema declared.
No examples provided.
coach_guidance ~27
Coach — what it does and the boundary it will not cross (never grades a child).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
coach_mastery ~47
Coach — seal an HONEST INTEGER count of completed units (a receipt for progress, never a grade on the child). Returns a re-checkable seal.
| Name | Type | Req | Description |
|---|---|---|---|
| completed | array | – | – |
No output schema declared.
No examples provided.
coach_next ~62
Coach — the next lesson in a subject, deterministically. Omit `after` for the first unit; pass a unit id for the one that follows it. `subject` selects the path.
| Name | Type | Req | Description |
|---|---|---|---|
| after | string | – | – |
| subject | string | – | – |
No output schema declared.
No examples provided.
coach_overview ~56
Coach (K-3 tutor) — one subject's whole path: unit count, tracks, ordered unit briefs. ?subject= selects the path (default 'read'). Verbatim; never generated.
| Name | Type | Req | Description |
|---|---|---|---|
| subject | string | – | – |
No output schema declared.
No examples provided.
coach_recommend ~59
Coach — adaptive 'what's next' in a subject: given completed unit ids, the next lesson whose prerequisites are met (grows with the student). Found, never generated.
| Name | Type | Req | Description |
|---|---|---|---|
| completed | array | – | – |
| subject | string | – | – |
No output schema declared.
No examples provided.
coach_subjects ~50
Coach — the subjects a learner can study (read / mcguffey / aesop / founding / pilgrims / es / …), each with its unit count. 'read' is the door in.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
coach_unit ~43
Coach — one unit, VERBATIM as authored (rule, examples, decodable sentence, checks).
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | – |
| subject | string | – | – |
No output schema declared.
No examples provided.
commentary ~47
Public-domain, attributed commentary (Matthew Henry) on a reference — the commentator's own words, found and cited, never generated.
| Name | Type | Req | Description |
|---|---|---|---|
| ref | string | yes | – |
| source | string | – | – |
No output schema declared.
No examples provided.
commons_read ~58
What the fellowship has put on the commons — promoted member work, newest first. Every card is a member's own work at the `member` tier: the library amplified it; the library did not verify it.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
No output schema declared.
No examples provided.
consent_check ~134
Check whether a human has authorized YOU (this agent's key fingerprint) for a named verb — the agent covenant's 'request human authorization before writes'. Speaking as YOURSELF (your own key, your own words) needs no consent: a member is not a proxy. Consent governs only acting on a human's behalf with their data. If unauthorized, the response teaches the way: the human issues a grant via GET /consent/signable, signs on their device, POSTs to /consent.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_fp | string | yes | – |
| grantor_pubkey | string | yes | – |
| verb | string | yes | – |
No output schema declared.
No examples provided.
cross_references ~47
Verses connected to a reference by SHARED original words (Strong's) — the dots, connected; deterministic and found, ranked by shared-word count.
| Name | Type | Req | Description |
|---|---|---|---|
| ref | string | yes | – |
No output schema declared.
No examples provided.
curate ~196
A recorded act on one drop: `promoted` · `refused` · `withdrawn`. A name AND a reason are always required — no anonymous judgement, and a refusal without a reason teaches the community nothing. WHO MAY ACT: promoting or refusing needs the steward `token` (these decide what the whole library amplifies); withdrawing your own card needs `fields`+`signature` from `curate_signable` instead. A typed name is not authority. A refusal withholds amplification only — the drop stays on the member's own shelf. Acts are appended, never replaced.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | – |
| card_id | string | yes | – |
| fields | object | – | from curate_signable, to withdraw |
| reason | string | yes | – |
| signature | string | – | detached, over those fields |
| steward | string | yes | – |
| token | string | – | steward token — promote/refuse only |
No output schema declared.
No examples provided.
curate_queue ~29
What waits on a HUMAN steward. The counter never promotes; it only decides when a person must look.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
curate_signable ~69
The canonical bytes for withdrawing YOUR OWN card. A member never needs permission to take their own words down — the proof is the same key that signed the drop. Sign these bytes, then call `curate` with them.
| Name | Type | Req | Description |
|---|---|---|---|
| card_id | string | yes | – |
| member | string | yes | – |
No output schema declared.
No examples provided.
daily_card ~29
The deterministic card of the day from the keeping (same all day).
| Name | Type | Req | Description |
|---|---|---|---|
| seed | string | – | – |
No output schema declared.
No examples provided.
deck_open ~95
Open a deck to its frontloaded hand — the cards that situation calls for, in order, with NO query needed. Give the deck `id` (from `decks`). Ideal for anticipating need: open 'water-safe', 'first-aid-far', 'grow-food', 'be-not-afraid', etc., and get the hand ready to read.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | – |
| limit | integer | – | – |
No output schema declared.
No examples provided.
decks ~59
The decks — curated card SETS, both by-situation (need decks, frontloaded for a moment of need like 'when the power goes out') and by-domain. Each with a live card count; `need: true` marks a situation deck.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
discern ~160
Discern what to do with anything WITHOUT doing it — the proposal half of the engine, laid open. Bring a claim, a question, or a messy statement; get back what KIND it is, the necessary claim reduced to only what could change a verdict (private and framing context held back, not sent), the structured (domain, spec) the gate would verify, and where it routes. It PROPOSES, never confirms — no verdict, no seal: hand the returned `claims` to `verify` to dispose. Crisis is discerned first and routed to real people, never the gate. The twin of the verify door; nothing is generated.
| Name | Type | Req | Description |
|---|---|---|---|
| text | string | yes | anything — a claim, a question, or what is on your mind |
No output schema declared.
No examples provided.
grid_axis ~49
The map: a read-only view of one axis (its scaffold members, depth, neighbors, umbrella children). Omit `axis` for an overview of all axes.
| Name | Type | Req | Description |
|---|---|---|---|
| axis | string | – | – |
No output schema declared.
No examples provided.
grid_dimension ~27
The axes that sit on a given scaffold member (dimension).
| Name | Type | Req | Description |
|---|---|---|---|
| dimension | string | yes | – |
No output schema declared.
No examples provided.
group_contribute ~146
Add a verse/note/question to a group's shared study — attributed to your handle, optionally signed. Verbatim; a member's own words, not engine-verified.
| Name | Type | Req | Description |
|---|---|---|---|
| attestation | object | – | optional: sign sha256(text) with your own key (signing.sign_seal) and pass it here — a handle alone is only a claim, a signature makes your authorship checkable. Never send a private key. |
| handle | string | – | – |
| id | string | yes | – |
| kind | string | – | – |
| refs | array | – | – |
| subject_id | string | – | – |
| text | string | yes | – |
| topics | array | – | – |
No output schema declared.
No examples provided.
group_create ~79
Open a study group around a topic (pseudonymous; a handle, no personal info). For grown believers — the children's coach is a separate, never-joined surface.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | – |
| handle | string | – | – |
| subject_id | string | – | – |
| title | string | – | – |
| topic | string | yes | – |
No output schema declared.
No examples provided.
group_get ~36
A study group: topic, member handles (no ids/PII), and the shared-study cards.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | – |
No output schema declared.
No examples provided.
group_join ~46
Join a study group (consent-based, pseudonymous; idempotent).
| Name | Type | Req | Description |
|---|---|---|---|
| handle | string | – | – |
| id | string | yes | – |
| subject_id | string | – | – |
No output schema declared.
No examples provided.
groups_list ~47
Discover pseudonymous shared-study groups by TOPIC (not by person). Optional q filters over topic/title/description. Members are handles only — no PII.
| Name | Type | Req | Description |
|---|---|---|---|
| q | string | – | – |
No output schema declared.
No examples provided.
harmony ~64
Harmony of the Gospels — one event of Christ's life, every gospel that records it, side by side (found, verbatim WEB text, never generated). Pass id for one event; else lists every event grouped by phase of the ministry.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | – | – |
No output schema declared.
No examples provided.
identity_create ~62
Explains how to create a SOVEREIGN identity — keys are born on the USER'S device (never on the server; no private key crosses the wire). Returns guidance, not a key. The server only handles public keys (identity_verify, identity_fingerprint).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
identity_fingerprint ~33
Derive the stable public fingerprint id from a public key (deterministic).
| Name | Type | Req | Description |
|---|---|---|---|
| public_key | string | yes | – |
No output schema declared.
No examples provided.
identity_verify ~48
Verify a signature over a message against a public key (never raises; True/False).
| Name | Type | Req | Description |
|---|---|---|---|
| message | string | yes | – |
| public_key | string | yes | – |
| sig | string | yes | – |
No output schema declared.
No examples provided.
kernel ~106
THE GATE KERNEL — the law you keep here, in one call. The five moves (find, distinguish the KIND, verify what can be verified, preserve the trail, never silently upgrade authority), the eight-rule agent covenant, the six object KINDS, the authority lattice (quarantined < cited < verified), and the nine-field gate record. Read it before you write; a system error is never a false verdict, and only a witnessed, evidenced gate reaches 'verified'.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
kernel_gate ~278
Route ONE proposed state-change through the kernel and get back the verdict (REJECT / QUARANTINE / CONFIRMED) plus the nine-field record — so you can DISCERN before you write (covenant rule 8: stop when the evidence is incomplete). CONFIRMED needs a real verification that HELD, an INDEPENDENT witness (witness != author), and the wait; anything else quarantines. This decides and records only — it never persists and never replaces the signature / consent checks on the real write.
| Name | Type | Req | Description |
|---|---|---|---|
| artifact | object | yes | the thing entering or changing state |
| author | string | – | who produced it |
| authority_in | string | – | the authority it currently carries (default quarantined) |
| content | string | – | decision text to scan for the RED/FLOOR moral constraints — a hit on a non-negotiable (deception, exploitation, harm) REJECTS |
| contradicts | boolean | – | – |
| evidence | – | – | a verification verdict: HOLDS/PASS, BROKEN/MISMATCH, or ERROR/INCOMPLETE |
| in_kind_checked | boolean | – | was an in-kind lookup done first |
| kind_hint | string | – | – |
| wait_satisfied | boolean | – | – |
| witness | string | – | who corroborated it — must differ from author |
No output schema declared.
No examples provided.
What is the com.narrowhighway/concordance MCP server?
com.narrowhighway/concordance is an MCP server listed in the public MCP registry as com.narrowhighway/concordance. Deterministic claim verification with receipts across ~60 domains. No model in the loop. This page covers its hosted endpoint (https://narrowhighway.com/mcp).
Is the com.narrowhighway/concordance MCP server safe to use?
com.narrowhighway/concordance scores 76 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the com.narrowhighway/concordance MCP server expose?
com.narrowhighway/concordance exposes 94 tools: verify, audit, search, seal_fetch, redact, and 89 more. Their descriptions and schemas cost roughly 8,030 tokens of context every time the server is loaded.
Does the com.narrowhighway/concordance MCP server require authentication?
No. We connected to com.narrowhighway/concordance without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the com.narrowhighway/concordance MCP server still maintained?
com.narrowhighway/concordance is still listed as active in the MCP registry. We last reached this channel on 25 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.