mcp-databnf
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
data.bnf.fr is the open data service of the Bibliothèque
nationale de France. It publishes the authority records the national library
maintains: the people it catalogues, with their dates, their places, their
languages and their fields of activity; the works they wrote, with the editions
each work was published in; and the links to the copies digitised in Gallica. A
record states whether the library considers it established or still provisional.
This server connects a chat client to that service. You can search for an author
or a work by name, read a record in full, list what an author wrote, list the
editions of a work, and find the digitised copies attached to either. It needs no
API key and no account.
_Version française_
---
Install
**One-click install**
**Claude Code**
**Claude Desktop, Cursor, and any client using the standard config format**
Node 24 or later is required, and no environment variable has to be set.
With Docker
-i keeps stdin open, which is where the protocol travels, and -t is left out
because a TTY rewrites the stream. The container needs outbound HTTPS to
data.bnf.fr, and nothing else: no volume, no port, no credential.
Bundle, without npm
Download mcp-databnf-2.1.2.mcpb from
the latest release and
open it. A client that supports MCP bundles installs it on its own, with no npm
and no configuration file to edit. The bundle carries its dependencies, so
nothing is fetched at install time.
What you can ask
- « Que dit la BnF de Colette ? »
- "List everything Marguerite Duras wrote."
- "Which editions of that work does the library hold?"
- "Are any of them digitised in Gallica?"
- "When was that record last established?"
The ordinary path runs from a search to a record: a row carries an id, and
get_author or get_work reads it.
Tools
| Tool | What it does |
| ---------------- | ------------------------------------------------------------- |
| search_authors | Finds people by name in the authority records. |
| get_author | Reads one person's record in full. |
| search_works | Finds works by title. |
| get_work | Reads one work's record in full. |
| list_works | Lists the works one person is credited with. |
| list_editions | Lists the editions of one work. |
| find_digitised | Finds the copies digitised in Gallica for a person or a work. |
search_authors
Finds people by name in the authority records.
| Argument | Type | Required | What it does |
| -------- | ------------------------------ | -------- | --------------------- |
| name | string, 1 to 200 characters | yes | The name to look for. |
| limit | integer, 1 to 50, default 10 | no | Rows to serve. |
| page | integer, 1 to 100, default 1 | no | Which page of rows. |
**In return:** authors, each carrying id, which get_author, list_works
and find_digitised take; name as the service writes it; label, the
authority heading, usually with the dates; birth_year and death_year, null
where the record states none; role; and source_url. words_searched says
what was actually sent, has_more whether further pages exist, and
index_window_full that the index served everything it will serve for this
search.
get_author
Reads one person's record in full.
| Argument | Type | Required | What it does |
| -------------------- | --------------------------- | -------- | --------------------------------------- |
| author_id | string, 1 to 200 characters | yes | The identifier a row carries. |
| include_depictions | boolean, default false | no | Add the portraits the record points to. |
**In return:** the person with name, label, given_name, family_name,
other_names, birth_date and death_date as published, birth_year and
death_year as numbers, birth_place, death_place,
biographical_information, occupation, languages as ISO 639-2 codes,
countries and fields in the words of the record. A field the record leaves
empty is null.
search_works
Finds works by title.
| Argument | Type | Required | What it does |
| -------- | ------------------------------ | -------- | ----------------------------------- |
| title | string, 1 to 200 characters | yes | The words of the title to look for. |
| limit | integer, 1 to 50, default 10 | no | Rows to serve. |
| page | integer, 1 to 100, default 1 | no | Which page of rows. |
**In return:** works, each carrying id, which get_work, list_editions and
find_digitised take; title; date, the year the record gives the work, as
published; creators; status, reading established or provisional; and
source_url. The envelope carries the same words_searched, has_more and