search_ieee
Search IEEE Xplore for engineering and technology literature using filters for content type, publication year, and sort order to find relevant academic papers and standards.
Instructions
Search IEEE Xplore for engineering and technology literature
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query for IEEE literature (e.g., "machine learning", "5G networks", "quantum computing", "robotics") | |
| maxResults | No | Maximum number of articles to return (1-200) | |
| contentType | No | Content type filter: all, journals, conferences, standards, books, courses | all |
| publicationYear | No | Publication year range: all, 2020-2024, 2015-2019, 2010-2014, 2000-2009 | all |
| sort | No | Sort order: relevance, newest, oldest, citations | relevance |
Implementation Reference
- src/tools/academic/ieee-tools.ts:50-141 (handler)The core handler function for 'search_ieee' tool that simulates IEEE Xplore search, generates mock academic articles with detailed metadata based on query parameters like contentType, publicationYear, etc.execute: async (args: any) => { const { query, maxResults = 20, contentType = 'all', publicationYear = 'all', sort = 'relevance' } = args; try { // 模拟IEEE搜索结果 const mockArticles = Array.from({ length: Math.min(maxResults, 20) }, (_, i) => { const contentTypes = ['Journal Article', 'Conference Paper', 'IEEE Standard', 'Book Chapter', 'Course Material']; const venues = [ 'IEEE Transactions on Pattern Analysis and Machine Intelligence', 'IEEE/ACM Transactions on Networking', 'IEEE Transactions on Information Theory', 'IEEE Computer Society Conference', 'IEEE International Conference on Robotics and Automation' ]; const yearRanges = { 'all': [2000, 2024], '2020-2024': [2020, 2024], '2015-2019': [2015, 2019], '2010-2014': [2010, 2014], '2000-2009': [2000, 2009] }; const [minYear, maxYear] = yearRanges[publicationYear as keyof typeof yearRanges]; const pubYear = Math.floor(Math.random() * (maxYear - minYear + 1)) + minYear; return { articleId: `ieee_${Date.now()}_${i}`, title: `${query}: Advanced Research and Applications ${i + 1}`, abstract: `This paper presents a comprehensive study on ${query} with novel approaches and methodologies. We propose innovative solutions that address current challenges in the field. Our experimental results demonstrate significant improvements over existing methods, with potential applications in various engineering domains. The research contributes to the advancement of ${query} technology and provides insights for future developments.`, authors: [ `Zhang, L.${i + 1}`, `Smith, J.${i + 1}`, `Kumar, R.${i + 1}`, `Johnson, M.${i + 1}` ], venue: venues[Math.floor(Math.random() * venues.length)], publicationYear: pubYear, contentType: contentType === 'all' ? contentTypes[Math.floor(Math.random() * contentTypes.length)] : contentType.replace('s', '').replace(/^\w/, (c: string) => c.toUpperCase()), doi: `10.1109/IEEE.${pubYear}.${9000000 + i}`, isbn: Math.random() > 0.5 ? `978-1-${Math.floor(Math.random() * 9000) + 1000}-${Math.floor(Math.random() * 900) + 100}-${Math.floor(Math.random() * 9)}` : null, pages: `${100 + i * 5}-${105 + i * 5}`, citationCount: Math.floor(Math.random() * 500) + 1, keywords: [ query.toLowerCase(), 'engineering', 'technology', 'innovation', 'research' ], ieeeTerms: [ `${query} - technology`, `${query} - applications`, 'Engineering research', 'Technical innovation' ], url: `https://ieeexplore.ieee.org/document/${9000000 + i}`, pdfUrl: `https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=${9000000 + i}`, openAccess: Math.random() > 0.7, volume: Math.floor(Math.random() * 50) + 1, issue: Math.floor(Math.random() * 12) + 1 }; }); return { success: true, data: { source: 'IEEE Xplore', query, contentType, publicationYear, sort, totalResults: mockArticles.length, articles: mockArticles, timestamp: Date.now(), searchMetadata: { database: 'IEEE Xplore Digital Library', searchStrategy: 'Full-text and metadata search', filters: { contentType: contentType !== 'all' ? contentType : null, publicationYear: publicationYear !== 'all' ? publicationYear : null } } } }; } catch (error) { return { success: false, error: error instanceof Error ? error.message : 'Failed to search IEEE Xplore' }; } }
- Input schema defining parameters for the search_ieee tool: query (required), maxResults, contentType, publicationYear, sort.inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Search query for IEEE literature (e.g., "machine learning", "5G networks", "quantum computing", "robotics")' }, maxResults: { type: 'number', description: 'Maximum number of articles to return (1-200)', default: 20, minimum: 1, maximum: 200 }, contentType: { type: 'string', description: 'Content type filter: all, journals, conferences, standards, books, courses', default: 'all', enum: ['all', 'journals', 'conferences', 'standards', 'books', 'courses'] }, publicationYear: { type: 'string', description: 'Publication year range: all, 2020-2024, 2015-2019, 2010-2014, 2000-2009', default: 'all', enum: ['all', '2020-2024', '2015-2019', '2010-2014', '2000-2009'] }, sort: { type: 'string', description: 'Sort order: relevance, newest, oldest, citations', default: 'relevance', enum: ['relevance', 'newest', 'oldest', 'citations'] } }, required: ['query'] },
- src/tools/academic/ieee-tools.ts:10-142 (registration)Primary registration of the 'search_ieee' tool within registerIEEETools function, including name, description, schema, and execute handler.registry.registerTool({ name: 'search_ieee', description: 'Search IEEE Xplore for engineering and technology literature', category: 'academic', source: 'IEEE', inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Search query for IEEE literature (e.g., "machine learning", "5G networks", "quantum computing", "robotics")' }, maxResults: { type: 'number', description: 'Maximum number of articles to return (1-200)', default: 20, minimum: 1, maximum: 200 }, contentType: { type: 'string', description: 'Content type filter: all, journals, conferences, standards, books, courses', default: 'all', enum: ['all', 'journals', 'conferences', 'standards', 'books', 'courses'] }, publicationYear: { type: 'string', description: 'Publication year range: all, 2020-2024, 2015-2019, 2010-2014, 2000-2009', default: 'all', enum: ['all', '2020-2024', '2015-2019', '2010-2014', '2000-2009'] }, sort: { type: 'string', description: 'Sort order: relevance, newest, oldest, citations', default: 'relevance', enum: ['relevance', 'newest', 'oldest', 'citations'] } }, required: ['query'] }, execute: async (args: any) => { const { query, maxResults = 20, contentType = 'all', publicationYear = 'all', sort = 'relevance' } = args; try { // 模拟IEEE搜索结果 const mockArticles = Array.from({ length: Math.min(maxResults, 20) }, (_, i) => { const contentTypes = ['Journal Article', 'Conference Paper', 'IEEE Standard', 'Book Chapter', 'Course Material']; const venues = [ 'IEEE Transactions on Pattern Analysis and Machine Intelligence', 'IEEE/ACM Transactions on Networking', 'IEEE Transactions on Information Theory', 'IEEE Computer Society Conference', 'IEEE International Conference on Robotics and Automation' ]; const yearRanges = { 'all': [2000, 2024], '2020-2024': [2020, 2024], '2015-2019': [2015, 2019], '2010-2014': [2010, 2014], '2000-2009': [2000, 2009] }; const [minYear, maxYear] = yearRanges[publicationYear as keyof typeof yearRanges]; const pubYear = Math.floor(Math.random() * (maxYear - minYear + 1)) + minYear; return { articleId: `ieee_${Date.now()}_${i}`, title: `${query}: Advanced Research and Applications ${i + 1}`, abstract: `This paper presents a comprehensive study on ${query} with novel approaches and methodologies. We propose innovative solutions that address current challenges in the field. Our experimental results demonstrate significant improvements over existing methods, with potential applications in various engineering domains. The research contributes to the advancement of ${query} technology and provides insights for future developments.`, authors: [ `Zhang, L.${i + 1}`, `Smith, J.${i + 1}`, `Kumar, R.${i + 1}`, `Johnson, M.${i + 1}` ], venue: venues[Math.floor(Math.random() * venues.length)], publicationYear: pubYear, contentType: contentType === 'all' ? contentTypes[Math.floor(Math.random() * contentTypes.length)] : contentType.replace('s', '').replace(/^\w/, (c: string) => c.toUpperCase()), doi: `10.1109/IEEE.${pubYear}.${9000000 + i}`, isbn: Math.random() > 0.5 ? `978-1-${Math.floor(Math.random() * 9000) + 1000}-${Math.floor(Math.random() * 900) + 100}-${Math.floor(Math.random() * 9)}` : null, pages: `${100 + i * 5}-${105 + i * 5}`, citationCount: Math.floor(Math.random() * 500) + 1, keywords: [ query.toLowerCase(), 'engineering', 'technology', 'innovation', 'research' ], ieeeTerms: [ `${query} - technology`, `${query} - applications`, 'Engineering research', 'Technical innovation' ], url: `https://ieeexplore.ieee.org/document/${9000000 + i}`, pdfUrl: `https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=${9000000 + i}`, openAccess: Math.random() > 0.7, volume: Math.floor(Math.random() * 50) + 1, issue: Math.floor(Math.random() * 12) + 1 }; }); return { success: true, data: { source: 'IEEE Xplore', query, contentType, publicationYear, sort, totalResults: mockArticles.length, articles: mockArticles, timestamp: Date.now(), searchMetadata: { database: 'IEEE Xplore Digital Library', searchStrategy: 'Full-text and metadata search', filters: { contentType: contentType !== 'all' ? contentType : null, publicationYear: publicationYear !== 'all' ? publicationYear : null } } } }; } catch (error) { return { success: false, error: error instanceof Error ? error.message : 'Failed to search IEEE Xplore' }; } } });
- src/index.ts:231-231 (registration)Top-level registration call in the main server initialization that invokes registerIEEETools to add search_ieee to the tool registry.registerIEEETools(this.toolRegistry); // 1 tool: search_ieee