Skip to main content

MCP server for the BHt (Biblia Hebraica transcripta) Hebrew Bible database

Project description

bht-mcp

MCP server for the BHt (Biblia Hebraica transcripta) Hebrew Bible database at LMU Munich.

Ask your AI assistant to search, analyze, and compare 489,000+ morphologically analyzed Hebrew Bible tokens โ€” directly from your chat interface.

You:  "Compare the use of root BRสพ (create) in Genesis vs Isaiah"
AI:   [calls bht_search with Wurzel filter for each book, then bht_token_detail
       on selected tokens โ€” returns morphological breakdowns, verbal stems,
       and syntactic contexts from both books]

๐Ÿ‡ฐ๐Ÿ‡ท ํ•œ๊ตญ์–ด


About BHt

BHt (Biblia Hebraica transcripta) is a digital transcription of the Hebrew Bible maintained at LMU Munich under the direction of Prof. Wolfgang Richter. It features:

  • 489,437 tokens with full morphological analysis
  • Richter transcription system โ€” Latin-script phonemic representation (e.g., barฤ(สพ) for ื‘ึธึผืจึธื)
  • 5-class part-of-speech system (Hauptwortart, Nebenwortart, Fรผgwortart, etc.)
  • Syntactic trees at word-level (Wortfรผgungsebene) and sentence-level (Satzfรผgungsebene)
  • Textual criticism annotations with Greek/Masoretic manuscript variant data
  • 8 Sirach manuscript fragments (Ben Sira, from Cairo Genizah and Masada)

Table of Contents


How It Works

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  stdio  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  cache miss  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  MCP Client  โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ†’โ”‚  bht-mcp         โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ†’โ”‚  BHt Website โ”‚
โ”‚  (Claude,    โ”‚ โ†โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”‚  (local process) โ”‚ โ†โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”‚ (LMU Munich) โ”‚
โ”‚  local LLM,  โ”‚         โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ”‚  etc.)       โ”‚         โ”‚  โ”‚ ~/.bht/    โ”‚  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜         โ”‚  โ”‚ cache.db   โ”‚  โ”‚  โ† local SQLite cache
                         โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
                         โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
  • Runs entirely on your machine. No remote server, no API keys, no cost.
  • Progressive caching. The first search for a book fetches all its tokens in one request. After that, searches in the same book are instant โ€” zero network calls.
  • Respectful. Built-in rate limits (1 req/s, 150 HTML pages/day) protect the university server. The tool never bulk-scrapes.

Installation & Setup

Option A: Using uv (recommended)

With uv, you don't install bht-mcp yourself. Your MCP client runs uvx bht-mcp, and uvx automatically downloads it from PyPI, creates an isolated environment, and launches the server โ€” all at runtime.

You only need to install uv itself (one-time):

Platform Command
macOS brew install uv
Windows powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
Linux curl -LsSf https://astral.sh/uv/install.sh | sh

Then go directly to Setting Up Your MCP Client below.

Updating (uv): uvx caches packages locally. To get the latest version:

uv cache clean bht-mcp

Then restart your MCP client.

Option B: Using pip

Install bht-mcp manually, then point your MCP client to it:

pip install bht-mcp

Updating (pip):

pip install --upgrade bht-mcp

Requires Python 3.11+. If Python is not installed: python.org/downloads (Windows: check "Add Python to PATH"). macOS: brew install python. Linux: sudo apt install python3 python3-pip.


Setting Up Your MCP Client

MCP (Model Context Protocol) lets AI assistants use external tools. Choose your client below:

Claude Desktop

Edit your MCP settings (Settings โ†’ Developer โ†’ MCP Servers) and add:

If you installed with uv:

{
  "mcpServers": {
    "bht": {
      "command": "uvx",
      "args": ["bht-mcp"]
    }
  }
}

If you installed with pip:

{
  "mcpServers": {
    "bht": {
      "command": "python",
      "args": ["-m", "bht_mcp"]
    }
  }
}

Claude Code

claude mcp add bht -- uvx bht-mcp

Or with pip:

claude mcp add bht -- python -m bht_mcp

Local LLMs (Open WebUI, llama.cpp, Ollama, etc.)

If your local LLM setup supports MCP, configure it to launch bht-mcp as a stdio subprocess:

With uv:

{
  "mcpServers": {
    "bht": {
      "command": "uvx",
      "args": ["bht-mcp"]
    }
  }
}

With pip:

{
  "mcpServers": {
    "bht": {
      "command": "python",
      "args": ["-m", "bht_mcp"]
    }
  }
}

Note: MCP tool calling requires a model that supports function/tool calling. Most 7B+ instruction-tuned models work (Llama 3, Mistral, Qwen, etc.).

Other MCP-compatible clients

Any client that supports MCP stdio transport can use bht-mcp. Use uvx bht-mcp or python -m bht_mcp as the server command.

After adding, restart your client. You should see 7 BHt tools available.


Research Scenarios

You don't need to know the tool names or parameters โ€” just describe what you want in natural language. The AI figures out which tools to call.

1. Verse analysis โ€” word by word

"Show me Genesis 1:1 word by word with grammatical analysis"

Step 1  AI calls bht_search โ†’ finds 11 tokens in Gen 1:1
Step 2  AI calls bht_token_detail on each token โ†’ retrieves full morphology

