Skip to content

fojin — Buddhist Canon Tools

by fojin.app · remote · no sign-in to list tools · v0.4.0 · published by app.fojin

Buddhist canon tools: search, passages, cross-canon parallels, dictionaries — all URN-cited.

Changes · 2

8 tools: 2 change things and 6 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http fojin https://mcp.fojin.ai/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

8 tools

Changes things 2Claude Code: ask
  • commentariesWhat the historical commentators said about a passage of Buddhist scripture.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    What the historical commentators said about a passage of Buddhist scripture. Give a line of a sūtra and get back the classical commentaries that gloss it — each with the commentator's own words, the work it comes from, a quality tier, and a resolvable citation. This is the layer no other tool exposes for the Chinese canon: CBETA marks up almost none of it, and the alignment behind this was derived text by text. Two things to read carefully rather than skim. `total` is how many commentators the passage actually has — `truncated` says the list you got is a sample. And coverage is partial: roughly half of what a commentator wrote is not aligned, so an absent commentator means "not in the data", never "he said nothing". When nothing matches, `available_sutras` tells you which sūtras have data at all — do not read a miss as silence from the tradition.
  • verify_quoteVerify that a Buddhist-canon quote exists VERBATIM in the corpus.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Verify that a Buddhist-canon quote exists VERBATIM in the corpus. Call this before presenting any quoted scripture to a reader: LLMs routinely invent plausible-looking quotes. Returns `verbatim` (bool), where it was found (`matches`, each with a resolvable `urn`), or the closest near-miss window when it wasn't. `cite` optionally narrows the search — a CBETA id ("T0374") or fojin URN ("fojin:cbeta/T0374.13") — and `cite_matched` reports honestly whether the quote is where you claimed (a hit in a different fascicle does NOT confirm your citation). Quote must be ≥4 CJK chars after normalisation; Classical Chinese only. Short quotes are answered but say less: a four-character phrase recurs across the canon, so read `cite_matched` rather than `verbatim`, and check `matches_capped` before treating the list as complete. Each match carries an absolute `reader_url` — cite that, not a reconstructed third-party link.
Only reads 6Claude Code: allow
  • get_parallelsCross-canon parallel passages aligned to a fascicle.No findings

    Why it is in this group

    • The name "get_parallels" says "get": a word for reading.
    Description, as the server wrote it
    Cross-canon parallel passages aligned to a fascicle. fojin's alignment moat: given a Chinese fascicle, returns the aligned Pali/Tibetan/Sanskrit parallels so you can compare how a passage is rendered across traditions. A fascicle returns parallels for the *whole* juan — often hundreds. To narrow them to one passage, match the passage against `source_chunks[].text` and keep the parallels whose `aligns_source_chunk` equals that chunk_index. `urn` is filled for parallels that are fojin works; rows with `source="mitra-parallel"` are inline Skt/Tib sentences with no fojin work to cite, so they carry `original_preview` instead and stay `urn: null`.
  • lookup_dictionaryLook up a Buddhist term across fojin's dictionaries (748K+ entries).No findings

    Why it is in this group

    • The name "lookup_dictionary" says "lookup": a word for reading.
    Description, as the server wrote it
    Look up a Buddhist term across fojin's dictionaries (748K+ entries).
  • lookup_entitySearch fojin's knowledge graph for entities — people, places, works, doctrinal terms — matching `query`.No findings

    Why it is in this group

    • The name "lookup_entity" says "lookup": a word for reading.
    Description, as the server wrote it
    Search fojin's knowledge graph for entities — people, places, works, doctrinal terms — matching `query`.
  • read_passageRead the full content of one fascicle (卷) of a text, with its `urn`.No findings

    Why it is in this group

    • The name "read_passage" says "read": a word for reading.
    Description, as the server wrote it
    Read the full content of one fascicle (卷) of a text, with its `urn`. Use the `text_id`/`juan_num` from a search_corpus hit. Returns the actual canonical text — quote from this, not from memory.
  • resolve_urnResolve a fojin URN (e.g.No findings

    Why it is in this group

    • The name "resolve_urn" says "resolve": a word for reading.
    Description, as the server wrote it
    Resolve a fojin URN (e.g. fojin:cbeta/T0001.1) to a reader URL and confirm it exists in the corpus. Use to verify or dereference a citation.
  • search_corpusSemantic search across fojin's Buddhist corpus (10K+ texts, 30+ langs).No findings

    Why it is in this group

    • The name "search_corpus" says "search": a word for reading.
    Description, as the server wrote it
    Semantic search across fojin's Buddhist corpus (10K+ texts, 30+ langs). Returns the most relevant passages, each with a `urn`, title, snippet and similarity score. `lang` optionally filters by language code (lzh=Classical Chinese, pi=Pali, sa=Sanskrit, bo=Tibetan, en=English).

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 0.4.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http fojin https://mcp.fojin.ai/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__fojin__search_corpus",
      "mcp__fojin__read_passage",
      "mcp__fojin__get_parallels",
      "mcp__fojin__lookup_dictionary",
      "mcp__fojin__lookup_entity",
      "mcp__fojin__resolve_urn"
    ],
    "ask": [
      "mcp__fojin__verify_quote",
      "mcp__fojin__commentaries"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as fojin. Review it before you use it.