Skip to main content
Glama

jp-lit-mcp

An MCP server for Japanese literature research designed to allow AI agents to perform cross-database searches across NDL Search, NDL Digital Collections, CiNii Research, J-STAGE, IRDB, JDCat, nihuBridge, and the Minutes of the National Diet and Imperial Diet.

MCP provides the tools for searching and retrieval, while the included Skills assist in dialogue with "which DB to use," "what search terms to try," and "how to evaluate the results."

First, choose your application

The most common hurdle in setup is the difference in MCP/Skills configuration for each application. Please start by opening the instructions for the application you are using.

As a prerequisite, Node.js 18 or higher and npm are required. For standard use, you do not need to clone the repository; you can execute the MCP server and Skills installer via npx.

Related MCP server: rust-research-mcp

Quick Start

  1. Register npx -y jp-lit-mcp as an MCP according to your application's installation instructions.

  2. Install Skills using npx -y jp-lit-mcp install-skills <app>.

  3. Request research on the application.

For troubleshooting after installation, you can use the lightweight diagnostic command.

npx -y jp-lit-mcp doctor

This command checks for Node.js 18 or higher, package versions, included Skills, write permissions for cache/exports directories, and the presence of CINII_RESEARCH_APP_ID. CINII_RESEARCH_APP_ID is used for CiNii-related and KAKEN API tools. It does not perform live API access to external databases.

Only if you wish to develop or add sources, clone this repository and run npm install / npm run build / npm run smoke:mcp.

Example of an initial request:

文献DBで、近代日本の労働文化について、論文と図書を探してください。
文献DBを始めます。明治期の俳句雑誌について、最初に見るべき資料と、使うべき DB を教えてください。
文献検証で、この文章に出てくる文献の実在性を確認してください。

What you can do

  • Search for books, papers, magazine articles, meeting minutes, and research data.

  • Check holdings and bibliographic details via NDL / CiNii Books, etc.

  • Refer to research manuals and case studies from the Collaborative Reference Database.

  • Handle OCR full text, page coordinates, and illustrations/figures from NDL Digital Collections.

  • Verify the existence of literature mentioned in pasted text.

  • Filter, integrate, and reorganize saved research results, and export them in Markdown / JSON / CSL JSON.

Research results exported in CSL JSON can be passed to reference management and citation processing tools such as Zotero, Pandoc, and citeproc-based tools.

For details on supported sources and MCP tools, refer to the Technical Reference.

Why use Skills?

While you can search with MCP alone, the user must think about source selection, search term expansion, and result evaluation.

By using the jp-lit-research Skill, you can create a research plan before searching, and assemble sources and search terms while referring to the Collaborative Reference Database or NDL Research Navi as needed. Research is not intended to end with a single search; it is based on the premise of re-selecting the next query or DB while looking at candidates.

When returning results, we include not only bibliographic information but also highlights from full-text searches and short excerpts from summaries or tables of contents whenever possible, in a format that explains "why this material was presented." Page location identification is performed with a separate tool only when necessary.

jp-lit-mcp is not intended for LLMs to make final decisions on understanding the content or academic positioning of literature. Even for literature where the main text has not been read, it may tentatively organize it based on titles, abstracts, tables of contents, book reviews, publisher introductions, and fragments on the Web. In such cases, it will explicitly state that it is not a reading of the main text and what the basis for the organization is. online=true or links to PDF / HTML / Digital Collections only indicate that there is an entry point online and do not mean that the agent has read the main text.

Candidates are not just listed flatly; they are tentatively prioritized for research confirmation based on material type, publisher/media, author attributes, citation/review status, and main text confirmation status. However, the value of literature is not determined solely by the publisher or media. Confirmation priority is a working guideline for humans to decide what to look at next.

It also supports organizing results after searching. Operations such as sorting current results, narrowing down to online publications only, or taking differences/commonalities with previous results are, in principle, performed by reusing saved results. You can cross-search and integrate not only current search results but also past saved search results. cache.hit=true in jp_lit_search indicates that the cache from which it was reused was used. Old local caches can be deleted after checking candidates with jp_lit_prune_cache.

Auxiliary tools using Web NDL Authorities can also be used to confirm pen names, aliases, and subject headings of personal names. For example, you can confirm the relationship between names like Takehiro Irokawa and Tetsuya Asada, and decide whether to search by name or collectively. You can also reverse-lookup subject headings from classifications like NDC to create search term candidates for finding unknown books.

For standard Skill installation, we recommend npx -y jp-lit-mcp install-skills <app> found in the install guide for each app. There is another route using gh skill install from the GitHub CLI, but this is for advanced users. For details, refer to Installing Skills with GitHub CLI.

The jp-lit-verification Skill extracts Japanese literature candidates that appear in other services' answers or your own text, and confirms them by categorizing them into confirmed existence / partial match / suspected non-existence / suspected confusion.

For detailed usage, refer to the Usage Guide.

Main Supported Sources

Commonly used sources are as follows:

  • ndl_catalog: Entry point for checking the National Diet Library and holding information

  • ndl_digital: NDL Digital Collections

  • cinii_articles / cinii_books: Papers, university library books/magazines

  • jstage_articles: Academic journals/research papers

  • irdb: University institutional repositories

  • nihu_bridge: Cross-search of humanities-specialized databases

  • kokkai_minutes / teikoku_minutes: Minutes of the National Diet and Imperial Diet

  • jdcat: Research data in humanities and social sciences

  • japan_search: Cultural properties, museums, regional materials

A list and implementation notes are summarized in the Technical Reference.

Documentation

License

The code in this repository is under the MIT License. See LICENSE for details.

However, the data usage conditions for external DBs / APIs accessed by MCP are different. Points of caution change between research use on personal devices and operation of public services or shared servers that accumulate search results and provide them to multiple users. For conditions regarding redistribution, display, commercial use, and mirror-like storage, please check the Data Usage Conditions Memo and the terms of each provider.

Available Tools

29 tools
jp_lit_annotate_sessionA

write: session。session_id で明示した調査セッション内で、既存の検索・書誌取得結果に候補ラベルと短いメモを保存する。未選別結果そのものや cache は変更せず、採否・保留・弱候補などの選別判断だけを追加する。調査全体の目的・未確認事項・次アクションは jp_lit_update_session_trace、単なる履歴検索には jp_lit_find_sessions / jp_lit_list_sessions を使う

ParametersJSON Schema
NameRequiredDescriptionDefault
toolYes注釈対象の結果を生成した tool 名。通常は jp_lit_search または jp_lit_refine_results。
notesNoこの注釈 entry 全体に対する補足メモ。
traceNo検索意図、判断、根拠確認範囲などの調査経過。
cache_keyYes保存済み tool 実行結果を指す cache_key。jp_lit_search や cache 一覧 tool の戻り値から渡す。
session_idYes調査案件を識別する application state handle。jp_lit_start_session が返した値を��す。形式は YYYY-MM-DD-HHMMSS-8桁hex(旧形式 YYYY-MM-DD-HHMMSS も可)。MCP transport の接続IDや cache_key とは別物。
selected_itemsYes現在の調査セッションに保存する選別済み候補。未選別の検索結果そのものは変更しない。

Output Schema

ParametersJSON Schema
NameRequiredDescription
session_idYes
updated_atYes
annotated_countYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all false and carry essentially no safety information, so the description carries the burden. It discloses that the tool writes to the session, only adds selection judgments, and does not modify unselected results or the cache. This is useful behavioral context beyond the schema, though it does not cover overwrite/idempotency semantics explicitly.

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?

The description is four short clauses, front-loaded with the core purpose, followed by side-effect clarification and sibling routing. Every sentence earns its place and there is no redundant restatement of the schema.

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?

Given the complex nested schema and rich per-parameter descriptions, the description adds the missing behavioral and routing context: write scope, non-destruction of raw results/cache, and clear alternative tools. An output schema exists, so return-value documentation is not required. No meaningful information needed for correct invocation is missing.

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?

Schema description coverage is 100%, and each parameter already has detailed descriptions, validations, and examples in the schema. The tool description adds no parameter-level meaning beyond mentioning session_id and the cache in passing. 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 names a specific action—saving candidate labels and short memos to existing search/bibliographic results within a session identified by session_id—and clearly scopes what is written. It also explicitly distinguishes itself from jp_lit_update_session_trace, jp_lit_find_sessions, and jp_lit_list_sessions, so an agent can tell them apart without opening schemas.

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?

The description states exactly when to use this tool (annotating selection decisions on existing results) and when not to: overall research goals/unresolved items/next actions go to jp_lit_update_session_trace, and plain history retrieval goes to jp_lit_find_sessions / jp_lit_list_sessions. This is explicit routing with named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_delete_cacheA
DestructiveIdempotent

delete/destructive。ローカル保存された cache を cache_key 単位、または clear_all=true で指定 tool 単位に削除する。削除前に対象確認したい場合は jp_lit_list_cache、古い cache 候補を安全に点検したい場合は jp_lit_prune_cache の dry_run=true を使う。session 履歴は削除しないが、cache 本体は戻せない

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolYes
deletedYes
messageYes
cache_keyYes
clear_allYes
deleted_countYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructive (destructiveHint: true) and non-read-only (readOnlyHint: false). Description adds that session history is not deleted but cache body cannot be restored, providing useful context. No contradiction.

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?

Three sentences in Japanese are concise and front-loaded with the action. Slight redundancy in the warning about irreversibility could be tightened.

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?

Given the destructive nature and presence of annotations, the description adds necessary context about irreversibility and session history. An output schema exists but is not shown, so completeness is adequate.

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?

Input schema shows zero parameters, but description mentions 'cache_key' and 'clear_all=true', which are not reflected in the schema. This creates confusion about how to invoke the tool.

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 clearly states the tool deletes local cache by cache_key or clear_all=true, distinguishing it from siblings like jp_lit_list_cache and jp_lit_prune_cache.

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?

Explicitly suggests using jp_lit_list_cache for pre-deletion check and jp_lit_prune_cache with dry_run=true for safe inspection, plus warns that cache body is irreversible.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_enrich_recordA

external read / local bookkeeping write(非破壊)。既に見つけた単一文献候補を Crossref / OpenAlex で DOI・タイトル・著者・刊行年から照合し、候補の書誌確認 confidence と根拠を返す。文献検索 source ではなく、NDL / CiNii / J-STAGE / IRDB などで得た候補の外部検証に使う。OpenAlex は OPENALEX_API_KEY が無い場合 skipped になり、未収録・低引用は日本語人文系での低重要度を意味しない 外部sourceは変更しない。cache hitでもlocal session履歴を更新し、cache missまたはforce_refreshではlocal cacheを作成・置換する。

