Skip to main content
Glama

ndl-mcp

일본 국립국회도서관이 운영하는 国立国会図書館サーチ(NDL Search)를 SRU searchRetrieve 인터페이스로 검색하기 위한 MCP 서버입니다.

cinii-mcp 및 jstage-mcp에 이은 세 번째 시리즈로, 이들과 응답 형식을 공유합니다: 타입이 지정된 쿼리와 스크립트, 일치 모드, 점진적 범위, 항목별 matched_in, 타입이 지정된 진단, 기록 가능한 영수증, 출처 표시.

실행 전에 알아두세요

자격 증명이 없습니다. NDL 검색 API는 공개되어 있습니다. API 키도, 애플리케이션 ID도, 토큰도, 설정 파일에 붙여넣을 것도 없습니다. 이 서버를 사용하기 전에 뭔가가 도착하기를 기다리고 있다면, 그건 오지 않을 것을 기다리는 것입니다.

그래도 의무는 있습니다. APIのご利用について의 제17조는 지속적 API 사용자에게 신청 양식을 통해 연락처와 사용 목적을 보고할 것을 요구합니다 — 「事前の利用申請の要否にかかわらず」, 즉 사전 이용 신청이 필요한지 여부와 관계없이 말입니다. 정식 利用申請은 수익 창출 목적의 사용에만 필요하며, 통지는 지속적으로 접속하는 모든 사람에게 요구됩니다.

접속이 신고 여부에 의해 차단되지 않기 때문에, 이를 건너뛰는 것을 막을 수단은 세상에 없습니다. 그래서 install.ps1이 막습니다: 통지가 기록될 때까지 서버 등록을 거부하고, 날짜를 NDL-API-NOTIFICATION.txt에 기록합니다.

.\install.ps1 -NotificationFiled 2026-08-19

플래그 없이 실행하면 양식 URL을 출력하고, 열기를 제안한 후 종료합니다.

Related MCP server: jp-lit-mcp

서버가 하지 않을 일

아래의 약속은 NDL에 제출된 것입니다. 단순한 목표가 아니라 구현된 사항이며, 설치 프로그램의 스모크 테스트는 처음 세 가지를 검증합니다:

약속

구현

요청은 직렬로 발행되며 동시 접속 없음

_rate_lock이 대기 및 요청 전체에 걸쳐 유지됨

최소 1초 간격

MIN_REQUEST_INTERVAL = 1.0

검색당 레코드 수 상한, 대량 검색 없음

MAX_RECORDS = 100, NDL 자체 한도 500의 5분의 1, 자동 페이지네이션 없음

수집 인터페이스 미사용

OAI-PMH는 구현되지 않음

모든 응답에 출처 표시

모든 응답에 ATTRIBUTION 및 provider_credit() 포함

메타데이터는 표시만 하고 축적하지 않음

캐시 없음, 로컬 저장소 없음

이 중 하나라도 변경하면 국가 도서관에 신고한 내용을 변경하는 것입니다. 먼저 추가 신고를 제출하세요.

제공자(Providers)

신청서에 명시된 5개 세트만 접근 가능합니다. 모두 NDL이 작성했고 CC BY이며, 이용 신청이 필요 없습니다:

dpid

名称

iss-ndl-opac

国立国会図書館蔵書

iss-ndl-opacnational

国立国会図書館全国書誌情報

zassaku

国立国会図書館雑誌記事索引

zassaku-online

国立国会図書館雑誌記事索引オンライン資料編

ndl-dl-open

国立国会図書館デジタルコレクション(オープンデータ)

ndl-dl 및 ndl-dl-online — 더 넓은 디지털 컬렉션 — 은 제공자 목록에서 △로 표시되어 있으며, 제출되지 않은 신청이 필요합니다. 이들을 지정하는 요청은 전송되지 않고, DPID_NOT_PERMITTED 진단과 함께 프로세스 내에서 거부됩니다.

도구

도구

검색 대상 세트

ndl_search_books

蔵書

