MCP stdio server for the J-STAGE WebAPI (Japanese scholarly journals).
Three tools with complete input schemas and descriptions. Tool names follow verb_noun pattern (search_, get_, list_). Descriptions are substantive (150-250 chars) and explain what each tool does and when to use it. Parameters are typed and described. However, output schemas are not explicitly documented in the visible code, responses are inferred from mediation.py references. Error handling is present but generic (no recovery guidance in descriptions). No tool annotations (readOnlyHint, etc.) despite all three being read-only operations.
Retrieve a single article from J-STAGE by its DOI. Returns the unified response envelope with article metadata, matched_in field, diagnostics, receipt, and JST attribution.
List issues (volumes and numbers) available for a given journal on J-STAGE. Returns structural JSON with journal metadata and issue information. This is a navigation tool and is not part of the literature retrieval response envelope.
Search J-STAGE for articles matching the given query parameters. Returns a unified response envelope with typed query, matching mode, graduated breadth, per-item matched_in, typed diagnostics, a loggable receipt, and JST attribution.
Output schemas not documented in tool definitions. Responses reference a unified envelope (mediation.py, response-schema.json) but LLMs cannot see the schema structure from the tool registration alone. This forces LLMs to infer output fields and risks misuse of returned data.
No tool annotations despite all three tools being read-only. Adding readOnlyHint=true would signal to agents that these calls are safe to retry and have no side effects, improving agent planning.
Error handling lacks recovery guidance. STATUS_HINTS dict exists (WARN_002, ERR_001) but is not surfaced in tool descriptions. LLMs cannot see these hints and will not know to suggest alternative queries or narrower search terms when J-STAGE returns warnings.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | <=2025-11-25 | v2 |
jstage_search_articles accepts max_results up to 100 but description does not state the limit or explain pagination behavior. Unbounded or unclear limits invite LLMs to request excessive results.
Parameter descriptions lack format/constraint details. E.g., 'doi' parameter has no format hint (should note DOI pattern: 10.xxxx/...). 'material' parameter is ambiguous, unclear if it accepts journal title, ISSN, or internal ID.