ParametersJSON Schema
NameRequiredDescriptionDefault
doiNo照合したい DOI。URL 形式や doi: 接頭辞でもよい。指定すると title より DOI 照合を優先する。
titleNo照合したい候補タイトル。DOI が無い人文系文献では title / authors / issued_year の組み合わせで補助照合する。
authorsNo候補の著者名配列。未指定なら空配列として扱う。title-only 照合の confidence 判定に使う。
providersNo照合に使う外部 provider。Crossref は無認証、OpenAlex は OPENALEX_API_KEY が無い場合 skipped になる。
session_idYes調査案件を識別する application state handle。jp_lit_start_session が返した値を渡す。形式は YYYY-MM-DD-HHMMSS-8桁hex(旧形式 YYYY-MM-DD-HHMMSS も可)。MCP transport の接続IDや cache_key とは別物。
issued_yearNo候補の刊行年。title-only 照合の confidence 判定に使う。
force_refreshNotrue の場合はローカル cache を使わず upstream API から再取得する。false の場合は保存済み cache を優先する。

Output Schema

ParametersJSON Schema
NameRequiredDescription
cacheNo
queryYes
cautionYes
matchesYes
providersYes

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses several behavioral traits beyond the annotations: external sources are unchanged, local session history is updated even on cache hits, cache is created/replaced on miss or force_refresh, OpenAlex is skipped without OPENALEX_API_KEY, and absence from OpenAlex or low citation counts is not evidence of low importance. This strongly supplements the limited annotation signals.

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 dense and front-loaded with the core purpose and scoping constraint. The latter half packs several important caveats into a run-on structure, with some redundancy between '非破壊' and '外部sourceは変更しない', so it could be better organized.

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 tool with 7 parameters and an output schema, the description covers the essential context: purpose, non-destructive behavior, local side effects, provider availability, and interpretation caveats. Since an output schema exists, the description does not need to document the return shape.

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?

Schema description coverage is 100%, and the input schema already documents DOI-priority, title-only matching, authors/issued_year usage, provider skipping behavior, force_refresh, and session_id format. The description adds little parameter-level meaning beyond what the schema already provides, so the baseline of 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 clearly states the operation: verifying an already-found single literature candidate against Crossref/OpenAlex and returning a bibliographic confidence score with evidence. It explicitly distinguishes itself from a literature search source, which differentiates it from the many jp_lit_search sibling tools.

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 says when to use it: for external validation of candidates obtained from NDL/CiNii/J-STAGE/IRDB, and when not to use it: not as a literature search/discovery source. It does not name a specific alternative sibling tool, but the boundary is explicit enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_export_sessionA

export/write file。session_id で明示した調査セッションを repo 内の exports/ または output_path に書き出す。既定は Markdown で、人間が読み返しやすい形に整形する。session は読み取るだけで変更しない。cache 一覧や再抽出結果だけを書き出す場合は jp_lit_export_view を使う

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNo出力形式。markdown は人間向け、json は完全な構造化ログ、csl-json は文献管理向け。markdown
profileNo書き出す範囲。full_log は全履歴、selected は選別済み候補、unselected は未選別候補。full_log
overwriteNotrue の場合のみ既存ファイルの上書きを許可する。
session_idYes書き出す調査セッションID。
output_pathNo出力先ファイルパス。未指定なら repo 内 exports/ に自動生成する。
include_unselectedNomarkdown/json の full_log で未選別候補を含めるかどうか。
allow_external_pathNotrue の場合のみ repo 内 exports/ 外への書き出しを許可する。

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathYes
formatYes
profileYes
item_countYes
session_idYes
exported_atYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description adds useful behavioral context: the session is only read and not modified, and the default Markdown output is formatted for human readability. Annotations state readOnlyHint=false because the tool writes a file, yet the description clarifies that the source session itself is untouched, which prevents a common misreading. It does not contradict the 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?

The description is compact: two sentences that front-load the core action, then add the default format, the important safety note about the session not being modified, and the sibling alternative. Every sentence earns its place, 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?

Despite having seven parameters, the full parameter semantics live in the input schema, and an output schema is present. The description supplies the missing operational context: where output goes, default formatting, read-only treatment of the session, and which sibling to use for lighter exports. Nothing essential is missing.

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?

Schema description coverage is 100%, so the parameters are already fully documented in the input schema. The description only restates session_id, output_path, and the default Markdown format, without adding meaning beyond what the schema provides. This meets the baseline for high schema coverage but does not elevate it.

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: 'export/write file' for the research session identified by session_id. It unambiguously distinguishes this tool from jp_lit_export_view by stating that the latter handles only cache lists or re-extraction results. This is more than sufficient for an agent to know which export tool to select.

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?

The description states the primary use case: writing a session to exports/ or output_path. It also gives an explicit exclusion and alternative: if you only need to write cache lists or re-extraction results, use jp_lit_export_view. This is clear routing between the two export-related siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_export_viewA

export/write file。キャッシュ系ビュー(一覧・横断検索・再抽出)の結果を exports/ または output_path に直接書き出す。refined_results は全件 export と重複確認ノートに対応する。session 全体の調査ログを書き出す場合は jp_lit_export_session を使う。cache や session は読み取るだけで変更しない

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathYes
viewYes
formatYes
item_countYes
exported_atYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool writes files to exports/ or output_path and that it does not modify cache or session. However, it does not detail overwrite behavior or permission requirements. 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with each adding value: purpose, specific features, and alternative. It is front-loaded and efficient, though slightly longer than necessary.

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?

Given the output schema exists, the description need not explain return values. It covers the tool's role, scope, and sibling distinction. Minor omissions like error handling are acceptable for this level of complexity.

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?

There are no parameters, and schema coverage is 100% by default. The description adds context about what is exported (refined_results, cache views) beyond the empty schema, meeting the baseline for no-parameter tools.

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 clearly states the tool exports/writes file results of cache-based views (list, cross-search, re-extraction). It distinguishes itself from jp_lit_export_session by specifying that the latter handles whole session logs.

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?

The description explicitly says when to use this tool (for cache-based view results) and when not (for whole session logs, use jp_lit_export_session). It also notes that cache and session are only read, not modified, providing clear usage boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_find_authority_terms_by_classificationA

external read / local bookkeeping write(非破壊)。Web NDL Authorities で NDC などの分類から対応する件名標目を探し、未知の本を探すための探索語候補を返す。分類記号が分かるときの語彙展開に使い、人名・件名の文字列から典拠候補を探す場合は jp_lit_resolve_authority、文献検索本体は jp_lit_search を使う 外部sourceは変更しない。cache hitでもlocal session履歴を更新し、cache missまたはforce_refreshではlocal cacheを作成・置換する。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo返す件名標目候補の最大件数。最大 50。
schemeNo分類体系。既定は NDC10。NDC10
session_idYes調査案件を識別する application state handle。jp_lit_start_session が返した値を渡す。形式は YYYY-MM-DD-HHMMSS-8桁hex(旧形式 YYYY-MM-DD-HHMMSS も可)。MCP transport の接続IDや cache_key とは別物。
force_refreshNotrue の場合はローカル cache を使わず upstream API から再取得する。false の場合は保存済み cache を優先する。
classificationYesNDC などの分類記号。例: 910.26。

Output Schema

ParametersJSON Schema
NameRequiredDescription
cacheNo
itemsYes
limitYes
totalYes
search_hintsYes
classificationYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses the read/write split: external read but local bookkeeping write, non-destructive, never modifies the external source, and updates local session history even on cache hits while creating/replacing local cache on miss or force_refresh. This is rich, decision-relevant behavioral context that annotations alone do not provide.

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 dense but every clause earns its place: purpose, use case, alternatives, and side effects are all covered. It is slightly monolithic as one long sentence, but there is no redundancy or 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?

Given that an output schema exists and annotations cover the safety profile, the description still provides the critical missing context: when to use the tool, which siblings to prefer for other cases, and the cache/session side effects. Nothing essential for correct tool selection or invocation is missing.

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?

Schema description coverage is 100%, so the schema already documents every parameter. The description adds high-level context about classification-based vocabulary expansion but no per-parameter detail beyond what the schema provides, so the baseline score of 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 operation: use Web NDL Authorities to find subject heading candidates from NDC classifications and return exploration terms for unknown books. It also differentiates itself from siblings by explicitly naming jp_lit_resolve_authority and jp_lit_search, so an agent can distinguish it without opening schemas.

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 explicit when-to-use guidance: use this tool for vocabulary expansion when the classification symbol is known, and explicitly routes to jp_lit_resolve_authority for person-name/subject-string lookups and to jp_lit_search for the main literature search. This is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_find_sessionsA
Read-onlyIdempotent

read-only。過去の調査セッションを主題・キーワード・候補タイトル・メモから検索する。検索語が分かっていて過去の探索履歴を再利用したいときに使う。検索語を覚えていない場合や新しい順の棚卸しには jp_lit_list_sessions を使う。session や cache は変更しない

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo返すセッション候補の最大件数。最大 50。
queryYes過去セッションの検索語。主題、候補タイトル、メモ、検索語 preview に部分一致する。

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
limitYes
queryYes
totalYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readonly and idempotent hints. Description adds explicit statement that session and cache are not modified, reinforcing safety beyond 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?

Two concise sentences: first defines purpose, second gives usage guidance. No extraneous information.

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?

Given output schema exists, description provides sufficient context for a search tool: what it searches, when to use, and that it's non-modifying.

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?

Schema coverage is 100%. Description adds detail for 'query' parameter (matches subject, candidate title, memo, preview) beyond schema's partial-match description.

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?

Description clearly states the tool searches past sessions by topic, keyword, etc., and distinguishes from jp_lit_list_sessions which is for browsing without a search term.

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?

Explicitly tells when to use (when search term is known) and when not (when term is unknown, use list_sessions). Also declares read-only nature.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_get_fulltextA