ndl_search_national_bibliography

全国書誌情報

ndl_search_articles

雑誌記事索引 (두 세트 모두)

ndl_search_digital_open

デジタルコレクション(オープンデータ)

ndl_search_all

전체 5개

ndl_get_record

jpno 또는 ndl_bib_id로 단일 레코드 조회

검색 필드: title, creator, publisher, subject, anywhere, ndc, isbn, issn, from_year, to_year. 이들은 AND로 결합됩니다; title, creator, publisher, subject는 부분 일치, ndc는 접두어 일치, 식별자는 정확히 일치합니다.

ndl_get_record는 조회(fetch)이므로 응답에 searched_for가 포함되지 않습니다 — 선택된 검색어가 없기 때문입니다.

주의해야 할 두 가지

검색어 안의 대문자 AND, OR 또는 NOT은 NDL이 전체 쿼리를 거부하게 만듭니다. "결과 없음"이 아니라 거부입니다. 이 규칙은 사양에 명시된 대로 대소문자를 구분합니다: War AND Peace는 걸리고, War and Peace는 통과합니다. 서버는 전송 전에 확인하여, 도서관이 구문 분석 실패로 응답하게 두는 대신 해당 필드를 지목하는 RESERVED_WORD_IN_QUERY 진단을 반환합니다.

NDL은 수치를 공개하지 않는 속도 제한을 적용하며, HTTP 429로 응답합니다. 도움말 페이지는 「同時リクエスト数には制限を設けています」라고만 말하고 수치 공개를 거부합니다. 2026년 8월 19일 테스트에서 초당 1회 미만의 지속 요청에서도 429가 도착했습니다 — 따라서 도서관에 제출한 1초 최소 간격은 보장이 아니라 최소 기준입니다. 429가 오면 Retry-After를 존중하여 한 번 백오프하고, 그 후에는 계속 시도하지 않고 서버가 멈춥니다. API_ERROR와 의도적으로 구분되는 RATE_LIMITED를 보고하는데, 이는 독자에게 서로 다른 의미를 갖기 때문입니다: 속도 제한에 걸린 검색은 알 수 없는 결과를 가지며, 빈 결과가 아닙니다. 결코 부재로 기록되어서는 안 됩니다.

로마자 표기 검색어는 결과가 부족합니다. NDL Search는 일본어 레코드를 일본어 문자로 색인합니다. 일본어 코퍼스에 대한 라틴 문자 쿼리는 로마자 함정이며, 응답은 이에 대해 SCRIPT_LATIN_QUERY를 발생시킵니다. searched_for 헤드라인이 존재하는 이유는 어시스턴트가 실제로 선택한 검색어가 응답 상단에 보이도록 하기 위함이며, 묻히지 않게 하기 위함입니다 — 이것이 이 필드의 전부이며, 공개가 검색에 사용된 검색어를 보고할 수 있는 이유입니다.

영수증

mediation.emit()은 각 응답을 MCP_RECEIPT_LOG의 추가 전용, 해시 체인 원장에 기록하며, install.ps1이 다른 서버들이 사용하는 동일한 파일로 설정합니다. 변수를 설정 해제하면 아무것도 기록되지 않고 아무것도 실패하지 않습니다.

원장이 무엇을 담고 무엇을 담지 않는지 주목하세요: 쿼리, 정규화된 검색어, 전송된 매개변수, 타임스탬프, 쿼리와 매개변수에 대한 SHA-256, 그리고 반환된 레코드의 식별자입니다. 서지 레코드 자체는 담지 않습니다. 쿼리를 기록하는 것은 데이터베이스를 축적하는 것이 아니며, 축적 금지 약속은 영수증을 보관함으로써 위반되지 않습니다 — 그러나 이 구분은 가정하지 말고 명시할 가치가 있습니다, 외부에서 보기에는 둘이 비슷해 보이기 때문입니다.

SRU만 사용하는 이유

