bible-mcp
Servidor MCP para la erudición e investigación cristiana: Escrituras, datos de palabras en griego/hebreo, referencias cruzadas, textos patrísticos y búsqueda semántica.
Documentación
bible-mcp
Un servidor MCP para la erudición e investigación cristiana. Sin fines comerciales, con el objetivo de convertirse en un recurso público. Consulta corpus-survey.md para el panorama completo de fuentes y licencias, y ROADMAP.md para la dirección del proyecto.
Qué incluye (v0.12)
| Datos | Fuente | Licencia |
|---|---|---|
| Berean Standard Bible (66 libros) | berean.bible | Dominio público |
| World English Bible, Ecuménica (83 libros, incl. Apócrifos) | ebible.org | Dominio público |
| Septuaginta (traducción de Brenton, 1851) — AT + Apócrifos, incl. Susana/Bel y el Dragón/Epístola de Jeremías como libros separados; Salmos reasignados a la numeración estándar inglesa/KJV (la numeración propia de la LXX diverge en la mayor parte del Salterio — verificado versículo por versículo contra WEB); Jeremías, Daniel-Griego, Éxodo, Job, Ester-Griego y Baruc conservan la estructura nativa de capítulos/versículos de la LXX de Brenton, que difiere de BSB/WEB en estos libros (reordenamiento y/o extensión, no solo numeración) | ebible.org | Dominio público |
Septuaginta, texto griego (edición de Swete, Cambridge 1887–1894) — Génesis hasta Malaquías más Apócrifos, Daniel/Susana/Bel de Teodoción; misma reasignación de Salmos y mismas advertencias de estructura nativa que el texto inglés de Brenton arriba. Nivel de palabra (solo forma superficial, sin lema/Strong/morfología), potencia get_interlinear junto con el AT hebreo/arameo y el NT griego | Open Greek and Latin Project / First1KGreek, vía github.com/nathans/lxx-swete | CC BY-SA 4.0 |
| 613,690 palabras en lengua original: NT griego + AT hebreo/arameo con lemas, Strong, morfología, glosas, dominios semánticos | MACULA (Clear-Bible/Biblica) | CC BY 4.0 |
Léxico Hebreo e Inglés Brown-Driver-Briggs (1906, 9,290 entradas) + Diccionario Hebreo de Strong (1890, revisado, 8,674 entradas) — entradas académicas completas (etimología, divisiones de sentido, citas de versículos) claveadas por número de Strong, incluyendo los homógrafos con letras propios de BDB (p. ej. H2617a "misericordia" vs H2617b "reproche" — palabras genuinamente diferentes, misma ortografía); aparece en word_study junto con la glosa breve existente | OpenScriptures HebrewLexicon | CC BY 4.0 (marcado; el texto subyacente de BDB/Strong es de dominio público) |
| Léxico Manual Griego del Nuevo Testamento de Abbott-Smith (1922, 517 entradas) — mismo tratamiento para palabras griegas del NT | First1KGreek / Open Greek and Latin Project, vía github.com/biblicalhumanities/Abbott-Smith | Dominio público |
| ~345,000 referencias cruzadas clasificadas | openbible.info | CC BY |
| ~4,800 personas/lugares/eventos/grupos + 53,000 enlaces de versículos | Theographic Bible Metadata | CC BY-SA 4.0 |
| Seis clásicos de dominio público: Confesiones de Agustín, Imitación de Cristo, Progreso del Peregrino, Práctica de la Presencia de Dios, Revelaciones de Juliana, Ortodoxia de Chesterton | Project Gutenberg | Dominio público |
| Los Padres Apostólicos, diez obras: 1 y 2 Clemente, Epístola de Bernabé, Policarpo a los Filipenses, Martirio de Policarpo, Epístolas de Ignacio (recensión breve), Martirio de Ignacio, Epístola a Diogneto, Pastor de Hermas, Fragmentos de Papías | ANF (Roberts-Donaldson-Crombie), Project Gutenberg #77576 | Dominio público |
Ireneo: Contra las Herejías, Libros I–V + Fragmentos — 806 secciones abordadas como IREN-AH<book>.<chapter>.<section> para que las citas estándar (AH 3.3.4) resuelvan directamente; 1,598 citas de escritura de nivel 1 | ANF vol. I (Roberts-Rambaut), transcripción de Wikisource | Dominio público |
| Justino Mártir: Primera Apología, Segunda Apología, Diálogo con Trifón, Martirio de Justino — 423 secciones, ~408 citas de nivel 1 | ANF vol. I, transcripción de Wikisource | Dominio público |
| Grafo de citas de nivel 1: citas de escritura extraídas de las notas al pie de los propios traductores en toda la estantería patrística (ver DESIGN.md §4) | — | — |
| Versemap: 988 alineaciones de versículos MT/NA ↔ inglés derivadas empíricamente en 31 libros (Joel 2–4, Malaquías 3–4, Oseas, Isaías 64, costuras de Reyes/Crónicas/Nehemías, 3 Juan, Hechos 19, Apoc 12…), validadas por glosa; más los desplazamientos de los sobrescritos de los Salmos | derivado del corpus | — |
Capa de resultados de investigación (layer='output'): encuestas de corpus de Capa 0 + informes breves de investigación de Capa 2 para alfarero-y-barro, agua viva, desierto — buscables, incrustados, con enlaces draws_on de vuelta a sus referencias fundamentales | generado en el proyecto | — |
| ~112,400 incrustaciones (versículo/ventana/párrafo) para búsqueda semántica e híbrida en cada capa | bge-small-en-v1.5, generado localmente | — |
Todo en un solo archivo SQLite (db/bible.db, ~370MB) con búsqueda de texto completo FTS5. Las obras en prosa se abordan como WORK.chapter.paragraph. Consulta DESIGN.md para la justificación de la arquitectura.
Herramientas
get_passage(reference, version="BSB")— Texto bíblico para una referencia, p. ej.John 3:16,John 3:16-18,Genesis 1. Versiones: BSB, WEB (los Apócrifos requierenversion="WEB").search(query, version="BSB", book="", limit=20)— Búsqueda de texto completo, con derivación y clasificación (BM25). Admite frases entre comillas y AND/OR/NOT, p. ej.faith AND works NOT law.versiontambién acepta cualquier id de obra en prosa. Nota: la derivación combina formas superficiales relacionadas (p. ej. "desierto" también coincide con "desierta") — cita frases exactas o añade términos AND para desambiguar.semantic_search(query, top_k=12, kind="", hybrid=True)— Búsqueda basada en significado en todo el corpus (escritura + prosa), fusionada híbridamente con búsqueda por palabras clave (RRF) por defecto. Encuentra pasajes sobre un tema incluso sin palabras compartidas, p. ej. "auto-vaciamiento divino".kindopcional: versículo | ventana | párrafo.find_similar(reference, top_k=10)— Pasajes más cercanos por incrustación a un versículo o párrafo de prosa dado, en escritura, Apócrifos y clásicos. Potencia el hallazgo de paralelos entre capas del corpus.word_study(query, language="", limit=15)— Estudio de palabras en lengua original por número de Strong (relleno con ceros opcional), lema (con o sin puntuación), transliteración hebrea/aramea (p. ej.miqweh, macrones opcionales) o glosa en inglés. Devuelve conteos de aparición, rango de glosas, distribución por libros, una entrada léxica académica completa cuando está disponible (BDB/Strong's para hebreo, Abbott-Smith para griego — más rica que la glosa, truncada a ~700 caracteres) y versículos de muestra. Las variantes homógrafas con letras (p. ej. H4723 vs H4723a — misma forma escrita, palabra diferente) se muestran juntas.languageopcional: grc | hbo | arc.get_interlinear(reference)— Lengua original palabra por palabra para un versículo o rango corto: forma superficial, lema, Strong, glosa, morfología (AT hebreo/arameo, NT griego). Corregido por Versemap en todos los libros, no solo en los Salmos. Para versículos del AT también muestra el texto superficial griego de la Septuaginta cuando está disponible (sin lema/Strong/morfología en esa fuente).get_cross_references(reference, limit=20)— Referencias cruzadas para un versículo (OpenBible.info, clasificadas por votos de la comunidad), con el texto del destino incluido.get_citations(reference, limit=20)— Dónde un versículo es citado por nombre en el corpus patrístico, extraído de las notas al pie de los propios traductores (nivel 1). Complementa aget_cross_references(escritura→escritura); esto es texto patrístico→escritura. La cobertura es escasa por diseño — un resultado vacío no significa que no esté citado; la búsqueda de texto completosearchdentro de las obras patrísticas es la sonda exhaustiva.get_entity(name, entity_type="")— Busca una persona, lugar, evento o grupo de personas bíblico por nombre (grafo de conocimiento Theographic); devuelve detalles y dónde aparecen.entity_typeopcional: person | place | event | people_group.entities_in_passage(reference)— Personas, lugares y eventos vinculados a un versículo o capítulo, p. ej.Genesis 14.read_work(work, chapter=1, start=1, end=5)— Lee una obra en prosa por rango de párrafos (CONFESSIONS, IMITATION, PILGRIM, PRESENCE, JULIAN, ORTHODOXY, 1CLEMENT, BARNABAS y otras — vercorpus_info()para la lista completa). Usasearch(version=<WORK>)para encontrar pasajes primero.compare_versions(reference)— Un versículo o rango corto en BSB y WEB, lado a lado.corpus_info()— Qué hay en el corpus: documentos, capas, licencias y conteos.
Prompts
El servidor también expone el pipeline de síntesis como prompts de MCP, generados desde .claude/skills/ (la fuente de verdad): corpus_survey(theme) — disciplina de lectura cruda de Capa 0; corpus_composer(theme) — composición de informes breves de investigación de Capa 2. Cualquier cliente MCP que instale bible-mcp obtiene la disciplina incluida con los datos.
Configuración
pip install -r requirements.txt # core: just `mcp`
pip install fastembed numpy # optional semantic tier (semantic_search, find_similar)
python3 scripts/build_db.py # rebuild db from data/sources (optional; db ships built)
python3 scripts/embed.py # regenerate embeddings (optional; ships built; resumable)
La primera consulta semántica descarga el modelo de incrustación (~65MB, una sola vez). Sin fastembed/numpy instalados, todas las herramientas no semánticas funcionan normalmente. Consulta DESIGN.md para las decisiones de arquitectura (elección de modelo, fragmentación, recuperación híbrida).
Claude Desktop / Cowork — añade a la configuración de MCP:
{
"mcpServers": {
"bible-mcp": {
"command": "python3",
"args": ["/path/to/bible-mcp/server.py"]
}
}
}
Estructura
data/sources/ raw acquired sources (immutable; re-derive, never edit)
data/versemap.tsv derived MT/NA <-> English verse alignments
data/additions-*.json prepared incremental ingestions (applied via scripts/ingest_additions.py)
scripts/ schema.sql, lib_refs.py, build_db.py, build_versemap.py, align_splits.py, ingest_additions.py
db/bible.db the built corpus (SQLite + FTS5)
outputs/ synthesis-pipeline artifacts (Layer 0 surveys, Layer 2 briefs, reports)
.claude/skills/ corpus-survey + corpus-composer (pipeline skills; source for MCP prompts)
server.py MCP server (FastMCP, read-only on the db)
Edición pública
Este es un recurso público sin fines comerciales. Las licencias están en capas — las fuentes conservan sus propias licencias (todas PD / CC BY / CC BY-SA); el código es PolyForm Noncommercial 1.0.0; la compilación y los datos derivados (versemap, grafo de citas, incrustaciones, capa de resultados) son CC BY-NC 4.0. Detalles completos: LICENSE.md, atribuciones en NOTICE.md.
Tres formas de usarlo:
- Remoto (sin instalación) — añade el endpoint alojado como conector personalizado en cualquier cliente MCP (Claude: Configuración → Conectores → Añadir conector personalizado):
https://bible-mcp-server.fly.dev/mcp - Local (stdio) — clona, descarga
db/bible.dbde la última Release de GitHub (o reconstruye desdedata/sources/), añade la configuración anterior. - Autoalojado —
Dockerfileincluye el servidor Streamable-HTTP; verDEPLOY.md.
Notas de diseño
- Direccionamiento canónico: referencias estilo OSIS (
Gen.1.1) en todas partes; cada tabla se clavea en ellas. - Procedencia: cada fila de documento lleva fuente, licencia y nivel de licencia (A=libre, B=compartir-igual, C=sin fines comerciales, D=cerrada — somos sin fines comerciales, así que C es utilizable).
- Los 16 versículos "faltantes" de BSB (Mat 17:21, Juan 5:4, Hechos 8:37…) son las omisiones estándar del texto crítico, no errores.
- Versificación:
versemap(todos los libros) +psalm_offsets(sobrescritos) alinean la numeración MT/NA de MACULA al inglés. Ambos derivados empíricamente de los dos testigos propios del corpus y validados por superposición de texto de glosa; el esquema de tabla es compatible con TVTMS para que los datos de STEPBible puedan extenderlo a otras tradiciones (LXX, Vulgata) más adelante. - Ignacio se incluye solo en la recensión breve (media); la recensión larga de ANF es una expansión posterior y duplicaría cada capítulo en la búsqueda.
- La capa de resultados de investigación se genera, está claramente etiquetada (
layer='output') y nunca puede confundirse con fuentes primarias; los enlacesdraws_onvinculan cada artefacto a sus referencias fundamentales. - Siguiente según ROADMAP.md: Ireneo (adquisición de fuentes), shingling de citas de nivel 2 (tres fallos confirmados de índice de notas al pie como fixtures), TVTMS propiamente dicho.