external read / local bookkeeping write(非破壊)。NDL デジタルコレクション資料の全文 OCR JSON を取得する(インターネット公開資料のみ)。source_id を使う場合は事前に jp_lit_get_record で next_digital_library.available=true を確認すること。特定ページだけ確認する場合は jp_lit_get_text_coordinates、資料内検索でページを探す場合は jp_lit_search_pages を使う。jp_lit_search_fulltext の結果の pid はそのまま渡してよい 外部sourceは変更しない。cache hitでもlocal session履歴を更新し、cache missまたはforce_refreshではlocal cacheを作成・置換する。

ParametersJSON Schema
NameRequiredDescriptionDefault
pidNo次世代デジタルライブラリーの pid。jp_lit_search_fulltext の結果から直接渡せる。
sourceYes通常は ndl_digital。source_id を使う場合は jp_lit_get_record で OCR 利用可否を確認してから指定する。
source_idNoNDL デジタルコレクションの source_id。pid が分かる場合は pid を優先できる。
session_idYes調査案件を識別する application state handle。jp_lit_start_session が返した値を渡す。形式は YYYY-MM-DD-HHMMSS-8桁hex(旧形式 YYYY-MM-DD-HHMMSS も可)。MCP transport の接続IDや cache_key とは別物。
force_refreshNotrue の場合はローカル cache を使わず upstream API から再取得する。false の場合は保存済み cache を優先する。

Output Schema

ParametersJSON Schema
NameRequiredDescription
pidYes
rawYes
cacheNo
pagesNo

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial behavioral detail beyond the annotations: it is an external read with only local bookkeeping writes, it never modifies the external source, and cache hits still update session history while cache misses or force_refresh create/replace local cache. This fully explains the side effects implied by readOnlyHint=false and idempotentHint=false.

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 dense but not bloated; every clause contributes useful guidance. However, it is formatted as one long unbroken paragraph with an abstraction-like prefix before the concrete purpose, which slightly reduces skimmability for an agent.

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?

Given the tool's complexity, the description covers prerequisites, material-type restrictions, alternative tools, accepted input origins, external-source safety, and local cache/session side effects. Since an output schema exists, return-value details are not needed here.

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?

Schema description coverage is 100%, so the schema already explains pid, source, source_id, session_id, and force_refresh in detail. The description adds only a small integration hint about passing pid from jp_lit_search_fulltext, which is also already stated in the schema, so it does not significantly elevate parameter understanding.

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 names a specific action and resource: retrieving full-text OCR JSON from NDL Digital Collection materials, with the clear restriction that only internet-public materials are covered. It also distinguishes itself from sibling tools by pointing to jp_lit_get_text_coordinates for specific pages and jp_lit_search_pages for in-document page discovery.

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?

The description gives explicit routing: use jp_lit_get_record to verify next_digital_library.available=true before using source_id, use jp_lit_get_text_coordinates for single-page checks, and use jp_lit_search_pages for page-level searching. It also clarifies that pids from jp_lit_search_fulltext can be passed directly, which tells the agent exactly how to feed this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_get_recordA

external read / local bookkeeping write(非破壊)。文献レコード詳細を取得する。source=national_archives / jacar は目録メタデータと公式レコードURLを返し、画像本体・IIIF・OCR本文は取得しない。source=nijl_articles は国文学論文DBのHTMLから書誌メタデータと公式レコードURLを best-effort で返し、本文・PDF・OPAC追跡は取得しない。source=kokusho は国書DBのJSONから書誌・著作・所在・公式URL・manifest URL 等のメタデータを返し、manifest 本体・画像・OCR は取得しない。source=ninjal_bibliography は日本語研究・日本語教育文献DBのHTMLから書誌メタデータと本文リンクURLを best-effort で返し、本文自体は取得しない。source=ndl_digital では source_id の代わりにデジコレPIDを pid で指定できる。source_id と pid はどちらか一方だけを指定する。source=ndl_digital の場合、source_metadata.next_digital_library.available=true であれば jp_lit_get_text_coordinates / jp_lit_get_fulltext / jp_lit_search_pages が利用可能。false の場合は OCR 系ツールを利用できない。実務上は次世代側未収録であることが多いが、現実装ではアクセス制限等との厳密な区別はしていない。個人送信対象など、MCP から自動全文取得できなくても NDL ログインや参加館・館内端末で手動閲覧できる導線は content_access.manual_viewing を確認する。同じsourceの選別済み候補を2〜10件まとめて確認する場合は jp_lit_get_records を使う 外部sourceは変更しない。cache hitでもlocal session履歴を更新し、cache missまたはforce_refreshではlocal cacheを作成・置換する。

ParametersJSON Schema
NameRequiredDescriptionDefault
pidNo
sourceYes検索・取得・記録対象の情報源ID。jp_lit_search の結果や source plan に含まれる source を指定する。
source_idNosource 内のレコードID。jp_lit_search の items[].source_id を指定する。
session_idYes調査案件を識別する application state handle。jp_lit_start_session が返した値を渡す。形式は YYYY-MM-DD-HHMMSS-8桁hex(旧形式 YYYY-MM-DD-HHMMSS も可)。MCP transport の接続IDや cache_key とは別物。
force_refreshNotrue の場合はローカル cache を使わず upstream API から再取得する。false の場合は保存済み cache を優先する。

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawYes
urlYes
cacheNo
titleYes
extentYes
sourceYes
authorsYes
summaryYes
languageYes
subjectsYes
subtitleYes
issued_atYes
publisherYes
source_idYes
identifiersYes
availabilityYes
journal_titleYes
material_typeYes
title_readingYes
content_accessYes
issued_at_labelYes
source_metadataYes
publication_placeYes
table_of_contentsYes
alternative_titlesYes
issued_at_precisionYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses that cache hits still update local session history and that cache misses or force_refresh create or replace local cache. It also notes the local bookkeeping write is non-destructive and clarifies that no strict distinction is made between missing content and access restrictions. The description meaningfully extends annotation data without contradicting it.

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 long, but it is densely packed with source-specific behavior and cross-tool routing information. It front-loads the core purpose before enumerating source cases. The length is justified by the multi-source complexity, though it is near the upper limit of conciseness.

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?

Given the large source enum, an output schema, and sibling tools, the description is unusually complete: it covers per-source return scope, pid/source_id exclusivity, downstream tool availability, manual viewing guidance, cache behavior, and the batch alternative. No critical calling context appears to be missing.

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?

Schema coverage is high at 80%, so the baseline is 3; the description adds meaningful semantics by explaining that source_id and pid are alternatives for source=ndl_digital and that exactly one must be specified. It also gives source-specific meaning for source values and clarifies that pid is used instead of source_id. While pid itself has no schema description, the tool description compensates well for that 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 clear verb and resource: it fetches record details from an external source without mutating it. It further distinguishes behavior per source and explicitly names the sibling jp_lit_get_records for batch retrieval, so an agent can tell what this tool is not. The opening 'external read / local bookkeeping write' clarifies the dual read/write nature beyond the generic title.

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?

The description gives explicit when-to-use guidance: single record lookup, with jp_lit_get_records for 2–10 pre-selected candidates. It also describes when downstream tools like jp_lit_get_text_coordinates are usable, and when they are not when source_metadata.next_digital_library.available is false. It explicitly states what is not fetched (images, IIIF, OCR, fulltext) and how to check for manual viewing alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_get_recordsA

external read / local bookkeeping write(非破壊)。同じ source の選別済み文献候補1〜10件をまとめて詳細取得する。入力順を保って候補ごとの成功・失敗、単件 cache 情報を返す。source=ndl_digital では source_ids の代わりに1〜10件の pids を指定できる。source_ids と pids はどちらか一方だけを指定する。source=ndl_digital では content_access.manual_viewing と source_metadata.next_digital_library.available を候補ごとに確認する。検索結果全件の自動詳細化や上流の一括APIではなく、未cacheの各IDには個別の外部照会が発生する。1件だけなら jp_lit_get_record を使う 外部sourceは変更しない。cache hitでもlocal session履歴を更新し、cache missまたはforce_refreshではlocal cacheを作成・置換する。

ParametersJSON Schema
NameRequiredDescriptionDefault
pidsNoデジコレPIDの配列。source=ndl_digital の場合だけ1〜10件を指定する。
sourceYes検索・取得・記録対象の情報源ID。jp_lit_search の結果や source plan に含まれる source を指定する。
session_idYes調査案件を識別する application state handle。jp_lit_start_session が返した値を渡す。形式は YYYY-MM-DD-HHMMSS-8桁hex(旧形式 YYYY-MM-DD-HHMMSS も可)。MCP transport の接続IDや cache_key とは別物。
source_idsNo同じ source から詳細取得する source_id の配列。1〜10件。trim 後の重複は最初の1件だけ処理する。
force_refreshNotrue の場合はローカル cache を使わず upstream API から再取得する。false の場合は保存済み cache を優先する。

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
sourceYes
error_countYes
unique_countYes
success_countYes
requested_countYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses that this performs an external read plus local non-destructive bookkeeping write, preserves input order, triggers individual external lookups for uncached IDs, never modifies the external source, and updates local session history even on cache hits while creating/replacing local cache on misses or force_refresh. These are material behavioral traits not captured by readOnlyHint=false, openWorldHint=true, idempotentHint=false, or destructiveHint=false, and there is no contradiction with 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but mostly every sentence carries necessary information, and it leads with the most important framing ('external read / local bookkeeping write(非破壊)'). It is slightly long and mixes several distinct rules in one paragraph, with a run-on break between 'jp_lit_get_record を使う' and '外部sourceは変更しない', so it loses a point on structural polish.

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?

Given the presence of a rich input schema, annotations, and an output schema, the description covers all the contextual information an agent needs: when to use the tool, what side effects occur, how caching behaves, how inputs are constrained, and how it differs from the single-record sibling. No important call-time decision is left ambiguous.

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?

Schema description coverage is 100%, so the baseline is 3. The description adds value beyond the schema by stating that source_ids and pids are mutually exclusive, that pids are only valid for ndl_digital, and that per-candidate cache behavior is tied to force_refresh. It does not add much per-parameter syntax detail because the schema already covers that, but the added relationships and constraints justify a score above baseline.

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 clearly states the specific verb ('詳細取得する'), resource ('同じ source の選別済み文献候補1〜10件'), and key behavior (batch retrieval returning per-candidate success/failure and cache info in input order). It also explicitly distinguishes itself from the single-record sibling jp_lit_get_record, so an agent can select the right tool without inspecting schemas.

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?

