FLOGVIT.bible

io.github.flogvit由 GitHub 账号 flogvit 发布v1.1.0更新于 Oct 29, 2026

Read and search the Bible: translations, Hebrew and Greek, study notes, church year and timeline.

已验证Streamable HTTP可网页运行网页搜索与抓取知识与记忆

概览

AI 生成的概览

通过 bible.flogvit.com 阅读和检索圣经:开放译本、希伯来文与希腊文原文、交叉引用和研经资料。

可以做什么
  • 并排阅读多个译本的经文,可选显示译者注释,并列出各译本及其许可
  • 按词语或短语检索经文,查找包含某个希伯来文或希腊文词语的所有经文
  • 逐词阅读希伯来文或希腊文原文,获取交叉引用以及整章或整卷的研经资料
  • 查询人物、主题、故事、数字、预言、福音书平行经文和时间线事件
  • 检查一段文字中的圣经引用,并获取挪威教会某日的经课
  • 获取每日经文
适用场景
适合需要助手准确引用经文而非凭记忆作答、比较不同译本或原文语言,或回答关于人物、主题、预言与历史的研经问题时使用。也便于核对讲章或文章中引用的经文出处。
运行要求
远程 Streamable HTTP 端点,无需账号、密钥或身份验证。任何支持远程连接器的 MCP 客户端都可添加该地址。
安装前请注意
所引译文采用 CC BY 4.0 许可,返回的来源行与署名必须随经文一并保留。原文的逐词解释以挪威语撰写,可能需要翻译。该服务器为只读且无状态。

安装

在 SourceWeft 中

  1. 打开 控制台中的 FLOGVIT.bible,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.flogvit%2Fbible/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "flogvit-bible": {
      "type": "http",
      "url": "https://mcp.bible.flogvit.com/mcp"
    }
  }
}

README

bible.flogvit.com MCP server

Lets an AI assistant read and search the Bible on bible.flogvit.com: the open OSNB, OSNN and OSEN translations, the Hebrew and Greek source texts, and the site's study material. Every answer links back to the page it came from.

Address: https://mcp.bible.flogvit.com/mcp — Streamable HTTP, no account, no key.

Connect an assistant

The full guide, for every client and in all eight languages, is bible.flogvit.com/en/mcp. A browser that opens https://mcp.bible.flogvit.com/ gets the short version of it. Both are rendered from ../src/lib/mcp-info.ts and the mcp.* keys in ../src/lib/dictionaries-mcp.ts, and test/landing.test.ts holds the tool list there against tools/list.

Claude (desktop app and claude.ai): Settings → Connectors → Add custom connector. Paste the address, leave authentication empty.

ChatGPT: turn on developer mode under Settings → Apps & Connectors, then create a connector with the address and no authentication.

Claude Code:

sh
claude mcp add --transport http flogvit-bible https://mcp.bible.flogvit.com/mcp

Cursor (~/.cursor/mcp.json):

json
{ "mcpServers": { "flogvit-bible": { "url": "https://mcp.bible.flogvit.com/mcp" } } }

VS Code (.vscode/mcp.json):

json
{ "servers": { "flogvit-bible": { "type": "http", "url": "https://mcp.bible.flogvit.com/mcp" } } }

Then ask as you normally would — "what does John 3:16 say in the Greek?", "where does the Bible talk about forgiveness?", "who was Tamar?". The assistant picks the tools itself.

Without MCP — in a terminal, a script, or an agent that reads skills — the same tools are the command line client flogvit-bible, with a skill and a Claude Code plugin around it: ../cli/README.md.

The tools