신청서는 SRU와 OpenSearch를 명시합니다. 이 서버는 SRU만 구현하며, 이는 신고된 것보다 적으므로 안전합니다 — 도서관에 말한 것보다 적게 사용하는 것은 항상 허용됩니다.

이유는 증거적입니다. OpenSearch 응답 형식은 제1.4판 사양에 문서화되어 있지 않습니다: 요소 표도, 샘플도 없으며, 부록은 SRU와 OAI-PMH만 다룹니다. 더 나쁜 것은, 사양이 잘못된 매개변수는 오류가 아닌 결과 0건 응답을 반환한다고 명시한다는 점입니다 — 「引数(パラメータ)誤りの場合には検索結果ゼロ件となる」 — 따라서 필드 이름의 오타는 진정한 부재와 구별할 수 없습니다. 역사가가 아무것도 발견되지 않았다고 신뢰할 수 있게 하는 것이 목적인 도구에게 이것은 실격입니다. SRU는 타입이 지정된 진단과 문서화된 DC-NDL 레코드 스키마를 반환합니다. 나중에 OpenSearch를 추가하는 것은 새로운 신고가 필요하지 않습니다; 문서화된 응답 형식이 필요할 뿐입니다.

출처

라이선스

MIT. 이 서버를 통해 검색된 메타데이터는 국립국회도서관의 CC BY 4.0입니다; 서버가 출력하는 출처 표시는 해당 라이선스가 요구하는 귀속 표시이며, 결과에서 게시하는 모든 것에 유지되어야 합니다.

테스트된 것과 테스트되지 않은 것

2026년 8월 19일 라이브 API에 대해 검증됨:

  • 蔵書 및 雑誌記事索引에 대한 일본어 문자 검색 — 정확한 총계, 정확한 레코드, 정확한 연도와 식별자.

  • DC-NDL 파싱, 매니페스테이션 스텁 필터 포함. NDL은 레코드당 두 개의 BibResource 요소를 반환하며, 둘 다 취하면 필터가 들어가기 전까지 공백으로 결과 집합이 두 배가 되었습니다.

  • searched_for는 조합된 CQL이 아니라 선택된 검색어를 보고하므로 스크립트 감지가 의미 있습니다; 정확한 CQL은 query.params에 담기며 영수증 해시로 고정됩니다.

  • DPID_NOT_PERMITTED 가드: ndl-dl을 지정하는 요청은 프로세스 내에서 거부됩니다.

  • RESERVED_WORD_IN_QUERY: War AND Peace는 걸리고, War and Peace는 통과했습니다.

  • 속도 제한 장치, 비자발적으로 — 위의 HTTP 429 참조.

라이브 API에 대해 검증되지 않았고, 실행이 아닌 읽기로만 확인된 것: "Record does not exist" 패스스루, ndl_get_record, 백오프 경로. 테스트는 429에서 계속하지 않고 중단되었습니다, 공개되지 않은 속도 제한을 프로빙하여 특성화하는 것이 정확히 약관이 경고하는 継続して大量のアクセス이며, 이 서버의 목적은 국립국회도서관이 차단해야 하는 대상이 되는 것이 아니기 때문입니다. 일상적인 사용에서 한 번에 하나의 쿼리로 해당 경로를 실행하세요.

Available Tools

6 tools
ndl_get_recordA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_allA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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_articlesA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_booksA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_openB
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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_bibliographyA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 6 tool updatesv1.1.0
    • First observedndl_get_record
    • First observedndl_search_all
    • First observedndl_search_articles
    • First observedndl_search_books
    • First observedndl_search_digital_open
    • First observedndl_search_national_bibliography

TDQS

A3.9/5.0

Scored across 6 tools

Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    MCP server for searching Japanese Diet bills and committee Q\&A records via the NDL Kokkai API.
    4
    63 npm
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    An 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.
    30
    1,097 npm
    7
    MIT
  • F
    license
    B
    quality
    D
    maintenance
    MCP server for searching Japanese government procurement notices via the Kanpou API. Enables LLMs to search by date, keyword, or detailed criteria.
    3
    1
    -