Skip to main content
Glama
cinii-mcp

cinii-mcp

by ckgerteis

cinii_search_dissertations

Read-onlyIdempotent

Search CiNii Research for doctoral dissertations and narrow results by awarding institution, degree, year, language, or full-text availability.

Instructions

Search CiNii Research for doctoral dissertations. Returns the unified envelope.

award_institution and degree filter by the degree-granting university and the degree title as catalogued (博士(文学), 博士(教育学), …).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "params": "<params>"
    },
    "name": "cinii_search_dissertations"
  }
}

Input Schema

NameRequiredDescriptionDefault
paramsYes

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed15 schema fields changedv3.3.0
    • addedInput schema / $defs / DissertationSearchInput / properties / award_institution
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maxLength": 2000,
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Degree-granting university (e.g. 東京大学). Sent as awardInstitution.",
      +  "title": "Award Institution"
      +}
    • addedInput schema / $defs / DissertationSearchInput / properties / data_source
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maxLength": 2000,
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Data source(s), comma-separated, e.g. 'JALC', 'IRDB', 'CROSSREF', 'NDL_SEARCH', 'NACSIS_CAT', 'KAKEN', 'CIA', 'CIB', 'DATACITE', 'JDCAT'. Sent as dataSourceType. Unknown values are refused here, because CiNii answers them with zero records.",
      +  "title": "Data Source"
      +}
    • addedInput schema / $defs / DissertationSearchInput / properties / degree
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maxLength": 2000,
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Degree title as catalogued (e.g. 博士(教育学)). Sent as degree.",
      +  "title": "Degree"
      +}
    • addedInput schema / $defs / DissertationSearchInput / properties / has_fulltext
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "true: only records CiNii links to full text; false: only records it does not. Sent as hasLinkToFullText.",
      +  "title": "Has Fulltext"
      +}
    • addedInput schema / $defs / DissertationSearchInput / properties / language
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maxLength": 2000,
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Language(s) of the records, as ISO 639-1 codes, comma-separated: 'ja', 'en', 'zh', 'ko', or 'ja,en'. Sent as languageType. Filters by the language catalogued for the record, not the language of the query.",
      +  "title": "Language"
      +}
    • addedInput schema / $defs / DissertationSearchInput / properties / query / anyOf
      Added value: +[
      +  {
      +    "maxLength": 2000,
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / $defs / DissertationSearchInput / properties / query / default
      Added value: +null
    • addedInput schema / $defs / DissertationSearchInput / properties / query / description
      Added value: +"Free-text search terms (Japanese or English). Optional when another criterion (an identifier, a title, a filter) is given."
    • removedInput schema / $defs / DissertationSearchInput / properties / query / maxLength
      Removed value: -2000
    • removedInput schema / $defs / DissertationSearchInput / properties / query / minLength
      Removed value: -1
    • removedInput schema / $defs / DissertationSearchInput / properties / query / type
      Removed value: -"string"
    • addedInput schema / $defs / DissertationSearchInput / properties / sort
      Added value: +{
      +  "$ref": "#/$defs/SortOrder",
      +  "default": "4",
      +  "description": "Sort order. NEWEST/OLDEST = by year (publication, degree award or project start); RELEVANCE (default); CITATIONS_DESC = citation count, articles only; CRID_ASC = by CRID, cross search only; NAME_ASC/NAME_DESC, PROJECTS_DESC/PROJECTS_ASC and PRODUCTS_DESC/PRODUCTS_ASC = researcher name, number of related projects and number of related research products, researcher search only (which does not accept OLDEST)."
      +}
    • addedInput schema / $defs / DissertationSearchInput / properties / start / maximum
      Added value: +10000
    • removedInput schema / $defs / DissertationSearchInput / required
      Removed value: -[
      -  "query"
      -]
    • addedInput schema / $defs / SortOrder
      Added value: +{
      +  "description": "CiNii Research OpenSearch v2 `sortorder` codes.\n\nNot every code is valid for every search type, and CiNii does not refuse\none that is not: sortorder=5 on articles is silently ignored and the\nresults come back in relevance order, a page that says it is sorted when\nit is not. Each input model therefore checks its sort against _SORT_SCOPE.",
      +  "enum": [
      +    "0",
      +    "1",
      +    "4",
      +    "5",
      +    "6",
      +    "10",
      +    "20",
      +    "21",
      +    "30",
      +    "31",
      +    "40"
      +  ],
      +  "title": "SortOrder",
      +  "type": "string"
      +}
  2. Changed2 schema fields changedv3.2.0
    • changedInput schema / $defs / DissertationSearchInput / properties / author / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maxLength": 2000,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / $defs / DissertationSearchInput / properties / query / maxLength
      Added value: +2000
  3. First observedv3.0.0

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnly/idempotent/openWorld/non-destructive, so the safety profile is covered. The description adds little beyond that: "Returns the unified envelope" signals a shared response shape (and an output schema exists), and "as catalogued" hints that degree filters are exact catalogue strings rather than fuzzy matches, which is genuinely useful. Rate limits, paging behavior, and empty-result behavior are unmentioned.

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 short, front-loaded lines: purpose first, then response shape, then the two filter semantics. "Returns the unified envelope" is the weakest sentence because it names a concept the reader may not know, but nothing is bloated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool takes a 13-field nested parameter object and an output schema exists, so return values need no explanation. However, the description omits that `query` is optional when another criterion is supplied, and says nothing about sort validity scope or the start/count paging limits — all things that affect a correct call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description only touches two of the many nested fields (award_institution, degree), leaving query, author, sort, count, start, from_year/to_year, language, data_source and has_fulltext unaddressed. The example values (博士(文学), 博士(教育学)) are a real addition over the schema, but the coverage gap is too large for the description to compensate at the reported 0% 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?

States a specific verb and resource ("Search CiNii Research for doctoral dissertations") and implicitly distinguishes itself from the other cinii_search_* siblings by resource type. It never names a sibling, so the differentiation relies on the reader inferring that dissertations != articles/books/data.

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?

Usage is only implied by the resource name; there is no statement of when to prefer this over cinii_search_all or cinii_search_articles, and no prerequisites or exclusions. Adequate for a single-resource search tool, but no active guidance is given.

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