Results:

  Token          Part of Speech        Person  Gender  Number  Stem  Root
  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€  โ”€โ”€โ”€โ”€โ”€โ”€  โ”€โ”€โ”€โ”€โ”€โ”€  โ”€โ”€โ”€โ”€โ”€โ”€  โ”€โ”€โ”€โ”€  โ”€โ”€โ”€โ”€
  bห™             Praeposition          โ€”       โ€”       โ€”       โ€”     โ€”
  rฤ“(สพ)ลกฤซt      Substantiv            โ€”       F       S       โ€”     Rสพลก
  barฤ(สพ)        Suffixkonjugation     3       M       S       Qal   BRสพ
  สพรฏlล*hฤซm      Substantiv            Abs     M       P       โ€”     สพL
  สพศงt            Praeposition          โ€”       โ€”       โ€”       โ€”     โ€”
  ha             Artikel               โ€”       โ€”       โ€”       โ€”     โ€”
  ลกamaym         Substantiv            โ€”       M       P       โ€”     ล MM
  wห™             Konjunktion           โ€”       โ€”       โ€”       โ€”     โ€”
  สพศงt            Praeposition          โ€”       โ€”       โ€”       โ€”     โ€”
  ha             Artikel               โ€”       โ€”       โ€”       โ€”     โ€”
  สพarแนฃ           Substantiv            โ€”       F       S       โ€”     สพRแนข

  BHt requests: 1 JSON search + 11 HTML token details = 12 total
  On repeat: 0 (all cached locally)

2. Cross-book root comparison

"Compare the use of root BRสพ (create) in Genesis vs Isaiah"

Step 1  AI calls bht_search with Wurzel=BRสพ, buch=Gen โ†’ 15 tokens
Step 2  AI calls bht_search with Wurzel=BRสพ, buch=Jes โ†’ 22 tokens
Step 3  AI calls bht_token_detail on selected tokens โ†’ compares stems and forms

Results:

  Genesis โ€” 15 occurrences:
    Qal (G):  barฤ(สพ), bห™rล(สพ), ... โ€” "create" in narrative
    Niphal (N): nibrฤสพ โ€” passive "was created"

  Isaiah โ€” 22 occurrences:
    Qal (G):  bลrฤ“(สพ), barฤ(สพ), ... โ€” "create" in prophetic speech
    Piel (D):  appears in Jes 40-55 (Deutero-Isaiah)

  Observation: BRสพ clusters in Gen 1-2 and Jes 40-55, rarely elsewhere.

  First run:  2 JSON searches + 5 HTML token details = 7 total
  If books already cached: 0 JSON + 5 HTML = 5 total
  On full repeat: 0 (all cached)

3. Syntactic structure comparison

"Compare the syntax of Genesis 1:1 and Isaiah 40:1"

Step 1  AI calls bht_sentence_analysis for Gen 1:1 satz=PR
Step 2  AI calls bht_sentence_analysis for Jes 40:1 satz=a
Step 3  AI calls bht_syntax_tree for Gen 1:1 satz=PR โ†’ word-level tree

Results:

  Gen 1:1 PR โ€” Sentence type: V4.1
    Syntagms: P(0 1) 1(1 2) 2(2 9)
    Tree: KOORDV โ†’ [PV โ†’ [PRAEP, ATKV], KONJS โ†’ [KONJ, PV โ†’ [PRAEP, ATKV]]]
    Pattern: Verb-first, coordinated predicate phrases

  Jes 40:1 a โ€” Sentence type: V1.1
    Syntagms: P(0 2)
    Pattern: Imperative, simpler structure

  First run (cold):      2 HTML beleg (resolve) + 2 HTML sentence + 1 HTML tree = 5 total
  After token analysis:  0 (resolve from cache) + 2 + 1 = 3 total
  On full repeat:        0 (all cached)

4. Textual criticism

"Are there manuscript variants in Genesis 1?"

Step 1  AI calls bht_text_annotations for Gen chapter 1

Results:

  Location       Token    Type  Annotation
  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€  โ”€โ”€โ”€โ”€โ”€โ”€โ”€  โ”€โ”€โ”€โ”€  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  Gen 1,7c (3)   kin      TS    als 6d in G; G + 7c text added
  Gen 1,9b (9)   maqลm   T     G reads miqwวŸ, MT reads miqwฤ“-m?
  Gen 1,9d (3)   kin      TS    G + 9e text added
  Gen 1,20c (11) ลกamaym   TS    G + d text added

  Types: TS = text security note, T = text variant
  Manuscripts: G = Greek (Septuagint), MT = Masoretic Text

  First run:  1 HTML page (all annotations for entire chapter in one call)
  On repeat: 0 (cached)

5. Aramaic section detection in Daniel

"Which parts of Daniel are in Aramaic rather than Hebrew?"

Step 1  AI calls bht_field_info for "sprache" โ†’ discovers language codes
Step 2  AI calls bht_search with buch=Dan, sprache=fa:f+ โ†’ Aramaic tokens
Step 3  AI calls bht_search with buch=Dan, sprache=fh:f+ โ†’ Hebrew tokens

Results:

  Language  Chapters        Token count
  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  Hebrew    1:1โ€“2:4a        ~250 tokens
  Aramaic   2:4bโ€“7:28       ~4,800 tokens
  Hebrew    8:1โ€“12:13       ~2,100 tokens

  The AI identifies the well-known bilingual structure of Daniel
  directly from the linguistic data โ€” no manual chapter lookup needed.

  First run:  1 JSON autocomplete + 2 JSON searches (Aramaic + Hebrew) = 3 total
  On repeat: 0 (all cached)