The description gives explicit when-to-use guidance: use for selected candidates from the same source, avoid for auto-enriching all search results or as an upstream bulk API, and use jp_lit_get_record for a single record. It also names the source_ids vs pids exclusivity rule and the ndl_digital-specific pid option, making the choice and invocation conditions unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_get_text_coordinatesA

external read / local bookkeeping write(非破壊)。NDL デジタルコレクション資料のページ単位 OCR テキストと座標を取得する(インターネット公開資料のみ)。source_id を使う場合は事前に jp_lit_get_record で next_digital_library.available=true を確認すること。ページ番号を探す段階では jp_lit_search_pages、全文一括取得は jp_lit_get_fulltext を使う。jp_lit_search_fulltext の結果の pid はそのまま渡してよい 外部sourceは変更しない。cache hitでもlocal session履歴を更新し、cache missまたはforce_refreshではlocal cacheを作成・置換する。

ParametersJSON Schema
NameRequiredDescriptionDefault
pidNo次世代デジタルライブラリーの pid。jp_lit_search_fulltext の結果から直接渡せる。
pageYes取得するページ番号。1 始まり。
sourceYes通常は ndl_digital。source_id を使う場合は jp_lit_get_record で OCR 利用可否を確認してから指定する。
source_idNoNDL デジタルコレクションの source_id。pid が分かる場合は pid を優先できる。
session_idYes調査案件を識別する application state handle。jp_lit_start_session が返した値を渡す。形式は YYYY-MM-DD-HHMMSS-8桁hex(旧形式 YYYY-MM-DD-HHMMSS も可)。MCP transport の接続IDや cache_key とは別物。
force_refreshNotrue の場合はローカル cache を使わず upstream API から再取得する。false の場合は保存済み cache を優先する。

Output Schema

ParametersJSON Schema
NameRequiredDescription
pidYes
rawYes
pageYes
cacheNo
contentsNo
coordjsonNo
page_image_urlYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description clearly discloses behavioral side effects beyond the annotations: it says cache hits still update local session history, cache miss or force_refresh creates/replaces local cache, and it explicitly claims '外部sourceは変更しない' (external sources are not modified). This complements the annotations (readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false) by explaining exactly what local state gets written and what does not.

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 dense and packed with necessary information, and it front-loads the core semantic (external read / local bookkeeping write, non-destructive). It is shaped like a compact technical spec rather than a prose paragraph. It is slightly over-stuffed: the final sentence about cache behavior could be more readable, but it earns a 4 because every sentence carries unique value and it does not repeat the schema or annotations.

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?

Given that the output schema exists (the tool has a return schema, so return details do not need to be explained), the description covers all key behavioral and workflow aspects: the non-destructive read/write split, the internet-public-only constraint, the prerequisite check with jp_lit_get_record, the routing to sibling tools, and the caching semantics. There is nothing an agent needs to decide to call this tool correctly that is missing.

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?

Schema description coverage is 100%, so the baseline is 3; the description adds extra meaning by explaining that pid from jp_lit_search_fulltext can be passed directly (a workflow shortcut), that source_id must be paired with an OCR availability check, and that source should usually be ndl_digital. It also clarifies the role of session_id (application state handle) and distinguishes it from MCP transport connection IDs or cache keys. It loses one point because some parameter details (e.g., force_refresh behavior) are described more in the schema than in the description, but the description still adds workflow-level semantics.

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 operation: get page-unit OCR text and coordinates from NDL Digital Collection materials, with the explicit constraint that only internet-public materials are supported. It also distinguishes itself from siblings (jp_lit_search_pages for finding page numbers, jp_lit_get_fulltext for bulk text) and defines its read/write nature as an external read with local bookkeeping writes.

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?

The description gives explicit when-to-use guidance: use jp_lit_search_pages when locating page numbers, use jp_lit_get_fulltext for full-text batch retrieval, and verify next_digital_library.available=true via jp_lit_get_record when using source_id. It also states that pids from jp_lit_search_fulltext can be passed directly, and it clarifies that source_id requires a prior availability check.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_list_cacheA
Read-onlyIdempotent

read-only。ローカル cache の一覧・集計を返し、tool、session_id、保存日、source で絞り込める。cache_key を探す棚卸しに使う。保存済み jp_lit_search の中身を語で横断検索したい場合は jp_lit_search_cache_index、削除は jp_lit_delete_cache または jp_lit_prune_cache を使う。cache や session は変更しない

ParametersJSON Schema
NameRequiredDescriptionDefault
toolNo一覧対象の tool cache 名。未指定なら全 tool cache を対象にする。
limitNo返す cache entry の最大件数。最大 500。
sourceNo保存済み検索結果の source で絞る。source を持たない cache には一致しない。
saved_onNocache 保存日の簡易指定。YYYY-MM-DD, today, yesterday, last_7_days のいずれか。
saved_toNocache saved_at の上限 ISO datetime。
saved_fromNocache saved_at の下限 ISO datetime。
session_idNoこのセッションに紐づく cache だけを一覧する。

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolYes
itemsYes
limitYes
totalYes
sourceYes
summaryYes
saved_onYes
saved_toYes
cache_keysYes
saved_fromYes
session_idYes
saved_on_resolvedYes

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description's 'read-only' and 'does not modify cache or session' mostly restate the structured metadata. It adds no further behavioral details such as output shape or edge-case behavior, but the output schema and annotations reduce the burden; this is adequate but not beyond baseline expectations.

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?

The description is compact and front-loaded with the most important fact ('read-only'), then states the tool's purpose, filter dimensions, and alternatives in three sentences. The final safety statement is somewhat redundant with the annotations but reinforces the non-destructive nature without wasting much space.

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 read-only, filterable listing tool, the description covers purpose, scoping, main use case, and sibling alternatives. With 100% schema coverage, a full output schema, and annotations that disclose the safety profile, nothing essential needed to call this tool correctly is missing.

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?

Schema description coverage is 100%, so the parameters are already well-documented in the schema. The description reinforces that filtering by tool, session_id, saved date, and source is possible, but adds no genuinely new semantic detail beyond what the schema already provides. 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 clearly specifies a read-only tool that returns a list/aggregation of local cache entries and can be filtered by tool, session_id, saved date, and source. It explicitly names sibling tools (jp_lit_search_cache_index, jp_lit_delete_cache, jp_lit_prune_cache) that cover different operations, so the agent can immediately distinguish this tool from them.

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?

The description states exactly when to use this tool: for inventorying caches to find a cache_key. It also gives explicit alternatives for content search and deletion, telling the agent to use jp_lit_search_cache_index instead for cross-searching saved jp_lit_search contents, and jp_lit_delete_cache or jp_lit_prune_cache for deletion. This is strong routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_list_sessionsA
Read-onlyIdempotent

read-only。過去の調査セッションを新しい順または作成日順に一覧し、trace や選別済み候補の有無、source、日付範囲で絞り込む。検索語を覚えていない調査履歴の棚卸しや再開候補探しに使う。特定語で探す場合は jp_lit_find_sessions を使う。session や cache は変更しない

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo返すセッション件数。最大 100。
sourceNo結果を特定 source に絞る。未指定の場合は tool ごとの既定動作に従う。
sort_byNoセッション一覧の並び替え項目。updated_at
has_traceNo調査目的・source plan・次アクションなど trace を持つセッションだけに絞る。
created_toNocreated_at の上限 ISO datetime。
sort_orderNoセッション一覧の並び順。desc は新しい順。desc
updated_toNoupdated_at の上限 ISO datetime。
created_fromNocreated_at の下限 ISO datetime。
has_selectedNo選別済み候補を持つセッションだけに絞る。
updated_fromNoupdated_at の下限 ISO datetime。

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
limitYes
totalYes
filtersYes
sort_byYes
sort_orderYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint. The description adds value by explicitly stating 'session や cache は変更しない' (does not modify session or cache), which names the specific resources that are unaffected and reinforces the read-only contract in a way that matters to an agent tracking side effects. 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?

Four compact sentences with no filler: read-only status and core function are front-loaded, followed by use cases, alternative tool routing, and a safety note. Every sentence contributes a distinct piece of information, and the description is appropriately sized for a tool with 10 parameters.

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?

The description, combined with full schema coverage and an output schema, fully equips an agent to call this tool correctly. It covers purpose, filters, sort behavior, use case, alternative routing, and side-effect guarantees, leaving no critical gap for a listing operation.

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?

Schema description coverage is 100%, so a baseline of 3 applies. However, the description adds a high-level functional grouping: it maps the listed filters (trace presence, selected-candidate presence, source, date range) to the specific parameter categories, and the ordering phrase ('新しい順または作成日順') clarifies the sort_by/sort_order semantics. This helps an agent select relevant parameters without reading every schema entry.

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 ('一覧し' = list), a clear resource ('過去の調査セッション' = past research sessions), and the key scoping dimensions (ordering, trace/selected presence, source, date range). It also explicitly distinguishes itself from the sibling 'jp_lit_find_sessions' by noting the alternative is for searching by specific terms, so an agent can select this tool confidently.

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?

The description gives explicit use cases: inventorying research history when search terms are not remembered, and finding candidates to resume. It also names the alternative tool 'jp_lit_find_sessions' and states the condition for choosing that instead ('特定語で探す場合は'), offering clear when-to-use vs. when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_prune_cacheA
Destructive

delete when dry_run=false。古いローカル cache 候補を列挙し、既定の dry_run=true では削除せず候補だけ返す。dry_run=false のときだけ older_than_days と limit に一致する cache を削除する。個別 cache_key を削除する場合は jp_lit_delete_cache、一覧確認だけなら jp_lit_list_cache を使う

ParametersJSON Schema
NameRequiredDescriptionDefault
toolNo対象 tool cache 名。未指定なら全 tool cache を対象にする。
limitNo列挙または削除する候補の最大件数。最大 1000。
dry_runNotrue なら削除せず候補だけ返す。false のときだけ実際に古い cache を削除する。
older_than_daysNoこの日数より古い cache を prune 候補にする。

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolYes
limitYes
dry_runYes
messageYes
skippedYes
candidatesYes
total_bytesYes
pruned_countYes
matched_countYes
skipped_countYes
cutoff_saved_atYes
older_than_daysYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations include destructiveHint=true, which aligns with the description's mention of deletion when dry_run=false. The description adds context about the default non-destructive behavior, but lacks details on error handling or side effects, which is acceptable given the annotation coverage.

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 concise sentences that are front-loaded with the key behavior. Every sentence adds value, with no redundant information. Efficiently communicates purpose, usage, and alternatives.

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?

