The server provides 8 tools with generally clear naming and documented schemas. Most tools follow verb_noun patterns (easy-search, advanced-search, get-info-from-url, list-journal, search-issn, get-info-by-detail, login, logout). However, several critical gaps emerge: (1) parameter descriptions are present but often generic or incomplete; (2) output schemas are not formally documented in the tool definitions; (3) error handling lacks actionable recovery guidance; (4) tool descriptions, while present, are sometimes verbose and could be more LLM-optimized; (5) login/logout tools have empty input schemas with no description of what they do or side effects; (6) many numeric parameters (limit, year) lack min/max bounds. The server is above-average for a community tool but falls short of production grade due to incomplete schema documentation and weak error guidance.
Search CNKI by structured professional-search fields. 专业检索字段:SU=主题, TKA=篇关摘, KY=关键词, TI=篇名, FT=全文, AU=作者, FI=第一作者, RP=通讯作者, AF=作者单位, FU=基金, AB=摘要, CO=小标题, RF=参考文献, CLC=分类号, LY=文献来源, DOI=DOI, CF=被引频次。
Search CNKI's one-box interface and return compact result records.
Locate articles by detailed fields and return info for every match.
Get article info from a URL returned by search. The URL should come from ``easy-search`` or ``advanced-search``. Search results are retained for ten minutes. Retrieval is most reliable during that window; an older URL is still attempted without a guarantee.
List complete metadata for one journal issue. ``issn`` is the journal's unique identifier. ``vol`` means the issue number shown in CNKI, for example ``1`` or ``01``. The response keeps the bibliographic ``volume`` and ``issue`` as separate fields.
login and logout tools have empty input schemas with no description of parameters, side effects, or expected behavior. The description 'Log in to CNKI' and 'Log out from CNKI' are too terse to guide LLM behavior.
Output schemas are not formally documented in tool definitions. The code shows internal helper methods (_search_result_to_dict, _journal_issue_to_dict) that shape responses, but these schemas are not visible in the tool definition metadata. LLMs cannot reason about response structure.
Numeric parameters lack min/max bounds. The 'limit' parameter appears in multiple tools with default=10 but no documented range (e.g., 1 - 100). The 'year', 'year_from', 'year_to' parameters have no documented constraints. Unbounded numbers let LLMs pass absurd values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
Log in to CNKI
Log out from CNKI
Resolve an exact journal name to its canonical name and ISSN.
Enum parameters not formalized. The 'sort_by' parameter is documented as accepting 'relevance, date, citation, or comprehensive' in the description, but not as a formal JSON Schema enum. This forces LLMs to parse human-readable text rather than selecting from a structured list.
Error handling lacks actionable recovery guidance. The code shows the server can call external APIs and handle browser interactions, but no tool description documents what errors might occur, how to retry, or what the LLM should do next. E.g., what if the URL is invalid? What if CNKI is unreachable?
Ambiguous parameter relationships not documented. The 'year' parameter in list-journal coexists with 'year_from' and 'year_to' in other tools, but their interaction is unclear. Are they mutually exclusive? What if both 'year' and 'year_range' are passed? The descriptions don't clarify.
Advanced-search tool description embeds field codes in English/Chinese (SU=主题, TKA=篇关摘, etc.) without explaining when or why an LLM would use them. The description is informative for domain experts but not actionable for LLM-guided discovery.