Tool Reference

Tool Purpose BHt Requests
bht_list_books List all 47 books with codes and chapter counts 0
bht_field_info Get valid values for any of 42 search fields 0โ€“1
bht_search Search tokens by location or morphological filters 0โ€“1
bht_token_detail Full morphological analysis of a single token 0โ€“1
bht_syntax_tree Word-level syntactic tree (Wortfรผgungsebene) 0โ€“2
bht_sentence_analysis Sentence-level analysis (Satzfรผgungsebene) 0โ€“2
bht_text_annotations Textual criticism annotations for a chapter 0โ€“1

Typical workflow: bht_list_books โ†’ bht_search โ†’ bht_token_detail โ†’ bht_syntax_tree

Every response includes a quota field showing daily usage:

{
  "data": [...],
  "quota": {"daily_html_used": 12, "daily_html_limit": 150, "daily_html_remaining": 138}
}

Rate Limits

This tool accesses a university research server. Built-in limits protect it:

Limit Value Reason
Request interval 1 req/s Server capacity protection
Daily HTML requests 150/day Token detail, syntax, sentence, annotation pages
Daily JSON requests Unlimited Search API is lightweight

These limits are comparable to a researcher manually browsing the site (typically 25โ€“100 pages/day). The daily limit resets at midnight.

When the limit is reached, cached data remains fully accessible โ€” only new HTML fetches are blocked.


License

Code: MIT

BHt data: CC BY-SA 4.0 (LMU Munich)


๐Ÿ‡ฐ๐Ÿ‡ท ํ•œ๊ตญ์–ด

AI ์–ด์‹œ์Šคํ„ดํŠธ์—๊ฒŒ ํžˆ๋ธŒ๋ฆฌ์–ด ์„ฑ๊ฒฝ 489,000๊ฐœ ์ด์ƒ์˜ ํ˜•ํƒœ๋ก  ๋ถ„์„ ํ† ํฐ์„ ๊ฒ€์ƒ‰, ๋ถ„์„, ๋น„๊ตํ•˜๋„๋ก ์š”์ฒญํ•˜์„ธ์š” โ€” ์ฑ„ํŒ… ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ๋ฐ”๋กœ.

์‚ฌ์šฉ์ž: "์ฐฝ์„ธ๊ธฐ์™€ ์ด์‚ฌ์•ผ์—์„œ ์–ด๊ทผ BRสพ(์ฐฝ์กฐํ•˜๋‹ค)์˜ ์‚ฌ์šฉ์„ ๋น„๊ตํ•ด์ค˜"
AI:    [๊ฐ ์ฑ…์—์„œ ์–ด๊ทผ ํ•„ํ„ฐ๋กœ bht_search๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , ์„ ํƒ๋œ ํ† ํฐ์— ๋Œ€ํ•ด
        bht_token_detail์„ ํ˜ธ์ถœ โ€” ๋‘ ์ฑ…์˜ ํ˜•ํƒœ๋ก  ๋ถ„์„, ๋™์‚ฌ ์–ด๊ฐ„,
        ํ†ต์‚ฌ์  ๋งฅ๋ฝ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค]

BHt ์†Œ๊ฐœ

BHt (Biblia Hebraica transcripta)๋Š” ๋ฎŒํ—จ ๋Œ€ํ•™๊ต(LMU Munich)์—์„œ Wolfgang Richter ๊ต์ˆ˜์˜ ์ง€๋„ ์•„๋ž˜ ๊ด€๋ฆฌ๋˜๋Š” ํžˆ๋ธŒ๋ฆฌ์–ด ์„ฑ๊ฒฝ ๋””์ง€ํ„ธ ์ „์‚ฌ๋ณธ์ž…๋‹ˆ๋‹ค.

  • 489,437๊ฐœ ํ† ํฐ โ€” ์™„์ „ํ•œ ํ˜•ํƒœ๋ก  ๋ถ„์„ ํฌํ•จ
  • Richter ์ „์‚ฌ ์ฒด๊ณ„ โ€” ๋ผํ‹ด ๋ฌธ์ž ๊ธฐ๋ฐ˜ ์Œ์†Œ ํ‘œ๊ธฐ (์˜ˆ: barฤ(สพ) = ื‘ึธึผืจึธื)
  • 5๋ถ„๋ฅ˜ ํ’ˆ์‚ฌ ์ฒด๊ณ„ (Hauptwortart, Nebenwortart, Fรผgwortart ๋“ฑ)
  • ํ†ต์‚ฌ ํŠธ๋ฆฌ โ€” ๋‹จ์–ด ์ˆ˜์ค€(Wortfรผgungsebene) ๋ฐ ๋ฌธ์žฅ ์ˆ˜์ค€(Satzfรผgungsebene)
  • ํ…์ŠคํŠธ ๋น„ํ‰ ์ฃผ์„ โ€” ๊ทธ๋ฆฌ์Šค์–ด/๋งˆ์†Œ๋ผ ์‚ฌ๋ณธ ์ด๋ณธ ๋ฐ์ดํ„ฐ
  • ์‹œ๋ผํฌ ์‚ฌ๋ณธ ๋‹จํŽธ 8์ข… (๋ฒค ์‹œ๋ผ, ์นด์ด๋กœ ๊ฒŒ๋‹ˆ์ž ๋ฐ ๋งˆ์‚ฌ๋‹ค ์ถœํ† )