Given the presence of an output schema and annotations, the description covers the essential behavior, parameter interactions, and alternative tools. It is complete for an agent to use this tool appropriately.

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?

Schema coverage is 100% with all parameters described. The description adds meaning beyond schema by explaining the workflow: enumeration vs deletion based on dry_run, and the role of older_than_days and limit. This enhances parameter understanding.

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?

Description clearly states the tool enumerates old cache candidates and deletes them when dry_run=false. It distinguishes from sibling tools jp_lit_delete_cache (individual deletion) and jp_lit_list_cache (listing), making the purpose unambiguous.

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?

Explicitly provides guidance on when to use this tool (pruning old caches) and when to use alternatives. It explains the dry_run parameter behavior, ensuring the agent knows when deletion actually occurs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_refine_resultsA
Read-onlyIdempotent

read-only。保存済み jp_lit_search 結果を upstream 再検索せずローカルでソート・フィルタ・集合演算し、必要時だけ重複候補クラスタも返す。対象は cache_key / cache_keys / session_id のいずれか1つで明示する。include_enrichment=true なら session_id または enrichment_cache_keys で指定した保存済み jp_lit_enrich_record cache を cluster に重ねるが、Crossref/OpenAlex へ新規照会しない。cache_key を探す段階では jp_lit_search_cache_index または jp_lit_list_cache を使う。cache や session は変更しない

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
limitYes
key_byYes
offsetYes
combineYes
clustersNo
total_afterYes
total_beforeYes
base_cache_keyYes
totals_by_baseYes
base_cache_keysYes
cluster_summaryNo

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses that it never mutates cache or session, never re-queries upstream even when enrichment is enabled, and only overlays saved enrichment caches conditionally. This gives an agent a precise behavioral model not inferable from readOnlyHint/idempotentHint alone.

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 core behavior is front-loaded, and the description packs the important constraints into a compact form. It is slightly dense and has minor redundancy between 'read-only' and 'cacheやsessionは変更しない', but every distinct behavior is covered without filler.

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 tool with no input schema and an output schema, the description adequately covers targeting, no-upstream behavior, enrichment overlay conditions, and non-mutation guarantees. It does not spell out the exact refinement operations or cluster-request semantics, but those are likely expressed in the output schema or request parameters.

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?

The input schema is empty, so the description is the only source for parameter meaning. It names cache_key, cache_keys, session_id, include_enrichment, and enrichment_cache_keys, and explains their roles. However, the sort/filter/set-operation parameters are not explicitly enumerated, leaving some ambiguity.

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 concrete action: refine saved jp_lit_search results locally via sort/filter/set operations without upstream re-search. It distinguishes itself from siblings like jp_lit_search and jp_lit_enrich_record by emphasizing it operates on cached results and never queries Crossref/OpenAlex.

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 clearly indicates this tool is for refining already-saved jp_lit_search results and names cache_key/cache_keys/session_id as the targeting mechanism. It also routes cache_key discovery to jp_lit_search_cache_index or jp_lit_list_cache, but does not explicitly state when to prefer this over running a new search.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_resolve_authorityA

external read / local bookkeeping write(非破壊)。Web NDL Authorities で人名・団体名・件名などの典拠候補を確認し、別名義や安全な検索ヒントを返す。文献検索 source ではなく検索語展開・名義確認の補助 tool。分類記号から件名候補を探す場合は jp_lit_find_authority_terms_by_classification、実際の文献検索は jp_lit_search を使う 外部sourceは変更しない。cache hitでもlocal session履歴を更新し、cache missまたはforce_refreshではlocal cacheを作成・置換する。

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNo探す典拠種別。all は人名・団体名・件名などを横断する。all
limitNo返す典拠候補の最大件数。最大 20。
queryYes確認したい人名・団体名・件名・統一タイトルなどの典拠検索語。
session_idYes調査案件を識別する application state handle。jp_lit_start_session が返した値を渡す。形式は YYYY-MM-DD-HHMMSS-8桁hex(旧形式 YYYY-MM-DD-HHMMSS も可)。MCP transport の接続IDや cache_key とは別物。
force_refreshNotrue の場合はローカル cache を使わず upstream API から再取得する。false の場合は保存済み cache を優先する。

Output Schema

ParametersJSON Schema
NameRequiredDescription
typeYes
cacheNo
itemsYes
limitYes
queryYes
totalYes
search_hintsYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations say readOnlyHint=false and destructiveHint=false, and the description resolves this apparent tension by clarifying 'external read / local bookkeeping write (non-destructive)'. It further explains side effects beyond annotations: external source is never changed, cache hits still update local session history, and cache misses or force_refresh create/replace local cache. This is rich behavioral context that annotations alone do not provide.

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 dense but compact, front-loading the core purpose and safety profile, then adding routing alternatives and cache behavior. Every sentence carries useful information; the only minor flaw is slightly run-on punctuation and a somewhat abrupt transition between the sibling-tool routing and the cache side-effect clause.

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 moderately complex tool with an output schema and annotations, the description adequately covers external behavior, local state mutation, cache semantics, sibling differentiation, and the non-destructive nature of the operation. Nothing critical that an agent needs to invoke it correctly is missing.

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?

Schema description coverage is 100%, so the schema already documents all five parameters including query, session_id, type, limit, and force_refresh behavior. The description adds high-level context about returning aliases and search hints, but does not materially add parameter-level semantics beyond the schema.

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?

Description states a specific verb (確認し、返す) and a clear resource (Web NDL Authorities), and defines the core purpose: resolving authority candidates for person/corporate/subject names and returning aliases and safe search hints. It also explicitly distinguishes itself from bibliographic search tools, making sibling differentiation unambiguous.

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?

The description gives explicit routing guidance: this is not a literature search source but a search-term expansion/name-confirmation helper; for classification-based subject lookup use jp_lit_find_authority_terms_by_classification, and for actual literature search use jp_lit_search. This tells an agent exactly when to choose this tool versus named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_search_cache_indexA
Read-onlyIdempotent

read-only。保存済み jp_lit_search cache を横断検索し、再抽出や export に渡せる cache_key 一覧を返す。新規に外部検索したい場合は jp_lit_search、保存済み cache の棚卸しは jp_lit_list_cache、検索結果の集合演算や重複確認は jp_lit_refine_results を使う。ローカル cache と session 紐づけを読むだけで、cache や session は変更しない

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo返す cache entry の最大件数。最大 200。
queryYes保存済み jp_lit_search 結果内で探す語。元の検索語、タイトル、著者、件名、source_id を NFKC 正規化して部分一致検索する。
sourceNo保存済み検索結果の source を絞る。例: ndl_catalog, cinii_books。未指定なら source を問わない。
saved_onNocache 保存日の簡易指定。YYYY-MM-DD, today, yesterday, last_7_days のいずれか。
saved_toNocache saved_at の上限 ISO datetime。saved_from と組み合わせて保存時刻を絞る。
issued_toNo結果 item の issued_at 上限。issued_from と組み合わせて刊行年範囲を絞る。
saved_fromNocache saved_at の下限 ISO datetime。saved_on より細かく保存時刻を絞る場合に使う。
session_idNoこのセッションに紐づく jp_lit_search cache だけを検索する。未指定なら全セッションに紐づく cache を対象にする。
issued_fromNo結果 item の issued_at 下限。年だけの '1900' など、既存データと同じ文字列表現で比較する。

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
limitYes
queryYes
totalYes
sourceYes
saved_onYes
saved_toYes
issued_toYes
cache_keysYes
saved_fromYes
session_idYes
issued_fromYes
saved_on_resolvedYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds useful context beyond those: it reads only local cache and session bindings, does not modify cache or session, and clarifies that the output is a lightweight key list. This is consistent with annotations and slightly enriches them.

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?

The description is compact, front-loaded with the read-only nature and core action, and each sentence earns its place. It combines purpose, sibling routing, and behavioral transparency without redundancy or 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?

Given the output schema exists, the description does not need to explain return structure. It covers the core use case, safety profile, parameter context at the schema level, and sibling distinctions, leaving no major gap for an agent deciding whether and how to call this tool.

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?

Schema description coverage is 100%, with detailed descriptions for all 9 parameters including enums, defaults, and semantics. The tool description does not add parameter-specific meaning beyond stating the search targets saved caches, so the baseline of 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 verb and resource: it searches across saved jp_lit_search caches and returns a list of cache_keys intended for re-extraction or export. It distinguishes itself clearly from siblings such as jp_lit_search, jp_lit_list_cache, and jp_lit_refine_results.

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 explicitly says when to use this tool (searching saved caches to obtain cache_keys for re-extraction/export) and names concrete alternatives for adjacent use cases: jp_lit_search for new external searches, jp_lit_list_cache for inventory, and jp_lit_refine_results for set operations/deduplication.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_search_fulltextA

external read / local bookkeeping write(非破壊)。次世代デジタルライブラリー収録資料を対象に OCR 全文テキストからキーワード検索する。デジコレ本体の全文検索画面/APIではなく、デジコレ本体の「ログインなしで閲覧可能」資料全体も対象ではない。館内限定・送信サービス限定資料を含め、公式検索画面の全文ヒットは網羅しない。網羅性が必要な調査では、この結果だけで「デジコレ全文にヒットなし」と断定せず、公式画面でのブラウザ検索・手動確認を併用する。searchfield=contentonly で本文のみ、metaonly でメタデータのみ、all で両方を検索。結果には pid が含まれ、特定資料内のページ特定は jp_lit_search_pages、ページ画像と OCR 座標確認は jp_lit_get_text_coordinates で行う 外部sourceは変更しない。cache hitでもlocal session履歴を更新し、cache missまたはforce_refreshではlocal cacheを作成・置換する。

