ndl-mcp
ndl-mcp
Ein MCP-Server für die Suche in 国立国会図書館サーチ (NDL Search), betrieben von der National Diet Library of Japan, über die SRU-searchRetrieve-Schnittstelle.
Dritter in einer Reihe mit cinii-mcp und jstage-mcp, und teilt deren Antwort-Hülle: typisierte Abfrage und Skript, Abgleichmodus, abgestufte Breite, pro Element matched_in, typisierte Diagnosen, eine protokollierbare Quittung, Attribution.
Bevor Sie dies ausführen
Es gibt keine Zugangsdaten. Die NDL-Such-APIs sind offen. Kein API-Schlüssel, keine Anwendungs-ID, kein Token, nichts, das in eine Konfigurationsdatei eingefügt werden müsste. Wenn Sie auf etwas warten, das eintreffen muss, bevor Sie dies nutzen können, warten Sie auf etwas, das nicht kommt.
Es gibt dennoch eine Verpflichtung. Abschnitt 17 von APIのご利用について bittet kontinuierliche API-Nutzer, ihre Kontaktdaten und die Art ihrer Nutzung über das Antragsformular zu melden — 「事前の利用申請の要否にかかわらず」, unabhängig davon, ob eine vorherige Nutzungsanmeldung erforderlich ist. Eine formelle 利用申請 ist nur für umsatzgenerierende Nutzung erforderlich; die Meldung wird von allen erbeten, die kontinuierlich zugreifen.
Da der Zugriff nicht an die Einreichung gekoppelt ist, wird nichts auf der Welt Sie davon abhalten, sie zu überspringen. Also stoppt install.ps1 Sie: Es weigert sich, den Server zu registrieren, bis die Meldung aufgezeichnet ist, und schreibt das Datum in NDL-API-NOTIFICATION.txt.
.\install.ps1 -NotificationFiled 2026-08-19Führen Sie es ohne das Flag aus, und es gibt die Formular-URL aus, bietet an, sie zu öffnen, und beendet sich.
Related MCP server: jp-lit-mcp
Was der Server nicht tun wird
Die folgenden Zusagen wurden bei der NDL eingereicht. Sie sind umgesetzt, nicht nur angestrebt, und der Rauchtest des Installers prüft die ersten drei:
Zusage | Umsetzung |
Anfragen werden seriell gesendet; kein gleichzeitiger Zugriff |
|
Mindestintervall von einer Sekunde |
|
Eine Obergrenze für Datensätze pro Suche; keine Massenabfrage |
|
Die Harvesting-Schnittstelle wird nicht verwendet | OAI-PMH ist nicht implementiert |
Gutschrift auf jeder Antwort |
|
Metadaten werden angezeigt, nicht angesammelt | kein Cache, kein lokaler Speicher |
Ändern Sie eine davon, und Sie ändern, was einer nationalen Bibliothek erklärt wurde. Reichen Sie zuerst eine ergänzende Meldung ein.
Anbieter
Nur die fünf in der Anwendung deklarierten Sets sind erreichbar. Alle sind von der NDL erstellt und CC BY, und keines erfordert eine Nutzungsanmeldung:
dpid | 名称 |
| 国立国会図書館蔵書 |
| 国立国会図書館全国書誌情報 |
| 国立国会図書館雑誌記事索引 |
| 国立国会図書館雑誌記事索引オンライン資料編 |
| 国立国会図書館デジタルコレクション(オープンデータ) |
ndl-dl und ndl-dl-online — die breiteren Digital Collections — sind auf der Anbieterliste mit △ markiert und erfordern eine Anmeldung, die nicht erfolgt ist. Eine Anfrage, die sie benennt, wird im Prozess abgelehnt, mit einer DPID_NOT_PERMITTED-Diagnose, anstatt gesendet zu werden.
Werkzeuge
Werkzeug | Durchsuchter Bestand |
| 蔵書 |
| 全国書誌情報 |
| 雑誌記事索引 (beide Sets) |
| デジタルコレクション(オープンデータ) |
| alle fünf |
| ein Datensatz per |
Suchfelder: title, creator, publisher, subject, anywhere, ndc, isbn, issn, from_year, to_year. Sie werden mit UND kombiniert; Titel, Urheber, Verlag und Betreff stimmen teilweise überein, ndc per Präfix, Identifikatoren exakt.
ndl_get_record ist ein Abruf, daher lässt seine Hülle searched_for weg — es wurde kein Begriff gewählt.
Zwei Dinge, die beißen werden
Ein großgeschriebenes AND, OR oder NOT innerhalb eines Suchbegriffs führt dazu, dass NDL die gesamte Abfrage ablehnt. Nicht "liefert nichts" — lehnt ab. Die Regel ist, wie die Spezifikation sie angibt, groß-/kleinschreibungsempfindlich: War AND Peace wird abgefangen, War and Peace wird durchgelassen. Der Server prüft vor dem Senden und gibt eine RESERVED_WORD_IN_QUERY-Diagnose zurück, die das fehlerhafte Feld benennt, anstatt die Bibliothek mit einem Parse-Fehler antworten zu lassen.
NDL setzt ein Ratenlimit durch, das es nicht beziffert, und antwortet mit HTTP 429. Die Hilfeseite sagt nur 「同時リクエスト数には制限を設けています」 und weigert sich, eine Zahl zu veröffentlichen. In Tests am 19. August 2026 kam eine 429 bei deutlich unter einer anhaltenden Anfrage pro Sekunde — also ist die bei der Bibliothek eingereichte Ein-Sekunden-Untergrenze ein Minimum, keine Garantie. Eine 429 erkauft eine Backoff-Phase, die Retry-After respektiert, und dann stoppt der Server, anstatt weiterzudrücken. Er meldet RATE_LIMITED, bewusst unterschieden von API_ERROR, weil die beiden für einen Leser unterschiedliche Bedeutungen haben: Eine ratenbegrenzte Suche hat ein unbekanntes Ergebnis, kein leeres, und darf niemals als Abwesenheit dargestellt werden.
Ein romanisierter Begriff wird zu wenig zurückliefern. NDL Search indexiert japanischsprachige Datensätze in japanischer Schrift. Eine Abfrage in lateinischer Schrift gegen einen japanischen Korpus ist die Romaji-Falle, und die Hülle erhebt dafür SCRIPT_LATIN_QUERY. Die searched_for-Überschrift existiert, damit der Begriff, den der Assistent tatsächlich gewählt hat, oben in der Antwort sichtbar ist und nicht vergraben — das ist der ganze Sinn des Feldes und der Grund, warum eine Offenlegung die Begriffe melden kann, die eine Suche verwendet hat.
Quittungen
mediation.emit() schreibt jede Antwort-Hülle in das append-only, hash-verkettete Ledger bei MCP_RECEIPT_LOG, das install.ps1 auf dieselbe Datei setzt, die die anderen Server verwenden. Wenn die Variable nicht gesetzt ist, wird nichts geschrieben und nichts schlägt fehl.
Beachten Sie, was das Ledger enthält und was nicht: die Abfrage, den normalisierten Begriff, die gesendeten Parameter, den Zeitstempel, einen SHA-256 über Abfrage und Parameter sowie die Identifikatoren der zurückgegebenen Datensätze. Es enthält nicht die bibliografischen Datensätze selbst. Das Protokollieren einer Abfrage ist kein Aufbau einer Datenbank, und die Zusage gegen Anhäufung wird durch das Aufbewahren der Quittung nicht verletzt — aber die Unterscheidung ist es wert, ausgesprochen zu werden, anstatt vorausgesetzt zu werden, weil die beiden von außen ähnlich aussehen.
Warum nur SRU
Die Anwendung deklariert SRU und OpenSearch. Dieser Server implementiert nur SRU, was weniger ist als deklariert und daher sicher — Sie dürfen immer weniger verwenden, als Sie der Bibliothek mitgeteilt haben.
Der Grund ist beweiskräftig. Das OpenSearch-Antwortformat ist in der 第1.4版-Spezifikation nicht dokumentiert: keine Elementtabelle, kein Beispiel, und die Anhänge decken nur SRU und OAI-PMH ab. Schlimmer noch, die Spezifikation besagt, dass ein fehlerhafter Parameter eine Null-Ergebnis-Antwort anstelle eines Fehlers zurückgibt — 「引数(パラメータ)誤りの場合には検索結果ゼロ件となる」 — sodass ein Tippfehler in einem Feldnamen von einem echten Fehlen nicht zu unterscheiden ist. Für ein Werkzeug, dessen Zweck es ist, einem Historiker zu ermöglichen, zu vertrauen, dass nichts gefunden wurde, ist das disqualifizierend. SRU gibt typisierte Diagnosen und ein dokumentiertes DC-NDL-Datensatzschema zurück. OpenSearch später hinzuzufügen erfordert keine neue Meldung; es erfordert ein dokumentiertes Antwortformat.
Quellen
国立国会図書館サーチ 外部提供インタフェース仕様書 第1.4版 (2026-03-31)
APIのご利用について — Bedingungen, Gutschrift-Anforderung, Nebenläufigkeit, Meldung
API提供対象データプロバイダ一覧 — dpid-Werte und Lizenzbedingungen
Lizenz
MIT. Metadaten, die über diesen Server abgerufen werden, sind CC BY 4.0 von der National Diet Library; die Gutschriftszeile, die der Server ausgibt, ist die Attribution, die diese Lizenz verlangt, und sie sollte in alles überleben, was Sie aus den Ergebnissen veröffentlichen.
Was getestet wurde und was nicht
Verifiziert gegen die Live-API am 19. August 2026:
Japanisch-schriftliche Suche über 蔵書 und 雑誌記事索引 — korrekte Gesamtzahlen, korrekte Datensätze, korrekte Jahre und Identifikatoren.
DC-NDL-Parsing, einschließlich des Manifestations-Stub-Filters. NDL gibt zwei
BibResource-Elemente pro Datensatz zurück; das Nehmen beider verdoppelte die Ergebnismenge mit Leerstellen, bis der Filter eingebaut wurde.searched_formeldet den gewählten Begriff, nicht das zusammengesetzte CQL, sodass seine Skripterkennung aussagekräftig ist; das genaue CQL wird inquery.paramsgetragen und durch den Quittungs-Hash fixiert.Die
DPID_NOT_PERMITTED-Absicherung: Eine Anfrage, diendl-dlbenennt, wird im Prozess abgelehnt.RESERVED_WORD_IN_QUERY:War AND Peaceabgefangen,War and Peacedurchgelassen.Der Ratenbegrenzer, unfreiwillig — siehe HTTP 429 oben.
Nicht gegen die Live-API verifiziert und eher gelesen als ausgeführt: der Durchgriff "Datensatz existiert nicht", ndl_get_record und der Backoff-Pfad. Die Tests stoppten bei der 429, anstatt fortzufahren, weil das Charakterisieren einer nicht offengelegten Ratenbegrenzung durch Sondierung genau das 継続して大量のアクセス ist, vor dem die Bedingungen warnen, und der Zweck dieses Servers ist es nicht, das Ding zu sein, das die National Diet Library blockieren muss. Üben Sie diese Pfade im normalen Gebrauch, eine Abfrage nach der anderen.
Available Tools
6 toolsndl_get_recordARead-onlyIdempotent
Retrieve a single record by NDL bibliographic ID or 全国書誌番号 (JP number).
A fetch, not a search: the envelope omits searched_for because no term was
chosen. Exactly one identifier is required.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral detail beyond annotations by explaining that the envelope omits 'searched_for' because no search term is chosen, which gives the agent insight into the response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences convey the purpose and the key operational distinction. The description is front-loaded with the primary action, and every sentence adds relevant information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-record fetch tool, the description is complete: it covers the identifier requirement, the fetch-vs-search distinction, and a response envelope nuance. The output schema and annotations handle return format and safety, so nothing essential is missing for the agent to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage reported at 0%, the description partially compensates by naming both accepted identifier types: NDL bibliographic ID and 全国書誌番号. It also adds the critical constraint that exactly one identifier is required, which is not enforced by the schema (both params are individually optional). However, it does not elaborate on identifier format or which identifier should be preferred when both are known.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Retrieve a single record by NDL bibliographic ID or 全国書誌番号 (JP number).' It further distinguishes itself from the search sibling tools by explicitly stating 'A fetch, not a search,' so an agent can clearly tell it apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: this tool is for fetching by a known identifier, not for searching. It also provides a key usage requirement, 'Exactly one identifier is required,' which helps the agent avoid invalid calls. It does not explicitly name alternative tools, but since all siblings are search tools, the contrast is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ndl_search_allARead-onlyIdempotent
Search all five declared provider sets at once.
Use when the material type is unknown. For a bibliographic check, the narrower tools return a cleaner set.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior, so the description doesn't need to restate safety. It adds the useful behavioral context that one call hits all five provider sets at once. It doesn't disclose behaviors like result merging, duplication, or pagination, but with strong annotations and an output schema this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the core action is front-loaded, and the usage guidance follows immediately. Every sentence carries meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an aggregate search tool with read-only annotations, rich nested parameter descriptions, and an output schema, the description covers the key decision (when to use all vs. narrower). It would be slightly stronger if it named the five provider sets or the narrower sibling tool names, but the sibling list and schema supply that context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description says nothing about parameters. Reported schema description coverage is 0% at the top level, and the description does not compensate by explaining search fields or constraints. The nested schema does contain useful per-field descriptions (ndc, isbn, title, year, etc.), which prevents this from being a 1.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Search all five declared provider sets at once.' This distinguishes it from the narrower sibling search tools by scope (all sets vs. one set), so an agent can tell it apart from ndl_search_books, ndl_search_articles, etc. without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit use condition — 'Use when the material type is unknown' — and an explicit alternative condition: 'For a bibliographic check, the narrower tools return a cleaner set.' The alternative names aren't listed verbatim, but the sibling list makes them identifiable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ndl_search_articlesARead-onlyIdempotent
Search 国立国会図書館雑誌記事索引, including the online-materials set.
The index covers Japanese periodical articles, including many not in CiNii or J-STAGE. It indexes articles, not their full text.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as readOnly, idempotent, and non-destructive. The description adds useful behavioral context: it includes the online-materials set, covers articles often missing from CiNii/J-STAGE, and explicitly does not provide full text. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, purposeful sentences with no filler. The action and resource are front-loaded, followed by scope and a clear limitation. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with a rich schema and an output schema, the description adequately explains what is searched, the coverage scope, and the key limitation (no full text). It could be more explicit about sibling routing, but overall it is complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool description itself does not describe any parameters, but the nested SearchInput schema gives detailed descriptions for each field (e.g., partial match, date formats, bounds). The description adds no extra parameter meaning, and the structured schema already carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Search 国立国会図書館雑誌記事索引', then clarifies that it covers Japanese periodical articles and indexes articles, not full text. This makes it easy to distinguish from sibling tools like ndl_search_books or ndl_search_national_bibliography.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context on when this tool is relevant: for Japanese periodical article records, including coverage beyond CiNii and J-STAGE. It does not explicitly name sibling tools or state when not to use them, but the scope is clear enough for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ndl_search_booksARead-onlyIdempotent
Search 国立国会図書館蔵書 for books and monographs.
Fields are combined with AND; title, creator, publisher and subject match partially. Returns the unified response envelope. Records are displayed, not stored.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only and idempotent, and the description adds meaningful behavioral detail: fields are combined with AND, title/creator/publisher/subject match partially, it returns the unified response envelope, and records are displayed but not stored. This clearly communicates side effects and result shaping, and it does not contradict any annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three terse sentences: the first states purpose, the second states matching behavior, the third states output and side-effect semantics. No filler words, no repetition of schema details, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description, together with a rich input schema and an output schema, gives an agent enough to invoke the tool correctly: scope, query combination semantics, return envelope, and non-storage behavior. It falls short only in not explicitly routing the agent away from sibling search tools or mentioning pagination parameters, though those are documented in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description names a few parameters (title, creator, publisher, subject) and notes they match partially, but the input schema already documents each field with equivalent or richer descriptions. The main addition beyond the schema is 'fields are combined with AND', which is useful but modest. Given the schema descriptions are strong, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Search'), a concrete resource ('国立国会図書館蔵書'), and a clear scope ('books and monographs'). This distinguishes it from sibling tools like ndl_search_articles or ndl_search_digital_open without needing to inspect their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for searching books and monographs rather than articles or digital collections, but it never explicitly names alternatives or says when to prefer this tool over sibling searches. It does provide practical query semantics (AND combination, partial matching), but not exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ndl_search_digital_openBRead-onlyIdempotent
Search 国立国会図書館デジタルコレクション(オープンデータ).
The open-data set only. The wider Digital Collections (ndl-dl, ndl-dl-online) are marked ○ for 非営利 use and so need no usage application, but they were outside the set this server declares and their metadata carries no open licence — displayable, not redistributable. Adding them is a documentation change here, not an application to the library.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHintfalse, so the safety profile is covered. The description adds value by clarifying the data set scope and licensing: only open-data records are included, and the wider collections are 'displayable, not redistributable'. This is useful behavioral context about what the tool can return, though it does not describe response format or limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a one-line purpose statement in Japanese, then a concise English explanation of the key scope constraint and licensing nuance. It front-loads the main action and does not waste words, though the language mix is slightly awkward for an English-first agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema and annotations cover read-only/idempotent behavior, the description’s main job is scoping and usage guidance. It handles scoping well and adds useful licence context, but it leaves out any explicit guidance on when to choose this over siblings like ndl_search_books or ndl_search_all, and it does not mention pagination or result count controls (though those are in the schema). Overall it is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool description contains no parameter information. Context signals report 0% schema description coverage, so the description must compensate but does not. The nested schema fields have some descriptions, but the top-level 'params' parameter is undocumented in the description, leaving an agent to delve into the $ref to construct a query. The description's licence discussion gives no help with the many search fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Search 国立国会図書館デジタルコレクション(オープンデータ)', reinforced by the annotation title 'Search NDL Digital Collections (Open Data)'. It distinguishes from the wider Digital Collections by explicitly saying 'The open-data set only', so an agent can tell this tool is scoped to the open subset. It does not name sibling search tools, but the scoping qualifier differentiates enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives context about when to use this tool: it searches only the open-data set, and the wider collections are explicitly excluded. It does not name alternative tools or say 'use X for the wider collections', but the scope limitation clearly implies this tool is for open data. The licence discussion adds context about the data set, but no explicit when-not-to-use or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ndl_search_national_bibliographyARead-onlyIdempotent
Search 国立国会図書館全国書誌情報.
The national bibliography is the authority for Japanese imprint data — use it when a publication date, publisher or edition statement has to be right rather than merely plausible.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempoentHint=true, openWorldHint=true, and destructiveHint=false, covering safety and side-effect profile. The description adds only the data-quality trait (authority of imprint data), which is contextual but not a behavioral disclosure such as result ordering, matching semantics, or limits. It adds some value beyond annotations but does not carry new behavioral information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero redundancy. The resource and action are front-loaded, and the second sentence earns its place by explaining why this tool exists and when it matters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, every parameter is documented in the schema, and annotations cover the operational profile, so the description need not explain return values or side effects. What it adds — the authority positioning and the when-to-use rule — completes the picture for correct selection. A brief note distinguishing it from ndl_search_books or ndl_search_all would make it complete, hence not a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% — the tool description contributes nothing about the 12 parameters, though the schema itself documents each property well. The phrase "publication date, publisher or edition statement" faintly hints at which search fields matter, but that is indirect and does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — "Search 国立国会図書館全国書誌情報" — and then sharpens the scope by positioning this as the authoritative source for Japanese imprint data. The "authority" framing distinguishes it from sibling search tools without ambiguity: this is the tool to trust for dates, publishers, and edition statements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear when-to-use guidance: choose this tool when a publication date, publisher, or edition statement must be authoritative rather than merely plausible. It stops short of naming alternative siblings or stating when NOT to use it, so a score of 5 would overstate its completeness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v1.1.0- First observed
ndl_get_record - First observed
ndl_search_all - First observed
ndl_search_articles - First observed
ndl_search_books - First observed
ndl_search_digital_open - First observed
ndl_search_national_bibliography
TDQS
Scored across 6 tools
Each search tool targets a distinct NDL dataset or scope, and get_record is clearly separate as an ID-based fetch. The main ambiguity is between ndl_search_books and ndl_search_national_bibliography, since both can return book-like records, though their descriptions clarify holdings vs. authority data.
All tool names follow a predictable ndl_<action>_<scope> pattern: get_record and search_* for the rest. This makes the set easy to navigate and avoids stylistic mixing.
Six tools is well-scoped for the server's purpose: one record retrieval tool and five search tools covering separate NDL data sources plus a combined search. No tool feels redundant or out of place.
The set covers the main NDL search surfaces and record retrieval by ID, which supports core bibliographic workflows. The main minor gap is that only the open Digital Collections subset is exposed, while wider digital collection content is not covered by a dedicated tool.
Maintenance
Related MCP Connectors
MCP server for searching Airweave collections with natural language queries.
Read-only MCP server for searching Japan government procurement bid information from the KKJ portal.
Hosted MCP server for finding authoritative primary data sources and official portals.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server for searching Japanese Diet bills and committee Q\&A records via the NDL Kokkai API.463 npm1MIT
- AlicenseAqualityAmaintenanceAn MCP server for Japanese literature research that provides unified search across NDL, CiNii, J-STAGE, and other Japanese academic databases, with Skills to assist in search planning and result evaluation.301,097 npm7MIT
- AlicenseBqualityDmaintenanceMCP server for accessing Japanese government statistics portal 'e-Stat' API, enabling language models to search and retrieve statistical data.520MIT
- FlicenseBqualityDmaintenanceMCP server for searching Japanese government procurement notices via the Kanpou API. Enables LLMs to search by date, keyword, or detailed criteria.31-