์ž‘๋™ ๋ฐฉ์‹

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  stdio  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  cache miss  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  MCP Client  โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ†’โ”‚  bht-mcp         โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ†’โ”‚  BHt Website โ”‚
โ”‚  (Claude,    โ”‚ โ†โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”‚  (local process) โ”‚ โ†โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”‚ (LMU Munich) โ”‚
โ”‚  local LLM,  โ”‚         โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ”‚  etc.)       โ”‚         โ”‚  โ”‚ ~/.bht/    โ”‚  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜         โ”‚  โ”‚ cache.db   โ”‚  โ”‚  โ† local SQLite cache
                         โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
                         โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
  • ์™„์ „ํžˆ ๋กœ์ปฌ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์›๊ฒฉ ์„œ๋ฒ„ ์—†์Œ, API ํ‚ค ์—†์Œ, ๋น„์šฉ ์—†์Œ.
  • ์ ์ง„์  ์บ์‹ฑ. ํŠน์ • ์ฑ…์„ ์ฒ˜์Œ ๊ฒ€์ƒ‰ํ•˜๋ฉด ํ•ด๋‹น ์ฑ…์˜ ์ „์ฒด ํ† ํฐ์„ 1ํšŒ ์š”์ฒญ์œผ๋กœ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์ดํ›„ ๊ฐ™์€ ์ฑ…์˜ ๊ฒ€์ƒ‰์€ ์ฆ‰์‹œ โ€” ๋„คํŠธ์›Œํฌ ์š”์ฒญ 0ํšŒ.
  • ์„œ๋ฒ„ ๋ณดํ˜ธ. ๋‚ด์žฅ ์†๋„ ์ œํ•œ(์ดˆ๋‹น 1์š”์ฒญ, ์ผ์ผ HTML 150๊ฑด)์ด ๋Œ€ํ•™ ์„œ๋ฒ„๋ฅผ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋Ÿ‰ ์Šคํฌ๋ž˜ํ•‘์„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์„ค์น˜ ๋ฐ ์„ค์ •

๋ฐฉ๋ฒ• A: uv ์‚ฌ์šฉ (๊ถŒ์žฅ)

uv๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด bht-mcp๋ฅผ ์ง์ ‘ ์„ค์น˜ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. MCP ํด๋ผ์ด์–ธํŠธ๊ฐ€ uvx bht-mcp๋ฅผ ์‹คํ–‰ํ•˜๋ฉด, uvx๊ฐ€ ์ž๋™์œผ๋กœ PyPI์—์„œ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ๊ฒฉ๋ฆฌ๋œ ํ™˜๊ฒฝ์„ ์ƒ์„ฑํ•˜์—ฌ ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

uv๋งŒ ์„ค์น˜ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค (์ตœ์ดˆ 1ํšŒ):

ํ”Œ๋žซํผ ๋ฐฉ๋ฒ•
macOS brew install uv
Windows powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
Linux curl -LsSf https://astral.sh/uv/install.sh | sh

์„ค์น˜ ํ›„ ์•„๋ž˜ MCP ํด๋ผ์ด์–ธํŠธ ์„ค์ •์œผ๋กœ ๋ฐ”๋กœ ์ง„ํ–‰ํ•˜์„ธ์š”.

์—…๋ฐ์ดํŠธ (uv): uvx๋Š” ํŒจํ‚ค์ง€๋ฅผ ๋กœ์ปฌ์— ์บ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ตœ์‹  ๋ฒ„์ „์„ ๋ฐ›์œผ๋ ค๋ฉด:

uv cache clean bht-mcp

์ดํ›„ MCP ํด๋ผ์ด์–ธํŠธ๋ฅผ ์žฌ์‹œ์ž‘ํ•˜์„ธ์š”.

๋ฐฉ๋ฒ• B: pip ์‚ฌ์šฉ

bht-mcp๋ฅผ ์ง์ ‘ ์„ค์น˜ํ•œ ํ›„ MCP ํด๋ผ์ด์–ธํŠธ์—์„œ ์ง€์ •ํ•˜๋Š” ๋ฐฉ์‹:

pip install bht-mcp

์—…๋ฐ์ดํŠธ (pip):

pip install --upgrade bht-mcp

Python 3.11 ์ด์ƒ ํ•„์š”. Python์ด ์—†๋Š” ๊ฒฝ์šฐ: python.org/downloads (Windows: "Add Python to PATH" ์ฒดํฌ). macOS: brew install python. Linux: sudo apt install python3 python3-pip.


MCP ํด๋ผ์ด์–ธํŠธ ์„ค์ •

MCP (Model Context Protocol)๋Š” AI ์–ด์‹œ์Šคํ„ดํŠธ๊ฐ€ ์™ธ๋ถ€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ์•„๋ž˜์—์„œ ์‚ฌ์šฉ ์ค‘์ธ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์„ ํƒํ•˜์„ธ์š”:

Claude Desktop

MCP ์„ค์ •์„ ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค (Settings โ†’ Developer โ†’ MCP Servers):

uv๋กœ ์„ค์น˜ํ•œ ๊ฒฝ์šฐ:

{
  "mcpServers": {
    "bht": {
      "command": "uvx",
      "args": ["bht-mcp"]
    }
  }
}