ParametersJSON Schema
NameRequiredDescriptionDefault
fromNo検索結果の offset。0 始まり。
sizeNo返す資料候補の最大件数。最大 100。
f_ndcNo次世代デジタルライブラリー Book API の f-ndc filter。上位分類は 9* のような前方一致で指定する。9 のような1-2桁の数字だけを渡した場合は 9* に正規化する。空文字・空白だけの値は未指定扱いにする。
keywordYesNDL デジタルコレクション公開範囲の OCR / メタデータから探す語。
session_idYes調査案件を識別する application state handle。jp_lit_start_session が返した値を渡す。形式は YYYY-MM-DD-HHMMSS-8桁hex(旧形式 YYYY-MM-DD-HHMMSS も可)。MCP transport の接続IDや cache_key とは別物。
searchfieldNo検索対象。contentonly は本文 OCR、metaonly はメタデータ、all は両方。contentonly
fc_is_classicNo古典籍フラグで絞る場合に指定する。
force_refreshNotrue の場合はローカル cache を使わず upstream API から再取得する。false の場合は保存済み cache を優先する。

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawYes
fromYes
cacheNo
itemsYes
totalYes
keywordYes
searchfieldYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial context beyond annotations: it clarifies that readOnlyHint=false means 'external read / local bookkeeping write (non-destructive)', explicitly states external sources are unchanged, and details the cache side-effect semantics (cache hit updates session history; cache miss or force_refresh creates/replaces local cache). This resolves the apparent tension of readOnlyHint=false with a non-destructive operation. 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and front-loads the core purpose, with every sentence carrying substantive information. However, it is a single run-on paragraph mixing purpose, exclusions, param semantics, sibling routing, and cache behavior; '外部sourceは変更しない' partially repeats the opening 'external read / local bookkeeping write' claim. Line breaks or topic separation would improve scannability.

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 tool with significant coverage caveats, this is remarkably complete. It captures the critical failure mode (false 'no hits' conclusions from incomplete coverage) and prescribes the mitigation. Combined with the presence of an output schema, the description covers purpose, exclusions, param behavior, sibling routing, and side effects. Nothing an agent needs to call it correctly is missing.

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?

Schema description coverage is 100%, so baseline 3 applies. The description adds a small amount of param context (searchfield=contentonly 本文のみ/metaonly メタデータのみ/all 両方, and force_refresh cache semantics), but these largely mirror what the schema already documents. It does not meaningfully compensate beyond the schema's existing descriptions.

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+resource: keyword search (キーワード検索する) over OCR full text (OCR 全文テキスト) in the next-generation digital library. It also differentiates itself from the main Digital Collection full-text search screen/API and from sibling tools like jp_lit_search and jp_lit_search_kokusho_fulltext by declaring what it is NOT.

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?

The description gives explicit when-to-use and when-not-to-use guidance: it covers next-gen library OCR, but not the main Digital Collection API, not login-free materials, and not library-restricted/transmission-service materials. It warns against concluding 'no hits' from this tool alone and instructs combining with official browser search. It also routes to specific siblings: jp_lit_search_pages for page identification and jp_lit_get_text_coordinates for OCR coordinates.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_search_guides_casesA

external read / local bookkeeping write(非破壊)。レファレンス協同データベースのレファレンス事例を検索する。類似質問、回答プロセス、参考資料を調査の次の一手の材料として参照するためのツール 外部sourceは変更しない。cache hitでもlocal session履歴を更新し、cache missまたはforce_refreshではlocal cacheを作成・置換する。

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo検索結果ページ番号。1 始まり。
limitNo返す事例・マニュアルの最大件数。最大 20。
queryYesレファレンス協同データベースから探す調べ方・事例の検索語。
lib_idNo特定図書館の CRD library ID に絞る場合に指定する。
lib_groupNo公共図書館、大学図書館、専門図書館などの館種で絞る。
session_idYes調査案件を識別する application state handle。jp_lit_start_session が返した値を渡す。形式は YYYY-MM-DD-HHMMSS-8桁hex(旧形式 YYYY-MM-DD-HHMMSS も可)。MCP transport の接続IDや cache_key とは別物。
force_refreshNotrue の場合はローカル cache を使わず upstream API から再取得する。false の場合は保存済み cache を優先する。

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawYes
pageYes
typeYes
cacheNo
itemsYes
limitYes
queryYes
totalYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly discloses that the operation is non-destructive, that external sources are never modified, and that local session history/cache is updated or replaced depending on cache hit/miss or force_refresh. This adds meaningful behavioral detail beyond the annotations, especially since readOnlyHint is false and destructiveHint is false.

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 front-loaded with the key safety property (external read / local bookkeeping write), then states the search resource, purpose, and cache behavior. It is dense but not redundant; a slight loss of clarity comes from mixing safety, purpose, and cache mechanics in one run-on sentence.

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?

With an output schema present, annotations provided, and a description covering side effects, cache behavior, and intended research purpose, the tool is well-specified. It could be slightly stronger by explicitly naming sibling search tools to help route selection, but this is a minor gap given how specific the resource 'reference cases' is.

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 input schema provides 100% description coverage for all parameters, so the schema already documents parameter semantics. The description adds high-level behavior around caching and force_refresh, but does not add parameter-specific meaning beyond the schema, which matches the baseline for full schema coverage.

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 clearly states the tool searches reference cases (レファレンス事例) in the Reference Cooperative Database, using a specific verb and resource. This distinguishes it from siblings like jp_lit_search_guides_manuals and jp_lit_search, which cover different scopes.

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 intended usage context: it is meant to provide similar questions, answer processes, and reference materials as input for the next research step. It does not explicitly name alternatives or when-not-to-use conditions, but the context is sufficient for an agent to decide when this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_search_guides_manualsA

external read / local bookkeeping write(非破壊)。レファレンス協同データベースの調べ方マニュアルを検索する。書誌検索ではなく、どの資料や索引・参考図書をどう使って調べるかの手がかりを得るためのツール 外部sourceは変更しない。cache hitでもlocal session履歴を更新し、cache missまたはforce_refreshではlocal cacheを作成・置換する。

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo検索結果ページ番号。1 始まり。
limitNo返す事例・マニュアルの最大件数。最大 20。
queryYesレファレンス協同データベースから探す調べ方・事例の検索語。
lib_idNo特定図書館の CRD library ID に絞る場合に指定する。
lib_groupNo公共図書館、大学図書館、専門図書館などの館種で絞る。
session_idYes調査案件を識別する application state handle。jp_lit_start_session が返した値を渡す。形式は YYYY-MM-DD-HHMMSS-8桁hex(旧形式 YYYY-MM-DD-HHMMSS も可)。MCP transport の接続IDや cache_key とは別物。
force_refreshNotrue の場合はローカル cache を使わず upstream API から再取得する。false の場合は保存済み cache を優先する。

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawYes
pageYes
typeYes
cacheNo
itemsYes
limitYes
queryYes
totalYes

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly explains the non-destructive local-write behavior: external source is unchanged, cache hits update session history, and cache misses or force_refresh create/replace local cache. This adds significant behavioral context beyond the annotations, clarifying why readOnlyHint is false while destructiveHint is false.

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 contains no filler; every clause adds information about scope, side effects, or cache behavior. It is slightly dense and run-on, and it leads with side-effect status rather than the core search purpose, but it remains efficient.

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 tool with 7 parameters and an output schema, the description covers the non-bibliographic purpose, external/local side effects, and cache/force_refresh semantics. The main gap is the lack of explicit guidance on how this relates to sibling tools like jp_lit_search_guides_cases, but an agent has enough to invoke it correctly.

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 input schema already documents all 7 parameters with 100% coverage, including query, page, limit, lib_id, lib_group, session_id, and force_refresh. The description adds overall purpose but no additional per-parameter meaning, so it stays at the baseline for high schema coverage.

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 specific verb and resource: it searches how-to manuals in the Reference Cooperative Database. It also clarifies that this is not a bibliographic search but a tool for getting research clues about materials, indexes, and reference books. It does not explicitly distinguish itself from the sibling tool jp_lit_search_guides_cases, so it is clear but not fully differentiated.

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 phrase '書誌検索ではなく、どの資料や索引・参考図書をどう使って調べるかの手がかりを得るためのツール' implies when the tool is appropriate, but there is no explicit when-to-use or when-not-to-use guidance. It does not name alternatives or explain how this differs from sibling tools such as jp_lit_search_guides_cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_search_illustrationsA

external read / local bookkeeping write(非破壊)。NDL デジタルコレクション全資料の図版・挿絵をテキストキーワードで検索する(公開範囲のみ)。結果には IIIF 画像 URL(ページ全体・図版トリミング)を含む 外部sourceは変更しない。cache hitでもlocal session履歴を更新し、cache missまたはforce_refreshではlocal cacheを作成・置換する。

ParametersJSON Schema
NameRequiredDescriptionDefault
fromNo検索結果の offset。0 始まり。
sizeNo返す図版候補の最大件数。最大 100。
keywordYesNDL デジタルコレクション公開範囲の図版タグ・周辺テキストから探す語。
session_idYes調査案件を識別する application state handle。jp_lit_start_session が返した値を渡す。形式は YYYY-MM-DD-HHMMSS-8桁hex(旧形式 YYYY-MM-DD-HHMMSS も可)。MCP transport の接続IDや cache_key とは別物。
force_refreshNotrue の場合はローカル cache を使わず upstream API から再取得する。false の場合は保存済み cache を優先する。

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawYes
fromYes
cacheNo
itemsYes
totalYes
keywordYes

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the annotations by disclosing that the external source is never modified, that local session history is updated even on cache hit, and that local cache is created/replaced on cache miss or force_refresh. This gives agents precise expectations about side effects without contradicting the 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?

The description is dense but every clause earns its place: side-effect summary, search scope, result contents, and cache behavior. It is front-loaded with the non-destructive nature and immediately specifies the resource and action. No filler or redundant restatement.

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?

Given the output schema exists, annotations are present, and all parameters are described, the free-text description covers purpose, scope, result content, and cache/session side effects thoroughly. The only gap is the absence of explicit guidance about when not to use this tool versus the many sibling search tools, but the described focus on illustrations makes the use case reasonably clear.

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?

Schema description coverage is 100%, so each parameter already has a meaningful description. The tool description adds context about cache behavior and IIIF image results, but does not materially deepen understanding of individual parameters beyond what the schema provides. 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 verb-resource pair: it searches illustrations and figures (図版・挿絵) across the full NDL Digital Collection by text keyword, restricted to publicly available material. This clearly differentiates it from sibling tools like jp_lit_search_fulltext or jp_lit_search_kokusho_image_tags by focusing on illustration search with IIIF image URL results.

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 for when this tool is appropriate: searching illustration/figure content by text keyword across all public NDL materials. It also clarifies scope boundaries (public range only) and side effects. It does not explicitly name when-not-to-use or alternative sibling tools, so it misses the top bar of 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_search_kaken_projectsA

