io.github.smeet666/mcp-databnf
NPM · MCP-DATABNF · 2 COMPONENTS · SCANNED AUG 13
Search the BnF open catalogue: authors, works, editions and links to what is digitised.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 30 of 95 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to smeet666/mcp-databnf). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 3 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability57
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2661 tokens (~380/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management17
- Stability observed for 5 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage86
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 53% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · mcp-databnf
claude mcp add smeet666-mcp-databnf -- npx -y mcp-databnf
codex mcp add smeet666-mcp-databnf -- npx -y mcp-databnf
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"smeet666-mcp-databnf": {
"type": "local",
"command": [
"npx",
"-y",
"mcp-databnf"
],
"enabled": true
}
}
} openclaw mcp add smeet666-mcp-databnf --command npx --arg -y --arg mcp-databnf
mcp_servers:
smeet666-mcp-databnf:
command: "npx"
args: ["-y", "mcp-databnf"] {
"mcpServers": {
"smeet666-mcp-databnf": {
"command": "npx",
"args": [
"-y",
"mcp-databnf"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 13 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.
- 11 Aug 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 9 Aug 26 −1
- Schema quality: 302 → 380 ▼ functional
- Stability: unverified → 0.03 ▲ functional
- Package version: 1.0.1 → 1.1.0 functional
- 8 Aug 26 76
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 13 Aug 2026 · Analysed npm/mcp-databnf@1.1.0
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | npm |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | smeet666/mcp-databnf |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/smeet666/mcp-databnf/.github/workflows/publish.yml@refs/tags/v1.1.0 |
| Rekor log index | 2397478328 |
| Predicate type | https://slsa.dev/provenance/v1 |
| Subject digest | sha512:8170386d08e118cc109961b9ca2a749a3fd588badb1e2d5df30a553c3392be93b5dc59d3f419e361ad7a99f48b2628318aca7b84c5dbee585dc65a3cf |
Dependencies 95 packages
| Packages resolved | 95 |
|---|---|
| Stale | 30 |
| Tree resolution | Complete |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
find_digitised Gather the digitised documents attached to a record ~340
Gather the digitised documents the Bibliothèque nationale de France catalogue attaches to one person or one work, and return them as links. Give the identifier of either; the tool asks the catalogue what kind of record it is and follows the right path. For a work it walks the editions; for a person it takes the images on the record and the digitised editions of the works they are credited with. The 'kind' returned is what the catalogue types the record as. Every result is a link for someone to open. This server reads the BnF catalogue and never requests gallica.bnf.fr, so it reports nothing about what is at the other end: not whether the document opens, not what it contains, not on what terms it may be reused. It returns links and nothing else: no publisher, no date, no ISBN. Use list_editions when which edition a copy belongs to matters. A 'depiction' illustrates a record and can be a page that merely mentions the subject. A 'reproduction' is an edition digitised. An 'ocr' link names a machine-read text of a document, which this server does not fetch.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | A person or work identifier, such as 'cb119219976' or 'cb11970626n'. The argument is named 'id' rather than 'work_id' or 'author_id' because it takes either. |
| kind | string | – | What you expect the identifier to name. The catalogue is asked either way, and a kind it contradicts is refused rather than followed. 'auto' states no expectation. |
| limit | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| has_more | boolean | yes | – |
| id | string | yes | – |
| kind | string | yes | What the catalogue types this record as. |
| links | array | yes | – |
| links_returned_by_role | object | yes | How many of the links in this answer carry each role. These count the links returned here, which is neither a count of documents nor a count of what the catalogue attaches: several links can name one… |
| notes | array | yes | – |
| retrieved_at | string | yes | When these metadata were read from data.bnf.fr, as an ISO 8601 instant. The BnF licence asks for this date to be stated wherever the metadata are shown, so repeat it alongside the source. |
No examples provided.
get_author Read a person's record ~300
Read one person's record in the Bibliothèque nationale de France authority file, by the identifier search_authors returns. It carries the dates and places of birth and death, the occupation the record names, the language and country it associates with the person, the field of activity with its Dewey class, and the addresses for the same person in VIAF, IdRef, DBpedia, Wikidata and ISNI. It carries no biography. The field the BnF calls biographical information is a job title on most records and a single word on many, so quote it as what the catalogue states and do not build a life story out of it. It lists no work. list_works walks from this record to the works the catalogue names the person the creator of, and states what that link does and does not reach. 'depictions' are images data.bnf.fr attaches to the person. They are links for a person to open; this server does not read them, and an image can be a page that mentions the person rather than a portrait of them.
| Name | Type | Req | Description |
|---|---|---|---|
| author_id | string | yes | The identifier from search_authors, such as 'cb119219976'. A full data.bnf.fr address is accepted too. |
| include_depictions | boolean | – | Include the images data.bnf.fr attaches to the person. A well-known person can carry dozens, so they are left out by default. find_digitised gathers them with everything else. |
| Name | Type | Req | Description |
|---|---|---|---|
| author | object | yes | – |
| depiction_count | integer | yes | Images on Gallica that the record points at, counted whether or not they were returned. An illustration the record holds elsewhere is not counted, because this server describes Gallica documents and… |
| depictions | array | – | – |
| notes | array | yes | – |
| retrieved_at | string | yes | When these metadata were read from data.bnf.fr, as an ISO 8601 instant. The BnF licence asks for this date to be stated wherever the metadata are shown, so repeat it alongside the source. |
No examples provided.
get_work Read a work's record ~270
Read one work's record in the Bibliothèque nationale de France catalogue, by the identifier search_works returns. It carries the title, everyone the record credits, the date the BnF gives the work, its language, its form and its subject with the Dewey class. 'forms' holds the work-form vocabulary's own terms, which carry no label in this dataset, so some read as words and some do not. A record stating none has a form the catalogue does not state. 'status' says whether the record is established or provisional, and 'status_statement' repeats what the catalogue itself states. A provisional identifier can change, so cite an established one where there is a choice. 'expression_count' counts the expressions the record links, which is not a count of published editions: use list_editions for those.
| Name | Type | Req | Description |
|---|---|---|---|
| include_depictions | boolean | – | Include the images data.bnf.fr attaches to the work. A well-known work can carry dozens, so they are left out by default. find_digitised gathers them alongside the digitised editions. |
| work_id | string | yes | The identifier from search_works, such as 'cb11970626n' or 'temp-work/22d7f68c1a4bdd081ad7ca791fd3b730'. |
| Name | Type | Req | Description |
|---|---|---|---|
| depiction_count | integer | yes | Images on Gallica that the record points at, counted whether or not they were returned. |
| depictions | array | – | – |
| notes | array | yes | – |
| retrieved_at | string | yes | When these metadata were read from data.bnf.fr, as an ISO 8601 instant. The BnF licence asks for this date to be stated wherever the metadata are shown, so repeat it alongside the source. |
| work | object | yes | – |
No examples provided.
list_editions List the editions of a work ~182
List the published editions of one work in the Bibliothèque nationale de France catalogue, by the identifier search_works or get_work returns. Each row carries the publisher, the place, the year, the edition statement, the extent in the words of the record, the ISBN when there is one, and the record in the BnF general catalogue. An edition that has been digitised carries a link under 'digitised'. That link says a copy exists at that address; this server never opens it, so it cannot say whether the document is readable, complete, or free to reuse. Rows are ordered by the address the catalogue gives each edition, which is neither by date nor by importance.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| page | integer | – | – |
| work_id | string | yes | The work identifier, such as 'cb11970626n'. |
| Name | Type | Req | Description |
|---|---|---|---|
| digitised_count | integer | yes | Editions on this page carrying at least one link. |
| editions | array | yes | – |
| has_more | boolean | yes | – |
| notes | array | yes | – |
| page | integer | yes | – |
| retrieved_at | string | yes | When these metadata were read from data.bnf.fr, as an ISO 8601 instant. The BnF licence asks for this date to be stated wherever the metadata are shown, so repeat it alongside the source. |
| work_id | string | yes | – |
No examples provided.
list_works List the works a person is credited with ~302
List the works the Bibliothèque nationale de France catalogue names one person the creator of, by the identifier search_authors returns. This is the tool for 'what did this person write'. Each row carries the title, the date the record gives the work, the form codes the catalogue points at, whether the record is established or provisional, and the identifier get_work, list_editions and find_digitised take. It is not a bibliography. It reports one link the catalogue holds, and the catalogue credits a person on a record in other ways and holds editions whose work it has never established, so a work missing here is not a work the person did not write. The form codes are the work-form vocabulary's own terms and carry no label in this dataset, so some read as words and some do not. A work stating no code has a form the catalogue does not state, so keeping the rows carrying one code finds the works that declare it and never all the works of that form. Rows are ordered by the address the catalogue gives each work, which is neither chronological nor an order of importance. No total is reported, because the catalogue counts nothing here and a count would read as a measure of what the person wrote.
| Name | Type | Req | Description |
|---|---|---|---|
| author_id | string | yes | The person identifier from search_authors, such as 'cb119219976'. A full data.bnf.fr address is accepted too. |
| limit | integer | – | – |
| page | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| author_id | string | yes | – |
| has_more | boolean | yes | – |
| notes | array | yes | – |
| page | integer | yes | – |
| retrieved_at | string | yes | When these metadata were read from data.bnf.fr, as an ISO 8601 instant. The BnF licence asks for this date to be stated wherever the metadata are shown, so repeat it alongside the source. |
| works | array | yes | – |
No examples provided.
search_authors Find a person in the BnF authority file ~357
Find a person in the Bibliothèque nationale de France authority file by name, and get the identifier the other tools take. This matches the name the BnF records, so it takes a surname, a full name or both names in either order. It does not read biographies, so it cannot find a person from what they wrote or what they did. It reads the person records and nothing else: an organisation, a conference or a place is outside it, and an answer holding no row says nothing about those. The match is letter for letter, so a name written with other accents or under another transliteration is a different search: try the spellings a library would use before concluding the BnF holds nobody of that name. Several rows can carry one name: the BnF keeps more than one authority record for some people, and many people share a name. Read 'birth_year', 'death_year' and 'role' to tell them apart, and show the caller the choice rather than picking one. Rows come back ordered by the address of the record, which is not an order of relevance. That order is the one the pages are cut along, so paging through a search reaches every match once. One search reads a fixed window of the index. 'index_window_full' says whether that window came back full: when it did, names sit past what was read, 'has_more' being false says where the reading stopped, and another reading of the same search can bring back other rows. Narrow the name to reach further.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| name | string | yes | The person's name, such as 'Rimbaud' or 'Arthur Rimbaud'. |
| page | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| authors | array | yes | – |
| has_more | boolean | yes | Whether the endpoint held at least one further row beyond this page, within the window the search read off the index. Read it alongside 'index_window_full': false on a full window says where the read… |
| index_window_full | – | yes | Whether the fixed window this search reads off the index came back full. True means records carrying these words sit past what was read, so the rows here are a part of the matches and another reading… |
| name | string | yes | The name asked for. |
| notes | array | yes | – |
| page | integer | yes | – |
| retrieved_at | string | yes | When these metadata were read from data.bnf.fr, as an ISO 8601 instant. The BnF licence asks for this date to be stated wherever the metadata are shown, so repeat it alongside the source. |
| words_searched | array | yes | The terms the index required, each of which has to appear in the name. A word is cut at an apostrophe and at a hyphen before the index sees it, so a name written as one word can appear here as two, a… |
No examples provided.
search_works Find a work by its title ~339
Find a work in the Bibliothèque nationale de France catalogue by words in its title, and get the identifier get_work and list_editions take. A row matches when its title carries every word given. The index returns no measure of how well a row matches, so the rows are ordered by the address of the record and the work a person would call the obvious answer can sit anywhere in the list or on a later page. A study of a book carries the book's title, so a search for a famous title returns the criticism alongside the work. Read 'creators' to tell them apart. This reads titles and nothing else. Searching a person's name returns the works written about them, whose creators are their critics; list_works is what walks from a person to the works the catalogue names them the creator of. 'status' says whether the BnF has established the work as a record of its own or holds it provisionally under a title it has catalogued. One search reads a fixed window of the index, and that window is read before the works are told apart from everything else the index holds, so even a short list can rest on a full one. 'index_window_full' says which: when it is true, titles sit past what was read, 'has_more' being false says where the reading stopped, and another reading of the same search can bring back other rows. Add a word to the title to reach further.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| page | integer | – | – |
| title | string | yes | Words from the title, such as 'saison enfer'. Every word given has to appear. |
| Name | Type | Req | Description |
|---|---|---|---|
| has_more | boolean | yes | Whether the endpoint held at least one further row beyond this page, within the window the search read off the index. Read it alongside 'index_window_full': false on a full window says where the read… |
| index_window_full | – | yes | Whether the fixed window this search reads off the index came back full. The window is read before the works are separated from the rest of the index, so a short list can rest on a full window. True… |
| notes | array | yes | – |
| page | integer | yes | – |
| retrieved_at | string | yes | When these metadata were read from data.bnf.fr, as an ISO 8601 instant. The BnF licence asks for this date to be stated wherever the metadata are shown, so repeat it alongside the source. |
| title | string | yes | The words asked for. |
| words_searched | array | yes | The terms the index required, each of which has to appear in the title. A word is cut at an apostrophe and at a hyphen before the index sees it, so a word given as one can appear here as two, and a r… |
| works | array | yes | – |
No examples provided.