pip์œผ๋กœ ์„ค์น˜ํ•œ ๊ฒฝ์šฐ:

{
  "mcpServers": {
    "bht": {
      "command": "python",
      "args": ["-m", "bht_mcp"]
    }
  }
}

Claude Code

claude mcp add bht -- uvx bht-mcp

pip ์‚ฌ์šฉ ์‹œ:

claude mcp add bht -- python -m bht_mcp

๋กœ์ปฌ LLM (Open WebUI, llama.cpp, Ollama ๋“ฑ)

๋กœ์ปฌ LLM ํ™˜๊ฒฝ์ด MCP๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒฝ์šฐ, bht-mcp๋ฅผ stdio ์„œ๋ธŒํ”„๋กœ์„ธ์Šค๋กœ ์„ค์ •ํ•˜์„ธ์š”:

uv ์‚ฌ์šฉ:

{
  "mcpServers": {
    "bht": {
      "command": "uvx",
      "args": ["bht-mcp"]
    }
  }
}

pip ์‚ฌ์šฉ:

{
  "mcpServers": {
    "bht": {
      "command": "python",
      "args": ["-m", "bht_mcp"]
    }
  }
}

์ฐธ๊ณ : MCP tool calling์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ•จ์ˆ˜/๋„๊ตฌ ํ˜ธ์ถœ์„ ์ง€์›ํ•˜๋Š” ๋ชจ๋ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ 7B+ instruction-tuned ๋ชจ๋ธ์ด ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค (Llama 3, Mistral, Qwen ๋“ฑ).

๊ธฐํƒ€ MCP ํ˜ธํ™˜ ํด๋ผ์ด์–ธํŠธ

MCP stdio ์ „์†ก์„ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„ ๋ช…๋ น์–ด๋Š” uvx bht-mcp ๋˜๋Š” python -m bht_mcp์ž…๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ํ›„ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์žฌ์‹œ์ž‘ํ•˜๋ฉด 7๊ฐœ์˜ BHt ๋„๊ตฌ๊ฐ€ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.


์—ฐ๊ตฌ ์‹œ๋‚˜๋ฆฌ์˜ค

๋„๊ตฌ ์ด๋ฆ„์ด๋‚˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์•Œ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค โ€” ์›ํ•˜๋Š” ๊ฒƒ์„ ์ž์—ฐ์–ด๋กœ ์„ค๋ช…ํ•˜๋ฉด AI๊ฐ€ ์ ์ ˆํ•œ ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

1. ๊ตฌ์ ˆ ๋ถ„์„ โ€” ๋‹จ์–ด๋ณ„ ๋ฌธ๋ฒ•

"์ฐฝ์„ธ๊ธฐ 1:1์„ ๋‹จ์–ด๋ณ„๋กœ ๋ฌธ๋ฒ• ๋ถ„์„๊ณผ ํ•จ๊ป˜ ๋ณด์—ฌ์ฃผ์„ธ์š”"

๋‹จ๊ณ„ 1  AI๊ฐ€ bht_search ํ˜ธ์ถœ โ†’ Gen 1:1์—์„œ 11๊ฐœ ํ† ํฐ ๋ฐœ๊ฒฌ
๋‹จ๊ณ„ 2  AI๊ฐ€ ๊ฐ ํ† ํฐ์— bht_token_detail ํ˜ธ์ถœ โ†’ ์™„์ „ํ•œ ํ˜•ํƒœ๋ก  ์กฐํšŒ

๊ฒฐ๊ณผ:

  ํ† ํฐ           ํ’ˆ์‚ฌ                  ์ธ์นญ  ์„ฑ    ์ˆ˜    ์–ด๊ฐ„  ์–ด๊ทผ
  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€  โ”€โ”€โ”€โ”€  โ”€โ”€โ”€โ”€  โ”€โ”€โ”€โ”€  โ”€โ”€โ”€โ”€  โ”€โ”€โ”€โ”€
  bห™             ์ „์น˜์‚ฌ(Praeposition)  โ€”     โ€”     โ€”     โ€”     โ€”
  rฤ“(สพ)ลกฤซt      ๋ช…์‚ฌ(Substantiv)      โ€”     F     S     โ€”     Rสพลก
  barฤ(สพ)        ์ ‘๋ฏธํ˜•(Suffixkonj.)   3     M     S     Qal   BRสพ
  สพรฏlล*hฤซm      ๋ช…์‚ฌ(Substantiv)      Abs   M     P     โ€”     สพL
  สพศงt            ์ „์น˜์‚ฌ(Praeposition)  โ€”     โ€”     โ€”     โ€”     โ€”
  ha             ๊ด€์‚ฌ(Artikel)         โ€”     โ€”     โ€”     โ€”     โ€”
  ลกamaym         ๋ช…์‚ฌ(Substantiv)      โ€”     M     P     โ€”     ล MM
  wห™             ์ ‘์†์‚ฌ(Konjunktion)   โ€”     โ€”     โ€”     โ€”     โ€”
  สพศงt            ์ „์น˜์‚ฌ(Praeposition)  โ€”     โ€”     โ€”     โ€”     โ€”
  ha             ๊ด€์‚ฌ(Artikel)         โ€”     โ€”     โ€”     โ€”     โ€”
  สพarแนฃ           ๋ช…์‚ฌ(Substantiv)      โ€”     F     S     โ€”     สพRแนข

  BHt ์š”์ฒญ: JSON ๊ฒ€์ƒ‰ 1ํšŒ + HTML ํ† ํฐ ์ƒ์„ธ 11ํšŒ = ์ด 12ํšŒ
  ๋ฐ˜๋ณต ์‹œ: 0ํšŒ (์ „๋ถ€ ๋กœ์ปฌ ์บ์‹œ)