external read / local bookkeeping write(非破壊)。KAKEN から研究課題を検索し、研究テーマ・キーワード・報告書 PDF・成果リストの手がかりを返す補助 tool。論文・図書の文献確定は CiNii / J-STAGE / IRDB / NDL で再確認する 外部sourceは変更しない。cache hitでもlocal session履歴を更新し、cache missまたはforce_refreshではlocal cacheを作成・置換する。

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo検索結果ページ番号。1 始まり。
limitNo返す研究課題候補の最大件数。最大 20。
queryYesKAKEN から探す研究課題名・キーワード・研究テーマ。
session_idYes調査案件を識別する application state handle。jp_lit_start_session が返した値を渡す。形式は YYYY-MM-DD-HHMMSS-8桁hex(旧形式 YYYY-MM-DD-HHMMSS も可)。MCP transport の接続IDや cache_key とは別物。
detail_limitNo詳細ページを追加取得する候補数。0 なら詳細取得しない。最大 10。
force_refreshNotrue の場合はローカル cache を使わず upstream API から再取得する。false の場合は保存済み cache を優先する。
to_fiscal_yearNo研究期間の終了年度上限。
include_outputsNotrue の場合は成果リスト preview も取得する。文献確定は CiNii / J-STAGE / IRDB / NDL で再確認する。
researcher_nameNo研究代表者・研究分担者名で絞る場合に指定する。
from_fiscal_yearNo研究期間の開始年度下限。

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageYes
cacheNo
itemsYes
limitYes
queryYes
totalYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by characterizing the operation as 'external read / local bookkeeping write (non-destructive)' and explicitly confirming external sources are unchanged. It also discloses cache replacement and session-history updates, which align with and explain the readOnlyHint=false and idempotentHint=false annotations without contradiction.

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?

Each segment of the description contributes substantive scope or behavioral information, and the non-destructive external/local label is front-loaded. It is slightly dense and run-on in the middle, so it is not quite as clean as the highest benchmark.

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 10-parameter tool, the description, combined with 100% schema coverage and an output schema, is complete enough for correct invocation: it covers domain scope, side effects, cache semantics, external-source non-modification, and the follow-up verification caveat. No critical operating detail is missing.

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?

Schema coverage is 100%, so the baseline is 3. The description adds useful meaning beyond the schema: results are 'clues' rather than verified citations, cache hits still update session history, and cache miss/force_refresh replaces local cache, which clarifies session_id, force_refresh, and include_outputs behavior.

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?

States the exact verb and resource (search KAKEN research projects) and describes what it returns: research themes, keywords, report PDFs, and output-list leads. The 'supplementary tool' framing and KAKEN scope clearly separate it from general literature, guide, and illustration searches among siblings.

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?

Explicitly says final confirmation of papers and books must be re-checked via CiNii / J-STAGE / IRDB / NDL, which tells an agent when not to treat this tool's results as authoritative. It also states that external sources are not modified and local cache/session behavior varies by hit/miss, giving concrete operational context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_search_kokusho_fulltextA

external read / local bookkeeping write(非破壊)。国書データベースの翻刻/OCR系スニペットをキーワード検索する。本文全体・manifest 本体・画像本体は取得せず、bid、コマ番号、スニペット、公式確認 URL を返す。国書DB Web アプリの公開 JSON endpoint に依存するため、採用時は公式画面で最終確認する 外部sourceは変更しない。cache hitでもlocal session履歴を更新し、cache missまたはforce_refreshではlocal cacheを作成・置換する。

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo検索結果ページ番号。1 始まり。
limitNo返す候補の最大件数。最大 100。
keywordYes国書データベースの翻刻/OCR スニペットまたは画像タグから探す語。
session_idYes調査案件を識別する application state handle。jp_lit_start_session が返した値を渡す。形式は YYYY-MM-DD-HHMMSS-8桁hex(旧形式 YYYY-MM-DD-HHMMSS も可)。MCP transport の接続IDや cache_key とは別物。
force_refreshNotrue の場合はローカル cache を使わず upstream API から再取得する。false の場合は保存済み cache を優先する。

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawYes
pageYes
cacheNo
itemsYes
limitYes
totalYes
keywordYes

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial behavioral context beyond annotations: external read vs local bookkeeping write, non-destructive cache behavior, cache-hit session history updates, cache creation/replacement on miss or force_refresh, and dependence on a public JSON endpoint. This fully explains side effects without contradicting annotations.

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 information-dense and front-loaded with the essential external-read/local-write nature. Minor redundancy exists between '非破壊' and 'local bookkeeping write' and between 'external read' and '外部sourceは変更しない', but nearly every sentence conveys a distinct operational fact.

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?

Given the tool's complexity—external dependency, local cache semantics, session-history side effects, and snippet-scoped results—the description covers all necessary operational context. The output schema exists, and the description complements it by explaining exactly what kind of data is returned and how to treat cached vs fresh results.

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?

Schema description coverage is 100%, so the baseline is 3. The description confirms the search targets snippets and clarifies that returned data is snippet-level, but it does not add new meaning about individual parameters beyond what the schema already provides.

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 names a specific verb and resource: keyword search over Kokusho DB transcription/OCR snippets. It further distinguishes itself by stating what it does not fetch (full text, manifest body, image body) and what it returns (bid, frame number, snippet, official URL), making its role clear relative to sibling search/retrieval tools.

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: use this for snippet-level keyword search, not for full-text or image retrieval, and confirm results on the official screen before adoption. It does not explicitly name alternative tools or state when to prefer them, so it stops short of full referral guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_search_kokusho_image_tagsA

external read / local bookkeeping write(非破壊)。国書データベースの画像タグをキーワード検索する。画像本体や IIIF image API は取得せず、タグ文字列、画像パス文字列、bid、コマ番号、公式確認 URL を返す。国書DB Web アプリの公開 JSON endpoint に依存するため、採用時は公式画面で最終確認する 外部sourceは変更しない。cache hitでもlocal session履歴を更新し、cache missまたはforce_refreshではlocal cacheを作成・置換する。

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo検索結果ページ番号。1 始まり。
limitNo返す候補の最大件数。最大 100。
keywordYes国書データベースの翻刻/OCR スニペットまたは画像タグから探す語。
session_idYes調査案件を識別する application state handle。jp_lit_start_session が返した値を渡す。形式は YYYY-MM-DD-HHMMSS-8桁hex(旧形式 YYYY-MM-DD-HHMMSS も可)。MCP transport ���接続IDや cache_key とは別物。
force_refreshNotrue の場合はローカル cache を使わず upstream API から再取得する。false の場合は保存済み cache を優先する。

Output Schema

ParametersJSON Schema
NameRequiredDescription
rawYes
pageYes
cacheNo
itemsYes
limitYes
totalYes
keywordYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description clearly discloses the mixed read/write behavior ('external read / local bookkeeping write') and that it is non-destructive, which adds meaning beyond the annotations. It also explains cache semantics: cache hits still update session history, while cache misses or force_refresh create/replace local cache. This is valuable behavioral context beyond what readOnlyHint=false and destructiveHint=false alone convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is information-dense and front-loads the most important framing, but it reads as a long run-on passage with multiple clauses and a fragmented transition ('最終確認する 外部sourceは変更しない'). Splitting the cache behavior, external dependency, and return-value list into separate sentences or bullets would improve scannability. Still, every element contributes useful information.

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 tool with external network dependency, local side effects, and an output schema, the description covers the essential operational context: what it returns, what it does not fetch, its upstream dependency, the need for official confirmation, and its cache/history behavior. The agent has enough information to decide whether to call it and to anticipate its side effects.

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?

The schema already covers all parameters with descriptions, so the baseline is 3. The description adds extra meaning for force_refresh by explaining the exact side effects on local cache and session history, and it clarifies that keyword is used for tag matching. This goes beyond the schema text without duplicating it.

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 ('画像タグをキーワード検索する') and clearly states what it returns: tag strings, image path strings, bid, frame number, and official confirmation URL. It also explicitly says it does not fetch image bodies or IIIF APIs, which helps distinguish it from illustration- or image-related siblings. The tool's scope is unambiguous.

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 a clear context: search image tags in the National Book Database and get metadata rather than image content. However, it does not explicitly name sibling tools or state when to prefer this tool over alternatives like jp_lit_search_illustrations. The caveat about verifying on the official screen is useful but does not fully substitute for explicit tool-selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_search_pagesA

external read / local bookkeeping write(非破壊)。NDL デジタルコレクション資料内のページをキーワードで全文検索する(インターネット公開資料のみ)。source_id を使う場合は事前に jp_lit_get_record で next_digital_library.available=true を確認すること。全資料から候補 pid を探す段階では jp_lit_search_fulltext、特定ページの OCR テキストと画像 URL 確認は jp_lit_get_text_coordinates を使う。jp_lit_search_fulltext の結果の pid はそのまま渡してよい 外部sourceは変更しない。cache hitでもlocal session履歴を更新し、cache missまたはforce_refreshではlocal cacheを作成・置換する。

ParametersJSON Schema
NameRequiredDescriptionDefault
pidNo次世代デジタルライブラリーの pid。jp_lit_search_fulltext の結果から直接渡せる。
fromNo検索結果の offset。0 始まり。
sizeNo返すページ一致の最大件数。最大 100。
sourceYes通常は ndl_digital。source_id を使う場合は jp_lit_get_record で OCR 利用可否を確認してから指定する。
keywordYes資料内 OCR テキストから探す語。
source_idNoNDL デジタルコレクションの source_id。pid が分かる場合は pid を優先できる。
session_idYes調査案件を識別する application state handle。jp_lit_start_session が返した値を渡す。形式は YYYY-MM-DD-HHMMSS-8桁hex(旧形式 YYYY-MM-DD-HHMMSS も可)。MCP transport の接続IDや cache_key とは別物。
force_refreshNotrue の場合はローカル cache を使わず upstream API から再取得する。false の場合は保存済み cache を優先する。

Output Schema

ParametersJSON Schema
NameRequiredDescription
pidYes
rawYes
fromYes
cacheNo
itemsNo
totalYes
keywordYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses important behavior beyond the annotations: it is an external read but performs local bookkeeping writes, is non-destructive, never modifies external sources, updates local session history even on cache hits, and creates/replaces local cache on cache miss or force_refresh. This is consistent with the annotations—readOnlyHint=false matches the local write behavior, and destructiveHint=false matches '非破壊'—so there is no contradiction.

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 one dense block but every clause carries operational value: scope, sibling routing, source_id precondition, pid pass-through, non-destructive guarantee, and cache behavior. It could be more scannable with a list or clearer sentence breaks, but it is not bloated.

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?