ToolWhat it answers
get_passageOne or more passages, side by side in up to five editions, optionally with the translators' notes
search_bibleVerses containing all the given words, in one edition, optionally one book or testament
get_original_textThe Hebrew or Greek of a passage, word by word with explanations (in Norwegian)
search_original_wordEvery verse where a Hebrew or Greek word occurs
get_cross_referencesRelated passages for each verse
get_chapter_studySummary, context, key words, people, themes, stories, prophecies, parallels and timeline for a chapter
get_book_overviewAn introduction to a book
search_people, get_personPeople of the Bible, their family and key events
search_topics, get_topicStories, themes, prophecies and gospel parallels
get_daily_verseToday's verse
check_referencesEvery Bible reference in a piece of text — line, column, the verses, and a problem for one that does not exist
get_church_year_readingsThe Church of Norway's readings for a Sunday or feast day, by date or by the day's name (Norwegian, or English for the major feasts), optionally quoted
get_timelineTimeline events for a period, a span of years, or a person or place named in them; the Bible's timeline or the world's alongside it
get_propheciesProphecies made or fulfilled in a passage, or in a category, with their fulfilment and optionally both texts
get_storyA Bible story by name, where it is told, and the text
get_numberWhat a number means in the Bible and where it occurs; with no number, every number that has an entry
get_gospel_parallelsThe gospel parallels that cover a passage, every Gospel's passage side by side, optionally quoted one after the other
list_editionsThe editions and their licences
list_verse_mappingsThe 1158 verse numberings (KVN mappings) the mapping argument takes, found by edition name or language

References are read in English and Norwegian style alike — John 3:16-18, Joh 3,16.18, 1 Cor 13:4-7, Gen 1:1-2:3, several separated by ; — and book names in all eight site languages, plus the Norwegian letter names («Romerbrevet»).

Verse numbering. Every tool that takes or gives a verse reference has a mapping argument: an id from list_verse_mappings (english_kj, dnb2024_nb, …) or a short name (kjv, dnb2024). A reference is read in that numbering and the answer is numbered in it, so "Mal 4:5" with kjv is osnb's Malachi 3:23. The tools do no remapping of their own: a reference goes through mapChapter(), as /api/chapter?mapping= does, and an osnb address comes out through osnbToMapping(), the cross mapping /api/mappings/kvn/:id builds its verseMap from (src/lib/verse-mapper.ts). Unlike the API, which only knows the 13 named numberings, the MCP takes any of the 1158 mapping files. That is why the caches in verse-mapper.ts have a cap (32).

Quoted Bible text carries its source line. The translations are CC BY 4.0, and the attribution has to follow the text wherever the assistant puts it.

Releasing a new version

Every change a client can see — a tool added or removed, an argument, a description — is a release, and the directories that list the server have to follow it. They do not all get their data the same way:

