ieee-search
Searches for academic papers on IEEE Xplore. Use when the user wants to find papers by keyword on IEEE Xplore.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Searches for academic papers on IEEE Xplore. Use when the user wants to find papers by keyword on IEEE Xplore.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Use when a quest needs one or more follow-up runs such as ablations, robustness checks, error analysis, or failure analysis after a main experiment.
Use when a quest needs to attach, import, reproduce, repair, verify, compare, or publish a baseline and its metrics.
Use when a quest is ready for a concrete implementation pass or a main experiment run tied to a selected idea and an accepted baseline.
Use when the quest is ready to consolidate final claims, limitations, recommendations, summary state, and graph exports before stopping or archiving.
Retrieves a BibTeX citation entry from Google Scholar for a given paper title using Chrome DevTools. Use this skill whenever the user asks to get a BibTeX entry, citation, or bibliography item for a paper — especially when they provide a paper title and want the formatted BibTeX for use in LaTeX or a .bib file. Trigger on phrases like "get bib for", "fetch citation for", "find bibtex for", "add to refs.bib", "get the bibtex entry", or "look up citation on Google Scholar". Also trigger when the user pastes a paper title and wants a citation block, even if they don't say "Google Scholar" explicitly.
Use when a quest needs concrete hypotheses, limitation analysis, candidate directions, or a selected idea relative to the active baseline.
| name | ieee-search |
| description | Searches for academic papers on IEEE Xplore. Use when the user wants to find papers by keyword on IEEE Xplore. |
| argument-hint | [search keywords] |
Search for academic papers on IEEE Xplore using Chrome DevTools MCP.
Before the first operation, check the current browser page URL to determine which IEEE Xplore domain the user is accessing. Store it as BASE_URL. Common patterns:
https://ieeexplore.ieee.orgieeexplore in the hostname (e.g. WebVPN or EZProxy)Use whatever origin the user's browser is currently on. If no IEEE Xplore page is open, ask the user which URL to use.
Use navigate_page to go to:
{BASE_URL}/search/searchresult.jsp?queryText={QUERY}&highlight=true&returnFacets=ALL&returnType=SEARCH&matchPubs=true&rowsPerPage=25&pageNumber=1
Where {QUERY} is the URL-encoded search keywords from $ARGUMENTS. When the $ARGUMENTS is more than three words long, it is very likely to be a paper title rather than keyword. In this case, remove the special characters from the $ARGUMENTS and encoding the full text in HTML, to use as {QUERY}
Important: Always include initScript to prevent bot detection:
initScript: "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"
After navigation, verify the page loaded correctly:
ieeexplore, the user may have been redirected to a login page. Tell the user: "页面被重定向,请在浏览器中完成登录或认证后告知我。" Then wait.Use evaluate_script with built-in waiting. Do NOT use wait_for — it returns the full page snapshot which can exceed token limits.
async () => {
// Wait for results to load (up to 15s)
for (let i = 0; i < 30; i++) {
if (document.querySelectorAll('.List-results-items .result-item').length > 0 ||
document.querySelector('.Dashboard-header span')) break;
await new Promise(r => setTimeout(r, 500));
}
const items = document.querySelectorAll('.List-results-items .result-item');
const papers = [];
for (let i = 0; i < items.length; i++) {
const item = items[i];
const titleLink = item.querySelector('h3 a[href*="/document/"]');
const authors = [...item.querySelectorAll('.author a[href*="/author/"]')].map(a => a.textContent.trim());
const pubLink = item.querySelector('.description a[href*="/xpl/"]');
const publisherInfo = item.querySelector('.publisher-info-container');
const infoText = publisherInfo?.textContent?.trim() || '';
const yearMatch = infoText.match(/Year:\s*(\d{4})/);
const docNumber = titleLink?.href?.match(/\/document\/(\d+)/)?.[1] || '';
const abstractSnippet = item.querySelector('.js-displayer-content span')?.textContent?.trim() || '';
// Cited by: extract from full text content using regex (DOM selector varies across pages)
const itemText = item.textContent || '';
// Two formats: "Cited by: 70" (default sort) and "Cited by: Papers (190)" (citation sort)
const citedByMatch = itemText.match(/Cited by:.*?(\d+)/);
const citedBy = citedByMatch ? citedByMatch[1] : '';
papers.push({
rank: i + 1,
title: titleLink?.textContent?.trim()?.replace(/<[^>]+>/g, '') || '',
arnumber: docNumber,
authors,
publication: pubLink?.textContent?.trim() || '',
year: yearMatch ? yearMatch[1] : '',
info: infoText,
citedBy,
abstract: abstractSnippet.substring(0, 200),
});
}
const resultCount = document.querySelector('.Dashboard-header span')?.textContent?.trim() || '';
const noResults = resultCount.includes('No results') || items.length === 0;
return { papers, resultCount, noResults };
}
If noResults is true:
ieee-standards-search.Format results as a numbered list:
{resultCount}
1. {title}
Authors: {authors}
Publication: {publication} | {year}
Info: {info}
Cited by: {citedBy} | Article #: {arnumber}
2. ...
| Element | Selector |
|---|---|
| Result items | .List-results-items .result-item |
| Title link | h3 a[href*="/document/"] |
| Authors | .author a[href*="/author/"] |
| Publication link | .description a[href*="/xpl/"] |
| Publisher info | .publisher-info-container |
| Abstract snippet | .js-displayer-content span |
| Cited by | Regex Cited by:\s*(\d+) on item text (DOM selector unreliable) |
| Result count | .Dashboard-header span |
| Checkbox | input[type="checkbox"][aria-label="Select search result"] |
| Param | Description | Example |
|---|---|---|
queryText | Query string | deep learning |
rowsPerPage | Results per page | 25, 50, 75, 100 |
pageNumber | Page number (1-based) | 1, 2, 3 |
sortType | Sort order | newest, oldest, paper-citations, patent-citations, most-popular |
highlight | Highlight matches | true |
returnFacets | Return facets | ALL |
returnType | Return type | SEARCH |
matchPubs | Match publications | true |
Quoting matters: IEEE Xplore treats unquoted words as individual tokens joined by OR. Always quote multi-word phrases.
| Query | Results | Quality |
|---|---|---|
coupling capacitor power line carrier | ~12,000+ | Terrible — each word matches independently |
"coupling capacitor" "power line carrier" | 4 | Excellent — exact phrases, both required |
"coupling capacitor" OR "capacitor divider" | Moderate | OK — OR between synonyms of same concept |
"coupling capacitor" OR "power line carrier" | ~12,000+ | Bad — OR between different concepts |
Rules:
"drain coil" OR "line trap")"HVDC" or "high voltage" to prevent cross-domain noiseieee-advanced-search with matchBoolean=true for full boolean controlarnumber) needed for detail extraction, PDF download, and citation export.navigate_page + evaluate_script.evaluate_script handles this.ieee-standards-search.citedBy field is extracted via regex from the item's text content, not a specific DOM element, because IEEE Xplore's cited-by markup varies.