2. ์ฑ… ๊ฐ„ ์–ด๊ทผ ๋น„๊ต

"์ฐฝ์„ธ๊ธฐ์™€ ์ด์‚ฌ์•ผ์—์„œ ์–ด๊ทผ BRสพ(์ฐฝ์กฐํ•˜๋‹ค)์˜ ์‚ฌ์šฉ์„ ๋น„๊ตํ•ด์ค˜"

๋‹จ๊ณ„ 1  AI๊ฐ€ bht_search (Wurzel=BRสพ, buch=Gen) ํ˜ธ์ถœ โ†’ 15๊ฐœ ํ† ํฐ
๋‹จ๊ณ„ 2  AI๊ฐ€ bht_search (Wurzel=BRสพ, buch=Jes) ํ˜ธ์ถœ โ†’ 22๊ฐœ ํ† ํฐ
๋‹จ๊ณ„ 3  AI๊ฐ€ ์„ ํƒ๋œ ํ† ํฐ์— bht_token_detail ํ˜ธ์ถœ โ†’ ์–ด๊ฐ„๊ณผ ํ˜•ํƒœ ๋น„๊ต

๊ฒฐ๊ณผ:

  ์ฐฝ์„ธ๊ธฐ โ€” 15ํšŒ ์ถœํ˜„:
    ์นผ(Qal, G):  barฤ(สพ), bห™rล(สพ), ... โ€” ์„œ์‚ฌ์—์„œ "์ฐฝ์กฐํ•˜๋‹ค"
    ๋‹ˆํŒ”(Niphal, N): nibrฤสพ โ€” ์ˆ˜๋™ "์ฐฝ์กฐ๋˜๋‹ค"

  ์ด์‚ฌ์•ผ โ€” 22ํšŒ ์ถœํ˜„:
    ์นผ(Qal, G):  bลrฤ“(สพ), barฤ(สพ), ... โ€” ์˜ˆ์–ธ์  ์—ฐ์„ค์—์„œ "์ฐฝ์กฐํ•˜๋‹ค"
    ํ”ผ์—˜(Piel, D): Jes 40-55 (์ œ2์ด์‚ฌ์•ผ)์— ์ถœํ˜„

  ๊ด€์ฐฐ: BRสพ๋Š” Gen 1-2์™€ Jes 40-55์— ์ง‘์ค‘, ๋‹ค๋ฅธ ๊ณณ์—์„œ๋Š” ๋“œ๋ฌพ.

  ์ตœ์ดˆ ์‹คํ–‰: JSON ๊ฒ€์ƒ‰ 2ํšŒ + HTML ํ† ํฐ ์ƒ์„ธ 5ํšŒ = ์ด 7ํšŒ
  ์ฑ…์ด ์ด๋ฏธ ์บ์‹œ๋œ ๊ฒฝ์šฐ: JSON 0ํšŒ + HTML 5ํšŒ = ์ด 5ํšŒ
  ์ „์ฒด ๋ฐ˜๋ณต ์‹œ: 0ํšŒ (์ „๋ถ€ ์บ์‹œ)

3. ํ†ต์‚ฌ ๊ตฌ์กฐ ๋น„๊ต

"์ฐฝ์„ธ๊ธฐ 1:1๊ณผ ์ด์‚ฌ์•ผ 40:1์˜ ํ†ต์‚ฌ ๊ตฌ์กฐ๋ฅผ ๋น„๊ตํ•ด์ฃผ์„ธ์š”"

๋‹จ๊ณ„ 1  AI๊ฐ€ bht_sentence_analysis (Gen 1:1, satz=PR) ํ˜ธ์ถœ
๋‹จ๊ณ„ 2  AI๊ฐ€ bht_sentence_analysis (Jes 40:1, satz=a) ํ˜ธ์ถœ
๋‹จ๊ณ„ 3  AI๊ฐ€ bht_syntax_tree (Gen 1:1, satz=PR) ํ˜ธ์ถœ โ†’ ๋‹จ์–ด ์ˆ˜์ค€ ํŠธ๋ฆฌ

๊ฒฐ๊ณผ:

  Gen 1:1 PR โ€” ๋ฌธ์žฅ ์œ ํ˜•: V4.1
    ํ†ตํ•ฉ์†Œ: P(0 1) 1(1 2) 2(2 9)
    ํŠธ๋ฆฌ: KOORDV โ†’ [PV โ†’ [PRAEP, ATKV], KONJS โ†’ [KONJ, PV โ†’ [PRAEP, ATKV]]]
    ํŒจํ„ด: ๋™์‚ฌ ์„ ํ–‰, ๋“ฑ์œ„ ์ˆ ์–ด๊ตฌ

  Jes 40:1 a โ€” ๋ฌธ์žฅ ์œ ํ˜•: V1.1
    ํ†ตํ•ฉ์†Œ: P(0 2)
    ํŒจํ„ด: ๋ช…๋ นํ˜•, ๋‹จ์ˆœ ๊ตฌ์กฐ

  ์ตœ์ดˆ ์‹คํ–‰ (์ฝœ๋“œ):    HTML beleg 2ํšŒ (ํ•ด์„) + HTML ๋ฌธ์žฅ 2ํšŒ + HTML ํŠธ๋ฆฌ 1ํšŒ = ์ด 5ํšŒ
  ํ† ํฐ ๋ถ„์„ ํ›„:        0ํšŒ (์บ์‹œ์—์„œ ํ•ด์„) + 2 + 1 = ์ด 3ํšŒ
  ์ „์ฒด ๋ฐ˜๋ณต ์‹œ:        0ํšŒ (์ „๋ถ€ ์บ์‹œ)

