Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
cookjohn avatar

Cnki Journal Search

  • 483 installs
  • 811 repo stars
  • Updated March 13, 2026
  • cookjohn/cnki-skills

cnki-journal-search is an agent skill that searches CNKI journal navigation at navi.cnki.net by name, ISSN, CN number, or sponsor for developers validating academic sources and building bibliographies.

About

cnki-journal-search in cookjohn/cnki-skills automates CNKI journal lookup (期刊检索) through Chrome DevTools MCP browser automation. Agents navigate to https://navi.cnki.net/knavi, run evaluate_script searches with a journal name, ISSN, CN number, or sponsor argument, and extract matching publication metadata from results. The skill accepts $ARGUMENTS as the search term and uses a single evaluate_script call without wait_for delays for faster agent turns. argument-hint documents expected inputs so agents pass journal names or identifiers correctly on first attempt. Developers reach for cnki-journal-search when locating peer-reviewed Chinese journal articles, verifying ISSN or CN identifiers, browsing sponsor publications, or building bibliographies during early technical or domain research. The workflow supports validating claims against academic literature before deeper paper retrieval or citation export. Triggers include requests to find a specific CNKI journal or browse publications by name or identifier.

  • journal metadata lookup
  • ISSN search
  • author indexing
  • peer-reviewed articles
  • CNKI catalog

Cnki Journal Search by the numbers

  • 483 all-time installs (skills.sh)
  • Ranked #1,806 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/cookjohn/cnki-skills --skill cnki-journal-search

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs483
repo stars811
Last updatedMarch 13, 2026
Repositorycookjohn/cnki-skills

How do you search CNKI journals by ISSN or name?

Locate peer-reviewed CNKI journal articles by title, author, ISSN, or subject to build bibliographies and validate claims during early domain research.

Who is it for?

Developers and researchers who need agent-driven CNKI journal lookups with Chrome DevTools MCP during literature validation.

Skip if: Teams without CNKI access, non-Chinese literature searches, or workflows that do not use Chrome DevTools MCP browser automation.

When should I use this skill?

User wants to find a CNKI journal, search by ISSN or CN number, browse sponsor publications, or build bibliographies from CNKI.

What you get

CNKI journal search results with publication names, identifiers, and sponsor metadata extracted from navi.cnki.net.

  • CNKI journal search results
  • Publication identifier metadata

By the numbers

  • Searches 4 identifier types: journal name, ISSN, CN number, and sponsor

Files

SKILL.mdMarkdownGitHub ↗

CNKI Journal Search (期刊检索)

Arguments

$ARGUMENTS is a journal name, ISSN, CN number, or sponsor name.

Steps

1. Navigate

Use mcp__chrome-devtools__navigate_pagehttps://navi.cnki.net/knavi

2. Search + extract results (single evaluate_script, NO wait_for)

Use mcp__chrome-devtools__evaluate_script. Replace QUERY_HERE with actual search term:

async () => {
  const query = "QUERY_HERE";

  // Wait for page load
  await new Promise((r, j) => {
    let n = 0;
    const c = () => { if (document.querySelector('input.researchbtn')) r(); else if (++n > 30) j('timeout'); else setTimeout(c, 500); };
    c();
  });

  // Check captcha (visible on screen, not hidden SDK at top:-1000000)
  const outer = document.querySelector('#tcaptcha_transform_dy');
  if (outer && outer.getBoundingClientRect().top >= 0) return { error: 'captcha' };

  // Auto-detect search type and fill
  const select = document.querySelector('select');
  if (select) {
    if (/^\d{4}-\d{3}[\dXx]$/.test(query)) select.value = 'ISSN';
    else if (/^\d{2}-\d{4}/.test(query)) select.value = 'CN';
    select.dispatchEvent(new Event('change', { bubbles: true }));
  }

  const input = document.querySelector('input[placeholder*="检索词"]');
  if (input) input.value = query;

  // Click search button (verified selector: input.researchbtn)
  document.querySelector('input.researchbtn')?.click();

  // Wait for results
  await new Promise((r, j) => {
    let n = 0;
    const c = () => { if (document.body.innerText.includes('条结果')) r(); else if (++n > 30) j('timeout'); else setTimeout(c, 500); };
    c();
  });

  // Click 期刊 tab to filter journals only
  const tabs = document.querySelectorAll('li a');
  for (const a of tabs) { if (a.innerText.trim() === '期刊') { a.click(); break; } }
  await new Promise(r => setTimeout(r, 1500));

  // Extract journal results
  const body = document.body.innerText;
  const countMatch = body.match(/共\s*(\d+)\s*条结果/) || body.match(/找到\s*(\d+)\s*条结果/);
  const count = countMatch ? parseInt(countMatch[1]) : 0;

  const results = [];
  const titleLinks = document.querySelectorAll('a[href*="knavi/detail"]');
  titleLinks.forEach(link => {
    const text = link.innerText?.trim();
    if (!text || text.length < 2) return;
    const parent = link.closest('li, .list-item') || link.parentElement?.parentElement;
    const pt = parent?.innerText || '';
    results.push({
      name: text.split('\n')[0]?.trim(),
      url: link.href,
      issn: pt.match(/ISSN[::]\s*(\S+)/)?.[1] || '',
      cn: pt.match(/CN[::]\s*(\S+)/)?.[1] || '',
      cif: pt.match(/复合影响因子[::]\s*([\d.]+)/)?.[1] || '',
      aif: pt.match(/综合影响因子[::]\s*([\d.]+)/)?.[1] || '',
      citations: pt.match(/被引次数[::]\s*([\d,]+)/)?.[1] || '',
      downloads: pt.match(/下载次数[::]\s*([\d,]+)/)?.[1] || '',
      sponsor: pt.match(/主办单位[::]\s*(.+?)(?=\n|ISSN)/)?.[1]?.trim() || ''
    });
  });

  return { query, count, results };
}

3. Present results

期刊检索 "$ARGUMENTS"(共 {count} 条):

1. {name}
   ISSN: {issn} | CN: {cn}
   复合影响因子: {cif} | 综合影响因子: {aif}
   被引: {citations} | 下载: {downloads}

Notes

  • Journal detail pages open in new tab — use list_pages + select_page
  • If only 1 journal result, can auto-navigate to detail page for cnki-journal-index
  • Search button selector: input.researchbtn (not generic button)

Captcha detection

Check #tcaptcha_transform_dy element's getBoundingClientRect().top >= 0. Tencent captcha SDK preloads DOM at top: -1000000px (off-screen, not active). Only return error: 'captcha' when top >= 0 (actually visible to user).

Tool calls: 2 (navigate + evaluate_script)

Related skills

How it compares

Pick cnki-journal-search for CNKI journal discovery; pick general web-search skills when the source is not CNKI academic literature.

FAQ

What can cnki-journal-search look up?

cnki-journal-search queries CNKI journal navigation by journal name, ISSN, CN number, or sponsor name and returns matching publication metadata from navi.cnki.net.

What tools does cnki-journal-search require?

cnki-journal-search uses Chrome DevTools MCP navigate_page and evaluate_script calls to automate searches at https://navi.cnki.net/knavi without manual browser steps.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.