shebanq-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@shebanq-mcpFind all niphal verbs in Exodus 15"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
shebanq-mcp
Ask the Hebrew Bible a linguistic question in plain language and get back two things together: the MQL query and the results. An LLM drafts the query, a local Emdros engine runs it against the BHSA database (the same data behind SHEBANQ), and the server returns both. The query is always shown, so it stays the thing you read, verify, and cite.
This is an MCP server: it plugs into clients like Claude as a set of tools.
Status: early. The core server is built and unit-tested. The Emdros execution path is implemented but exercised only where a built BHSA database is present (those tests skip otherwise). The demo web app and deployment are not done yet. Feedback welcome, especially from people who teach or use MQL.
Why
Querying BHSA today means knowing MQL, the BHSA feature vocabulary, and the SHEBANQ interface. Generative AI can draft a query from a plain-language question, which raises a real worry for scholarship and teaching: if a machine writes the query, does the scholar still learn anything?
This tool takes a position on that question. The translation was never the whole of the work. The scholarly act is judging whether a query faithfully captures a form-to-function question, reading what a result does and does not show, and catching a query that quietly asks the wrong thing. So the design keeps the query visible and central rather than hiding it:
The query is the product, not the answer. Every result carries the exact MQL that produced it. It is reproducible and pastes straight into SHEBANQ to save, share, and cite. Nothing comes back as a black box.
Validation before execution. A query is checked against the BHSA feature catalogue first, so a wrong code like
vs=niphal(the correct code isvs=nif) fails loudly instead of silently returning zero.Honest empty results. Zero matches returns the query and a clear "0 results", so you can tell "the query is wrong" from "the phenomenon is not there".
AI as a way in, not a way around.
Tools
Tool | Purpose |
| Plain-language question to generated MQL plus results |
| Validate and run MQL you already have |
| A BHSA feature's gloss and valid values |
run_mql and lookup_feature need no LLM. search_bhsa drafts the query with
an LLM, with the feature catalogue injected into the prompt.
LLM provider
Translation is isolated behind a Translator interface, so the provider is
swappable. Select it with the LLM_PROVIDER environment variable:
anthropic(default) — drafts MQL with the Anthropic API. NeedsANTHROPIC_API_KEY.none— runs translation-free.search_bhsais disabled and returns an error pointing you atrun_mql. Use this inside an MCP client (Claude can draft the query itself and callrun_mql), so the server makes no external calls and needs no key.
Adding another provider (OpenAI, a local model) is a small adapter: a class with
a translate() method plus a branch in build_translator(). Query quality
varies by model, so use the featured-search regression set to measure any given
model's reliability.
How it works
question
-> LLM drafts MQL (guided by the feature catalogue)
-> validator (reject unknown features/values; reject unparseable MQL)
-> Emdros runner (execute on the local BHSA SQLite database)
-> formatter (verse references, Hebrew, glosses)
-> { mql, result_count, results }Four small, independently testable units: a static feature reference, a
validator, an Emdros runner, and a formatter, wired together behind the MCP
tools. See docs/specs for the design and
docs/superpowers/plans for the implementation plan.
Setup
Install Emdros (provides the
mqlCLI and theemdrosPython binding).Build the database (see Data).
pip install -e ".[dev]"(Python 3.10+).Choose an LLM provider (see LLM provider). For the default, set
ANTHROPIC_API_KEY; or setLLM_PROVIDER=noneto run translation-free.Run:
BHSA_SQLITE=data/bhsa.sqlite3 shebanq-mcp
Data
BHSA version: 2021 (pinned). Download the MQL dump from the
ETCBC/bhsa release assets to data/bhsa.mql,
then build the read-only SQLite database:
mql --backend sqlite3 -d data/bhsa.sqlite3 data/bhsa.mqlData files are gitignored and never committed.
Tests
pytest -q # unit tests, no database needed
BHSA_SQLITE=data/bhsa.sqlite3 pytest -m emdros # database-backed testsEmdros-backed tests skip cleanly when the binding or database is absent. After building the database, confirm the Emdros Python API and pin the featured-search counts:
python scripts/spike_emdros.py data/bhsa.sqlite3then fill in the expected_count values in
tests/fixtures/featured_searches.json
from real runs. Those fixtures are the regression backbone and, later, the demo
gallery content.
Roadmap
Core MCP server: feature reference, validator, Emdros runner, formatter, three tools
Pin featured-search counts against a built BHSA database
Demo web app (static front-end with curated, validated searches)
Deploy: Render Pro Web Service (Docker, Emdros-on-SQLite, data baked in)
Full feature-catalogue generation from the ETCBC feature docs
Credits
Built on the work of the Eep Talstra Centre for Bible and Computer (ETCBC): the BHSA dataset, SHEBANQ, and the Emdros query engine. This project wraps that work; it does not replace it.
License
MIT. The BHSA data is licensed separately by the ETCBC and is not included in this repository.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Jossifresben/shebanq-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server