4. ํ…์ŠคํŠธ ๋น„ํ‰

"์ฐฝ์„ธ๊ธฐ 1์žฅ์— ์‚ฌ๋ณธ ์ด๋ณธ์ด ์žˆ๋‚˜์š”?"

๋‹จ๊ณ„ 1  AI๊ฐ€ bht_text_annotations (Gen, 1์žฅ) ํ˜ธ์ถœ

๊ฒฐ๊ณผ:

  ์œ„์น˜            ํ† ํฐ     ์œ ํ˜•  ์ฃผ์„
  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€  โ”€โ”€โ”€โ”€โ”€โ”€โ”€  โ”€โ”€โ”€โ”€  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  Gen 1,7c (3)    kin      TS    6d๋กœ์„œ G์—; G์— 7c ํ…์ŠคํŠธ ์ถ”๊ฐ€
  Gen 1,9b (9)    maqลm   T     G๋Š” miqwวŸ, MT๋Š” miqwฤ“-m?
  Gen 1,9d (3)    kin      TS    G์— 9e ํ…์ŠคํŠธ ์ถ”๊ฐ€
  Gen 1,20c (11)  ลกamaym   TS    G์— d ํ…์ŠคํŠธ ์ถ”๊ฐ€

  ์œ ํ˜•: TS = ํ…์ŠคํŠธ ํ™•์‹ค์„ฑ ์ฃผ์„, T = ํ…์ŠคํŠธ ์ด๋ณธ
  ์‚ฌ๋ณธ: G = ๊ทธ๋ฆฌ์Šค์–ด(70์ธ์—ญ), MT = ๋งˆ์†Œ๋ผ ๋ณธ๋ฌธ

  ์ตœ์ดˆ ์‹คํ–‰: HTML 1ํšŒ (์žฅ ์ „์ฒด ์ฃผ์„์„ ํ•œ ๋ฒˆ์— ์กฐํšŒ)
  ๋ฐ˜๋ณต ์‹œ: 0ํšŒ (์บ์‹œ)

5. ๋‹ค๋‹ˆ์—˜์„œ ์•„๋žŒ์–ด ๊ตฌ๊ฐ„ ์‹๋ณ„

"๋‹ค๋‹ˆ์—˜์„œ์—์„œ ํžˆ๋ธŒ๋ฆฌ์–ด๊ฐ€ ์•„๋‹Œ ์•„๋žŒ์–ด ๊ตฌ๊ฐ„์€?"

๋‹จ๊ณ„ 1  AI๊ฐ€ bht_field_info ("sprache") ํ˜ธ์ถœ โ†’ ์–ธ์–ด ์ฝ”๋“œ ๋ฐœ๊ฒฌ
๋‹จ๊ณ„ 2  AI๊ฐ€ bht_search (buch=Dan, sprache=fa:f+) ํ˜ธ์ถœ โ†’ ์•„๋žŒ์–ด ํ† ํฐ
๋‹จ๊ณ„ 3  AI๊ฐ€ bht_search (buch=Dan, sprache=fh:f+) ํ˜ธ์ถœ โ†’ ํžˆ๋ธŒ๋ฆฌ์–ด ํ† ํฐ

๊ฒฐ๊ณผ:

  ์–ธ์–ด     ์žฅ               ํ† ํฐ ์ˆ˜
  โ”€โ”€โ”€โ”€โ”€โ”€โ”€  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€   โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  ํžˆ๋ธŒ๋ฆฌ์–ด  1:1โ€“2:4a         ~250๊ฐœ
  ์•„๋žŒ์–ด    2:4bโ€“7:28        ~4,800๊ฐœ
  ํžˆ๋ธŒ๋ฆฌ์–ด  8:1โ€“12:13        ~2,100๊ฐœ

  AI๊ฐ€ ์ž˜ ์•Œ๋ ค์ง„ ๋‹ค๋‹ˆ์—˜์„œ์˜ ์ด์ค‘ ์–ธ์–ด ๊ตฌ์กฐ๋ฅผ ์–ธ์–ดํ•™ ๋ฐ์ดํ„ฐ์—์„œ
  ์ง์ ‘ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค โ€” ์ˆ˜๋™ ์žฅ ์กฐํšŒ ์—†์ด.

  ์ตœ์ดˆ ์‹คํ–‰: JSON ์ž๋™์™„์„ฑ 1ํšŒ + JSON ๊ฒ€์ƒ‰ 2ํšŒ (์•„๋žŒ์–ด + ํžˆ๋ธŒ๋ฆฌ์–ด) = ์ด 3ํšŒ
  ๋ฐ˜๋ณต ์‹œ: 0ํšŒ (์ „๋ถ€ ์บ์‹œ)

๋„๊ตฌ ์ฐธ์กฐ

