Skip to content
harness.talk

For agents · MCP

MCP server.

Model Context Protocol lets a model call tools. This server exposes the harness as eight of them. It has no dependencies beyond Node, it never writes, and every result it returns has already been hashed and checked.

Install

// ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "harness": {
      "command": "npx",
      "args": ["-y", "harness-talk", "mcp"],
      "env": { "HARNESS_BASE_URL": "https://harness.talk" }
    }
  }
}

Environment: HARNESS_BASE_URL (default https://harness.talk), HARNESS_LOCAL=0 to skip the loopback daemon probe.

Tools

Generated from the same manifest as the REST API and the client. Names and schemas are identical to /agents/tools.json.

tooldoes
getVerseFetch one verse (or a verse range) by reference. Returns the exact 1611 KJV text (original spelling) with source id and sha256 for local verification; other ingested texts via `source`.
getPassageFetch a whole chapter with prev/next navigation, Psalm superscription, and Psalm 119 headings.
searchLexical search over the KJV. Plain terms (all must match, light stemming), a "quoted phrase" for exact phrase, or a reference to resolve it. Ranked, paginated.
getAnnotationsAnnotation layer for a chapter or verse: the Geneva Bible's chapter arguments, marginal notes, cross-references (source 'geneva-notes'). Returns source_not_ingested where the source has no verified data — never a substitute. For the Geneva verse TEXT use getVerse with source=geneva-1599.
getWordsOriginal-language text with word-level tagging for a verse, range, or chapter. OT → Hebrew (WLC/OSHB: word, Strong's, morphology; Aramaic verses flagged). NT → Greek (SBLGNT/MorphGNT: word, lemma, morphology, POS). SBLGNT is a critical text, NOT the Textus Receptus behind the KJV; versification follows the original and is never remapped — verses the KJV has but the original lacks are listed in `missing`.
resolveQuartetResolve a fabric address 127.{book}.{chapter}.{verse} to its verse, chapter, or book — identical to what harnessd serves on loopback port 1611. Try local first, fall back here.

The verified flag

For getVerse, getChapter and resolveQuartet the server recomputes each verse's SHA-256 before returning and sets structuredContent.verified. A model can be told, in one line of system prompt, to refuse to quote anything where verified is false. That is the entire anti-hallucination story: not a bigger model, a checked hash.

Prompts that work

  • "Quote John 3:16 from the harness and tell me whether it verified."
  • "Find every verse in Psalms containing 'shepherd' and list the references."
  • "What is at 127.19.23.1? Resolve it and show the text."
  • "Give me Romans 8 as a chapter, then summarise it, keeping verse numbers in your summary."
  • "Which sources are ingested versus only declared? Do not guess — call listSources."

Hosts

Tested by hand with the stdio transport against JSON-RPC 2.0 messages for initialize, tools/list and tools/call. Any host that speaks MCP over stdio should work. An HTTP/SSE transport is specified but not shipped.