DirectoryWhere its data comes fromWhat a release needs
MCP Registryserver.json, published by uspublish the new version
mcptry.comname, description and version copied from the registry every 30 minutes; the tool list from its own scheduled tools/list check of the live servernothing to submit — it follows the registry and the server
Glama, PulseMCPthe registrynothing
mcpservers.orga form submitted by hand once; the page text is a copy of websiteUrl (https://bible.flogvit.com/en/mcp)press Request update on the listing (no login, one click, sent at once) after the site is out
  1. In the PR that changes the tools, raise the version — SERVER_VERSION in src/server.ts and version in server.json, which test/landing.test.ts holds equal. The registry never accepts the same version twice. A new tool or argument is a minor version (1.1.0 → 1.2.0); a removed tool or argument a major one. Change description in server.json too if what the server does has changed: it is what every directory shows, and at most 100 characters.
  2. Merge. The orchestra's deployer rolls out bibel and bibel-mcp from the same commit.
  3. After the rollout, publish to the registry:
    sh
    cd mcp && bun --env-file=../.env scripts/listings.ts publish
    It refuses while the live server still runs another version or other tools, so it cannot announce what is not out. It logs in with gh auth token (gh must be logged in as flogvit; the namespace is io.github.flogvit) and needs nothing installed.
  4. Press Request update on https://mcpservers.org/servers/bible-flogvit-com-en-mcp. It is anonymous and takes effect at once, so press it only after the site is out — pressed earlier, they re-read the old page. Their review takes up to two weeks. The short description there is the one submitted in the form; whether Request update refreshes it too is not known. To change it, email [email protected].
  5. Check, about 30 minutes later:
    sh
    cd mcp && bun --env-file=../.env scripts/listings.ts check
    Every line should say ok. mcptry tools follows mcptry's own schedule and can lag; "Connect live" on its page refreshes it. mcpservers.org sits behind a Cloudflare check and cannot be read by the script: open the page and see that the tool list matches.

Where it is listed, and how to take it down

The namespace is GitHub (io.github.flogvit/…), not DNS (com.flogvit/…): flogvit.com's DNS is edited by hand at Domeneshop, and a GitHub login is something a script can do.

WhereStatus (2026-10-26)Take it down
MCP Registrypublished; the current version is what scripts/listings.ts check reportsmcp-publisher status --status deleted --all-versions --message "<why>" io.github.flogvit/bible (brew install mcp-publisher, mcp-publisher login github --token "$(gh auth token)") — hides it; --status active brings it back. The registry never deletes metadata.
Glamalisted, read from the registrygoes with the registry entry
PulseMCPreads the registry by itself (its own form is closed)goes with the registry entry
mcptry.comlisted, read from the registry; checks the live server on a schedulegoes with the registry entry
mcp.sosubmitted: chatmcp/mcpso#6153close the issue and ask there
mcpservers.orglisted (submitted through the free form)email [email protected]
awesome-remote-mcp-serversPR punkpeye/awesome-remote-mcp-servers#2991, from the fork flogvit/awesome-remote-mcp-serversclose the PR; once merged, a PR removing the three lines. Remote-only servers go in this list, not in awesome-mcp-servers — its CONTRIBUTING says so.
Smitherynot submitted — needs a login as flogvitdelete the server in Smithery's settings
cursor.directorynot submitted — needs a loginremove it there
Claude's connector directorynot submitted — only a Pro/Max/Team account can submit, at claude.ai/directory/manage → Submit new → MCP connectorremove the listing in the same portal

The three that are not submitted need nothing but the login: the address, the description and every field Anthropic's form asks for (one-liner, description, documentation and privacy URLs, support contact, use cases, example prompts) are written out in issue #157.

What each one got, and when, is in issue #157 on GitHub.

The guide page is /mcp in ../src/routes/pages/mcp.tsx. Removing it means removing the route, the footer link in ../src/views/layout.tsx, /mcp in ../src/lib/sitemap-paths.ts and test/pages.ts, and the pointer in llms.txt (../src/routes/seo.ts) — then deploying bibel.

Run it locally

Needs the local database the site uses (../.env, DB_PORT=3326).

sh
cd mcpbun installbun run dev            # http://localhost:8080/mcp

Try it with the MCP Inspector (npx @modelcontextprotocol/inspector, transport Streamable HTTP, URL http://localhost:8080/mcp), or by hand:

sh
curl -s -X POST localhost:8080/mcp \  -H 'content-type: application/json' -H 'accept: application/json, text/event-stream' \  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_passage","arguments":{"reference":"John 3:16"}}}'

GET /healthz checks that the database user can read every content table and reads John 3:16: 200 with the verse, or 503 with the reason — a missing grant is named.

Tests

sh
cd mcp && bun run test && bun run typecheck

test/server.test.ts calls every tool over HTTP against the local database and checks that each answer links only to localised pages on bible.flogvit.com (or the sources the licence names) and never shows the site's [ref:…] markup. test/grants.test.ts creates a local MySQL user with exactly the grants the server gets in production, runs every tool as that user, and checks that the user tables refuse it — a tool that needs a table outside the grants fails there — and that /healthz names a table whose grant is revoked. test/books.test.ts checks that every book name and abbreviation the site shows, in every language, finds its own book. test/find-references.test.ts finds every book by every name inside a sentence, and its last verse as the last. test/cli.test.ts runs the command line client (../cli/) as its own program, with node and bun, against a listening server. test/lookups.test.ts holds the six direct lookups to every row of their tables. test/mapping.test.ts holds mapping to mapChapter() over every chapter where the King James numbering differs from osnb, plus Malachi 4, cross-references in and out, and check_references. test/tool-quality.test.ts reads tools/list and fails on a tool without a title, a description or all four annotation hints, an argument or output field without a description, an optional argument that does not say its default, or an allowed value its description does not name — what a client, and mcptry.com's Tool quality score, read before calling anything.

bibel's own bun test in the repo root does not run these (bunfig.toml): this package has its own dependencies.

How it is built

  • Its own package, its own image. @modelcontextprotocol/sdk and its dependencies live here and never reach the site's image. The image is built from the repo root (docker build -f mcp/Dockerfile .) because the server reads the database through the site's own getters in src/lib/ — an answer here is the page there.
  • The image carries the vendored @free-bible/kvn (kvn-package/, 109 MB of mapping files), for the verse numberings. Stage it first — bun run oppsett in bibel, which bibel's deploy does before it builds — or the build stops at the COPY. test/image.test.ts follows every import from src/index.ts and fails when the image would lack a file or a package; the tests themselves cannot see it, since they resolve through bibel's own node_modules.
  • Its own database user, read-only on content. src/grants.ts grants SELECT on the tables the import owns (CONTENT_TABLES) and nothing else, so users' notes, manuscripts and shares are out of reach.
  • Stateless. One MCP server per request; any request can land on any process.
  • A global cap, not a per-IP one. Claude and ChatGPT call connectors from their own servers, so one IP is many users. Over the cap the server answers 503 with Retry-After instead of queueing without end. The command line client is the one caller it can tell apart, and the one most likely to come in a loop, so it may hold only MCP_MAX_CONCURRENT_CLI of the slots.

Configuration

VariableDefault
PORT8080
DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_NAMEas the sitethe database user should have only grantStatements()
DB_TLSoff1 connects over TLS — for a database user that is refused in plain text
DB_POOL_MAX5
MCP_MAX_CONCURRENT4requests served at once
MCP_MAX_CONCURRENT_CLI2of those, how many the command line client may hold (User-Agent: flogvit-bible-cli/…)

bun scripts/grants.ts <database> prints the GRANT statements for the database user. They are derived from CONTENT_TABLES, but applied only when someone runs them: when the import gets a new content table, run them again as the database admin. Until then /healthz answers 503 and names the table.

来源:mcp/README.md,提交 50395b1

工具

21

list_editions

List Bible editions

The Bible editions available, with language and licence. OSNB (Norwegian Bokmål), OSNN (Norwegian Nynorsk) and OSEN (English) are open translations made by the free-bible project directly from the Hebrew and Greek; SBLGNT (Greek New Testament) and Tanach (Hebrew Old Testament, Leningrad Codex) are the source texts.

无需输入参数。

list_verse_mappings

List verse numberings

The verse numberings (KVN mappings) the tools can read references in and number answers in, for the mapping argument of get_passage, get_original_text, get_cross_references, check_references and others. Bible editions number some verses differently — whether a psalm heading is a verse, where a chapter breaks — and a reference copied from one edition can point at another verse in the site's own numbering (osnb). Find the id by the edition's name or language, e.g. "king james", "dnb2024", "german", "swahili".

输入参数query

get_passage

Read a Bible passage

Returns the text of one or more passages, side by side in the requested editions, with a link to the chapter on bible.flogvit.com. Use include_notes for the translators' footnotes (translation choices, Greek/Hebrew linguistics, textual criticism, history, theology) and alternative renderings.

输入参数mappingeditionslanguagereference必填include_notes

search_bible

Search the Bible text

Finds verses containing ALL the given words in one edition. Words match as substrings, so a stem finds its forms ("forgiv" finds forgive, forgiven, forgiveness). Put a phrase in double quotes to match it exactly. Search the edition in the language of the words: osen for English, osnb/osnn for Norwegian, sblgnt/tanach for Greek/Hebrew spellings.

输入参数booklimitquery必填offseteditionmappinglanguagetestament

get_original_text

Hebrew or Greek source text

The Hebrew (Old Testament, Leningrad Codex) or Greek (New Testament, SBLGNT) text of a passage, optionally word by word with an explanation of each word. The word explanations are written in Norwegian; translate them for the user when needed.

输入参数mappinglanguagereference必填word_by_word

search_original_word

Find a Hebrew or Greek word

Finds every verse where a Hebrew or Greek word occurs, ignoring accents and cantillation (e.g. ἀγάπη, λόγος, חֶסֶד). Returns the source text and the translation side by side.

输入参数word必填limitoffseteditionmappinglanguage

get_cross_references

Cross-references

Other passages that relate to each verse of a passage, with a short note on how. Read them with get_passage (several references in one call, separated by ";").

输入参数mappinglanguagereference必填

get_chapter_study

Study notes for a chapter

Everything bible.flogvit.com has about one chapter: summary, historical context, key words, the people in it, themes, stories, prophecies, gospel parallels and timeline events. Give a chapter ("Rom 8"); verses are ignored.

输入参数mappinglanguagereference必填

get_book_overview

Introduction to a book

An introduction to a whole book of the Bible: author, date, audience, structure and main themes.

输入参数book必填language

search_people

Find people in the Bible

Finds people by name or by what is said about them ("king Judah", "prophetess"). Returns ids for get_person.

输入参数query必填language

get_person

A person in the Bible

One person: summary, family, related people and key events with the passages where they happen.

输入参数id必填mappinglanguage

search_topics

Find stories, themes and prophecies

Searches the study material: Bible stories (e.g. "prodigal son"), themes (e.g. "forgiveness"), prophecies and their fulfilment, gospel parallels and timeline events. Returns ids for get_topic.

输入参数query必填language

get_topic

A story, theme, prophecy or gospel parallel

The full entry for an id from search_topics or get_chapter_study, with the passages it is built on.

输入参数id必填kind必填mappinglanguage

get_daily_verse

Verse of the day

Today's verse on bible.flogvit.com, with a short note.

输入参数editionmappinglanguage

check_references

Check the Bible references in a text

Finds every Bible reference in a piece of running text — a sermon, a manuscript, an article — and says for each one where it stands (line and column), whether it exists, and what the verses say, so a quotation can be compared with the text it cites. A reference that points past the end of a chapter or book is reported as a problem. Book names must be capitalised, as in text written for a reader.

输入参数text必填editionmappinglanguagefirst_lineinclude_text

get_church_year_readings

Readings for a Sunday or feast day

The Bible readings the Church of Norway (Den norske kirke) appoints for a Sunday or feast day, from the lectionary bible.flogvit.com shows: each reading with its title and passage (alternatives marked "or"), the year's text series, and what the day is about. Give a date, a day's name, or nothing for the next day with readings. The lectionary runs from Advent 2025 to the end of 2028. Day names and reading titles are in Norwegian; translate them for the user when needed.

输入参数datenameeditionmappinglanguageinclude_text

get_timeline

The Bible timeline

Events in the order they happened, with year, description and the passages they are told in: for a period ("the exile"), a span of years, or events that mention a person or place. Called with no arguments, it lists the periods with their years. Years before Christ are negative. The world timeline gives what happened in the world around at the same time.

输入参数queryperiodmappingto_yearlanguagetimelinefrom_year

get_prophecies

Prophecies and their fulfilment

Prophecies in the Bible with the passage that makes them, the passages that fulfil them, and an explanation: those made or fulfilled in a passage ("Isa 53", "Matt 2"), those in a category, or all of them by category when called with no arguments.

输入参数editionmappingcategorylanguagereferenceinclude_text

get_story

A Bible story

A Bible story by its name: what happens, where it is told, and the text itself, e.g. "The Prodigal Son", "David and Goliath", "Jonah". Names in English and Norwegian both work. Other stories the name could mean are listed with their ids.

输入参数name必填editionmappinglanguageinclude_text

get_number

A number in the Bible

What a number means in the Bible (e.g. 7, 12, 40, 666) and every passage where it carries that meaning. Called with no number, it lists every number that has an entry, with its meaning.

输入参数numbermappinglanguage

get_gospel_parallels

Gospel parallels

The same event as Matthew, Mark, Luke and John each tell it: the parallels that cover a passage, with every Gospel's passage side by side and, if asked, each text in turn. Called with no reference, it lists all the parallels by section.

输入参数editionmappinglanguagereferenceinclude_text

版本历史

2
  1. v1.1.0最新Oct 29, 2026
  2. v1.0.0Oct 26, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。