๋„๊ตฌ ์šฉ๋„ BHt ์š”์ฒญ ์ˆ˜
bht_list_books 47๊ฐœ ์ฑ… ๋ชฉ๋ก (์ฝ”๋“œ์™€ ์žฅ ์ˆ˜ ํฌํ•จ) 0
bht_field_info 42๊ฐœ ๊ฒ€์ƒ‰ ํ•„๋“œ์˜ ์œ ํšจํ•œ ๊ฐ’ ์กฐํšŒ 0โ€“1
bht_search ์œ„์น˜ ๋˜๋Š” ํ˜•ํƒœ๋ก  ํ•„ํ„ฐ๋กœ ํ† ํฐ ๊ฒ€์ƒ‰ 0โ€“1
bht_token_detail ๋‹จ์ผ ํ† ํฐ์˜ ์™„์ „ํ•œ ํ˜•ํƒœ๋ก  ๋ถ„์„ 0โ€“1
bht_syntax_tree ๋‹จ์–ด ์ˆ˜์ค€ ํ†ต์‚ฌ ํŠธ๋ฆฌ (Wortfรผgungsebene) 0โ€“2
bht_sentence_analysis ๋ฌธ์žฅ ์ˆ˜์ค€ ๋ถ„์„ (Satzfรผgungsebene) 0โ€“2
bht_text_annotations ์žฅ ๋‹จ์œ„ ํ…์ŠคํŠธ ๋น„ํ‰ ์ฃผ์„ 0โ€“1

์ผ๋ฐ˜์ ์ธ ์›Œํฌํ”Œ๋กœ์šฐ: bht_list_books โ†’ bht_search โ†’ bht_token_detail โ†’ bht_syntax_tree

๋ชจ๋“  ์‘๋‹ต์— ์ผ์ผ ์‚ฌ์šฉ๋Ÿ‰์„ ๋ณด์—ฌ์ฃผ๋Š” quota ํ•„๋“œ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค:

{
  "data": [...],
  "quota": {"daily_html_used": 12, "daily_html_limit": 150, "daily_html_remaining": 138}
}

์‚ฌ์šฉ ์ œํ•œ

์ด ๋„๊ตฌ๋Š” ๋Œ€ํ•™ ์—ฐ๊ตฌ ์„œ๋ฒ„์— ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค. ๋‚ด์žฅ๋œ ์ œํ•œ์ด ์„œ๋ฒ„๋ฅผ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค:

์ œํ•œ ๊ฐ’ ์ด์œ 
์š”์ฒญ ๊ฐ„๊ฒฉ ์ดˆ๋‹น 1ํšŒ ์„œ๋ฒ„ ์šฉ๋Ÿ‰ ๋ณดํ˜ธ
์ผ์ผ HTML ์š”์ฒญ 150๊ฑด/์ผ ํ† ํฐ ์ƒ์„ธ, ํ†ต์‚ฌ, ๋ฌธ์žฅ, ์ฃผ์„ ํŽ˜์ด์ง€
์ผ์ผ JSON ์š”์ฒญ ๋ฌด์ œํ•œ ๊ฒ€์ƒ‰ API๋Š” ๊ฒฝ๋Ÿ‰

์ด ์ œํ•œ์€ ์—ฐ๊ตฌ์ž๊ฐ€ ์ง์ ‘ ์‚ฌ์ดํŠธ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ์ˆ˜์ค€(๋ณดํ†ต ํ•˜๋ฃจ 25โ€“100 ํŽ˜์ด์ง€)๊ณผ ๋™๋“ฑํ•ฉ๋‹ˆ๋‹ค. ์ผ์ผ ์ œํ•œ์€ ์ž์ •์— ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค.

์ œํ•œ์— ๋„๋‹ฌํ•˜๋ฉด ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ๋Š” ์—ฌ์ „ํžˆ ์™„์ „ํžˆ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค โ€” ์ƒˆ๋กœ์šด HTML ๊ฐ€์ ธ์˜ค๊ธฐ๋งŒ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค.


๋ผ์ด์„ ์Šค

์ฝ”๋“œ: MIT

BHt ๋ฐ์ดํ„ฐ: CC BY-SA 4.0 (LMU Munich)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bht_mcp-0.2.1.tar.gz (36.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bht_mcp-0.2.1-py3-none-any.whl (43.3 kB view details)

Uploaded Python 3

File details

Details for the file bht_mcp-0.2.1.tar.gz.

File metadata

  • Download URL: bht_mcp-0.2.1.tar.gz
  • Upload date:
  • Size: 36.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.3

File hashes

Hashes for bht_mcp-0.2.1.tar.gz
Algorithm Hash digest
SHA256 e2c6f67613d2c98bfe4f01bf28da58380aff715168b74a93bec503cad49a3227
MD5 964611ec6b29b2426386b4f0b32d8cdb
BLAKE2b-256 eee5c7c5af8bbf2790322f0cba9c981f863a9d7f38830a2276b06ea2600a8e4a

See more details on using hashes here.

File details

Details for the file bht_mcp-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: bht_mcp-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 43.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.3

File hashes

Hashes for bht_mcp-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 086906e51b1e14a533bef6ab5cc9e18dc89b2bd85c5e242c39b0c49521d0804d
MD5 d1c6c45413e4df2da4ff0fbe7911937b
BLAKE2b-256 0b2804ac35349925fa29d066553e88039367a50011978b5e6afe631368112d45

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page