Given the tool's complexity—8 parameters, many siblings, and an output schema—the description covers the essential workflow context: external access pattern, internet-public-only constraint, source_id prerequisite, when to use alternatives, direct pid reuse, and cache/session side effects. The output schema already handles return-value details.

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?

Schema description coverage is 100%, so the baseline is 3. The description reinforces parameter relationships like passing jp_lit_search_fulltext pids directly and checking OCR availability before using source_id, but the schema already documents these details, so the description adds little new parameter-level meaning beyond what is already structured.

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 clearly states a specific verb and resource: keyword full-text search of pages inside NDL Digital Collection materials, with the scope constraint of 'インターネット公開資料のみ'(internet-public materials only). It also explicitly distinguishes itself from sibling tools by saying candidate-pid discovery belongs to jp_lit_search_fulltext and specific-page OCR/image checks belong to jp_lit_get_text_coordinates.

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 provides explicit routing: use jp_lit_search_fulltext when searching candidate pids across all materials, use jp_lit_get_text_coordinates for page-level OCR text and image URLs, and check jp_lit_get_record first when using source_id. It also states that pids from jp_lit_search_fulltext can be passed directly, leaving no ambiguity about when to invoke this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_start_sessionA

write: session lifecycle。現在の調査セッションを履歴として保持したまま、新しい空の調査セッションを開始する。research_goal と scope_note は新セッションの trace に保存され、検索結果・候補・注釈は旧セッションに残る。既存セッションへ目的や次アクションを追記するだけなら jp_lit_update_session_trace、旧セッションの確認は jp_lit_list_sessions / jp_lit_export_session を使う

ParametersJSON Schema
NameRequiredDescriptionDefault
scope_noteNo新しい調査セッションの範囲、除外範囲、前提の短いメモ。
research_goalNo新しい調査セッションの目的。未指定なら目的なしで開始する。

Output Schema

ParametersJSON Schema
NameRequiredDescription
traceYes
created_atYes
session_idYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explains that research_goal and scope_note are saved in the new session's trace, while search results, candidates, and annotations remain in the old session. This adds context beyond annotations, which already indicate the tool is not read-only and not destructive. However, it does not mention any potential limitations like session count limits or authentication requirements.

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?

The description is concise, with the main action stated first, followed by the effect on parameters, and then alternative tools for clarity. Every sentence adds value, and there is no redundancy or fluff.

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?

Given the tool's role in session lifecycle management and the presence of an output schema, the description covers the essential behavioral aspects. It explains the fate of old session data and parameters. However, it does not describe the output or what happens if no parameters are provided beyond starting without a purpose, leaving minor gaps.

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?

Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining how the parameters are used: both research_goal and scope_note are stored in the new session's trace. It also clarifies that if research_goal is unspecified, the session starts without a purpose, which is not explicit in the schema.

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 clearly states the action: starting a new empty research session while preserving the current session as history. It uses specific verbs and resources, and differentiates from siblings by naming jp_lit_update_session_trace for updates and jp_lit_list_sessions/jp_lit_export_session for reviewing old sessions.

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?

The description explicitly provides when-to-use and when-not-to-use guidance. It states to use jp_lit_update_session_trace for appending to an existing session, and jp_lit_list_sessions or jp_lit_export_session for checking old sessions, making it clear when to choose this tool over alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_suggest_classification_codesA

external read / local bookkeeping write(非破壊)。Web NDL Authorities で件名語から NDC/NDLC 分類記号を探し、CiNii Books の category filter に渡せる suggested_category_param と jp_lit_search 呼び出し例を返す。分類記号から件名語を探す場合は jp_lit_find_authority_terms_by_classification、実際の文献検索は jp_lit_search を使う 外部sourceは変更しない。cache hitでもlocal session履歴を更新し、cache missまたはforce_refreshではlocal cacheを作成・置換する。

ParametersJSON Schema
NameRequiredDescriptionDefault
termYes分類記号を探す元になる件名・主題語。例: 近代日本文学。
schemesNo返す分類体系。CiNii Books category には NDC/NDLC の notation を半角スペース区切りで渡す。
max_codesNosuggested_category_param に含める分類記号の最大件数。
session_idYes調査案件を識別する application state handle。jp_lit_start_session が返した値を渡す。形式は YYYY-MM-DD-HHMMSS-8桁hex(旧形式 YYYY-MM-DD-HHMMSS も可)。MCP transport の接続IDや cache_key とは別物。
concept_limitNoNDLSH 件名概念候補の最大件数。
force_refreshNotrue の場合はローカル cache を使わず upstream API から再取得する。false の場合は保存済み cache を優先する。

Output Schema

ParametersJSON Schema
NameRequiredDescription
termYes
cacheNo
itemsYes
cautionYes
schemesYes
max_codesYes
used_codesYes
total_codesYes
concept_limitYes
total_conceptsYes
suggested_searchYes
suggested_category_paramYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses the local write side effects (session history update even on cache hit, cache creation/replacement on miss or force_refresh), the non-destructive nature, and the fact that external sources are not modified. This meaningfully complements the annotations and sets correct expectations for a non-idempotent, open-world tool.

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?

The description opens with a compact safety/effect classification, then states the operation, routes to siblings, and closes with cache behavior. Every sentence earns its place; there is no repetition of schema fields or 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 6-parameter tool with a rich output schema, the description supplies the missing decision context: external data sources involved, the exact filter compatibility of the returned parameter, the sibling disambiguation, and the local-storage behavior. No critical information needed to invoke it correctly is absent.

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?

Schema description coverage is 100%, so the schema already documents all six parameters. The description adds only high-level context (that the output feeds CiNii Books category filters and includes a jp_lit_search call), not per-parameter semantics, so the baseline of 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 names the exact operation (suggest NDC/NDLC classification codes from a subject term via Web NDL Authorities), the return artifact (suggested_category_param + jp_lit_search call example), and explicitly distinguishes the reverse-direction sibling jp_lit_find_authority_terms_by_classification and the actual-search sibling jp_lit_search. It leaves no ambiguity about what this tool uniquely does.

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 states the expected use case (subject term -> classification codes) and gives explicit alternatives: use jp_lit_find_authority_terms_by_classification for classification-to-term lookup and jp_lit_search for actual literature search. This is exactly the when/alternative guidance an agent needs to choose the right tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jp_lit_update_session_traceA

write: session trace。session_id で明示した調査セッション全体に、調査目的・確認範囲・source 選択理由・未確認事項・次アクションを追記または更新する。検索結果や選択候補そのものではなく、調査経過と判断の台帳を残すための tool。候補単位の採否メモは jp_lit_annotate_session を使う

ParametersJSON Schema
NameRequiredDescriptionDefault
scope_noteNo調査範囲、除外範囲、確認済み範囲の説明。
session_idYes調査案件を識別する application state handle。jp_lit_start_session が返した値を渡す。形式は YYYY-MM-DD-HHMMSS-8桁hex(旧形式 YYYY-MM-DD-HHMMSS も可)。MCP transport の接続IDや cache_key とは別物。
next_actionsNo次に取るべき調査アクション。
source_plansNosource ごとの利用予定・利用済み・保留・除外理由。
research_goalNo指定した調査セッション全体の目的。
open_questionsNo未解決の確認事項。

Output Schema

ParametersJSON Schema
NameRequiredDescription
session_idYes
updated_atYes
next_action_countYes
source_plan_countYes
open_question_countYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as non-read-only and non-idempotent, and the description reinforces this with 'write' and '追記または更新' (append/update). It adds useful behavioral context beyond annotations by explaining that this tool maintains a ledger of investigation progress and judgments rather than raw search outcomes.

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?

The description is compact and front-loaded with the operation type, immediately lists what can be updated, and closes with a clear exclusion and alternative. Every sentence contributes meaning, and there is no redundant restatement of the tool name or schema fields.

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 complex session-trace tool with six parameters and detailed schema documentation, the description provides the essential purpose, scope, and sibling distinction. It could be more explicit about whether updating an existing session trace merges or replaces prior content, but the schema, annotations, and sibling guidance otherwise give the agent enough context to invoke it correctly.

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?

Schema description coverage is 100%, so the baseline is 3. The description summarizes the main fields (research goal, scope, source reasons, open questions, next actions) and maps them to the session-trace concept, but it does not add material parameter-level detail beyond what the input schema already documents.

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 operation and resource: append or update the session trace for the session identified by session_id, covering research goal, confirmation scope, source selection reasons, open questions, and next actions. It also explicitly distinguishes itself from jp_lit_annotate_session by clarifying that this tool is for the session-level investigation ledger, not candidate-level notes.

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?

The description gives an explicit exclusion and alternative: it is not for storing search results or selected candidates, and candidate-level accept/reject notes should use jp_lit_annotate_session. This gives the agent a clear routing rule for when to use this tool versus the most relevant sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.4/5.0
Disambiguation5/5

Each tool has a distinct purpose with clear cross-references to alternatives. For example, jp_lit_search, jp_lit_search_fulltext, and jp_lit_search_pages address different search scopes, and descriptions explicitly differentiate them.

Naming Consistency5/5

All tools follow the consistent pattern jp_lit_<verb>_<noun> in snake_case, e.g., jp_lit_list_sessions, jp_lit_search_fulltext. Compound verbs like search_fulltext are predictable and uniform.

Tool Count4/5

28 tools is on the higher side for a single server, but each tool serves a distinct function within a broad domain (Japanese literature research). The count is justified by the comprehensive coverage, though still slightly above ideal.

Completeness5/5

The toolset covers the full research lifecycle: session management, searching diverse sources, record retrieval, fulltext access, authority resolution, classification, cache management, and export. No obvious gaps for the stated purpose.

Maintenance

ActivityActive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server for academic research that enables paper search across 14 sources, PDF download with multi-provider fallback, metadata extraction, and bibliography generation.
    2
    GPL 3.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    A MCP server for academic literature retrieval, aggregating multiple data sources like arXiv, Crossref, OpenAlex, PubMed, and Semantic Scholar to provide search, details, citations, trends, and recommendations.
    4
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables querying Japan's national academic database, CiNii Research, for articles, books, dissertations, KAKEN projects, and researcher profiles via seven MCP tools.
    7
    2
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/itarunnn/jp-lit-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server