ieee_standards_search
Search IEEE standards and specifications by query, type, or committee to find technical requirements for projects and research.
Instructions
Search IEEE standards and specifications
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query for IEEE standards (e.g., "wireless communication", "software engineering", "cybersecurity") | |
| standardType | No | Standard type: all, active, inactive, draft, withdrawn | active |
| committee | No | IEEE committee (e.g., "802", "1394", "1588") | |
| maxResults | No | Maximum number of standards to return (1-100) |
Implementation Reference
- src/tools/academic/ieee-tools.ts:177-243 (handler)The execute handler function implementing the ieee_standards_search tool. It destructures input args, generates mock IEEE standards data based on query, standardType, committee, and maxResults, and returns structured results or error.execute: async (args: any) => { const { query, standardType = 'active', committee = '', maxResults = 10 } = args; try { // 模拟IEEE标准搜索结果 const mockStandards = Array.from({ length: Math.min(maxResults, 10) }, (_, i) => { const committees = ['802', '1394', '1588', '754', '1003', '1076', '1149', '1275', '1364', '1471']; const selectedCommittee = committee || committees[Math.floor(Math.random() * committees.length)]; return { standardId: `IEEE ${selectedCommittee}.${i + 1}`, title: `IEEE Standard for ${query} - Part ${i + 1}`, description: `This standard defines the requirements and specifications for ${query} systems and implementations. It provides guidelines for design, testing, and deployment of ${query} technologies in various applications.`, status: standardType === 'all' ? ['Active', 'Inactive', 'Draft', 'Withdrawn'][Math.floor(Math.random() * 4)] : standardType.charAt(0).toUpperCase() + standardType.slice(1), committee: selectedCommittee, workingGroup: `${selectedCommittee}.${Math.floor(Math.random() * 20) + 1}`, approvalDate: new Date(Date.now() - Math.random() * 365 * 10 * 24 * 60 * 60 * 1000).toISOString().split('T')[0], lastRevision: new Date(Date.now() - Math.random() * 365 * 5 * 24 * 60 * 60 * 1000).toISOString().split('T')[0], pages: Math.floor(Math.random() * 200) + 50, scope: `This standard covers the technical specifications and requirements for ${query} implementations.`, purpose: `To establish uniform requirements for ${query} systems and ensure interoperability.`, keywords: [ query.toLowerCase(), 'IEEE standard', 'technical specification', 'engineering standard' ], relatedStandards: [ `IEEE ${selectedCommittee}.${i}`, `IEEE ${selectedCommittee}.${i + 2}`, `ISO/IEC ${Math.floor(Math.random() * 30000) + 10000}` ], url: `https://standards.ieee.org/standard/${selectedCommittee}_${i + 1}.html`, purchaseUrl: `https://standards.ieee.org/findstds/standard/${selectedCommittee}.${i + 1}.html`, price: `$${Math.floor(Math.random() * 200) + 50}`, format: ['PDF', 'Print'], language: 'English' }; }); return { success: true, data: { source: 'IEEE Standards', query, standardType, committee, totalResults: mockStandards.length, standards: mockStandards, timestamp: Date.now(), searchMetadata: { database: 'IEEE Standards Database', searchCriteria: { query, standardType: standardType !== 'all' ? standardType : 'any', committee: committee || 'any' } } } }; } catch (error) { return { success: false, error: error instanceof Error ? error.message : 'Failed to search IEEE standards' }; } }
- Input schema defining parameters for ieee_standards_search: query (required string), standardType (enum), committee (string), maxResults (number 1-100).inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Search query for IEEE standards (e.g., "wireless communication", "software engineering", "cybersecurity")' }, standardType: { type: 'string', description: 'Standard type: all, active, inactive, draft, withdrawn', default: 'active', enum: ['all', 'active', 'inactive', 'draft', 'withdrawn'] }, committee: { type: 'string', description: 'IEEE committee (e.g., "802", "1394", "1588")' }, maxResults: { type: 'number', description: 'Maximum number of standards to return (1-100)', default: 10, minimum: 1, maximum: 100 } }, required: ['query'] },
- src/tools/academic/ieee-tools.ts:146-244 (registration)Registration of the ieee_standards_search tool using registry.registerTool, including name, description, category, source, inputSchema, and execute handler.name: 'ieee_standards_search', description: 'Search IEEE standards and specifications', category: 'academic', source: 'IEEE', inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Search query for IEEE standards (e.g., "wireless communication", "software engineering", "cybersecurity")' }, standardType: { type: 'string', description: 'Standard type: all, active, inactive, draft, withdrawn', default: 'active', enum: ['all', 'active', 'inactive', 'draft', 'withdrawn'] }, committee: { type: 'string', description: 'IEEE committee (e.g., "802", "1394", "1588")' }, maxResults: { type: 'number', description: 'Maximum number of standards to return (1-100)', default: 10, minimum: 1, maximum: 100 } }, required: ['query'] }, execute: async (args: any) => { const { query, standardType = 'active', committee = '', maxResults = 10 } = args; try { // 模拟IEEE标准搜索结果 const mockStandards = Array.from({ length: Math.min(maxResults, 10) }, (_, i) => { const committees = ['802', '1394', '1588', '754', '1003', '1076', '1149', '1275', '1364', '1471']; const selectedCommittee = committee || committees[Math.floor(Math.random() * committees.length)]; return { standardId: `IEEE ${selectedCommittee}.${i + 1}`, title: `IEEE Standard for ${query} - Part ${i + 1}`, description: `This standard defines the requirements and specifications for ${query} systems and implementations. It provides guidelines for design, testing, and deployment of ${query} technologies in various applications.`, status: standardType === 'all' ? ['Active', 'Inactive', 'Draft', 'Withdrawn'][Math.floor(Math.random() * 4)] : standardType.charAt(0).toUpperCase() + standardType.slice(1), committee: selectedCommittee, workingGroup: `${selectedCommittee}.${Math.floor(Math.random() * 20) + 1}`, approvalDate: new Date(Date.now() - Math.random() * 365 * 10 * 24 * 60 * 60 * 1000).toISOString().split('T')[0], lastRevision: new Date(Date.now() - Math.random() * 365 * 5 * 24 * 60 * 60 * 1000).toISOString().split('T')[0], pages: Math.floor(Math.random() * 200) + 50, scope: `This standard covers the technical specifications and requirements for ${query} implementations.`, purpose: `To establish uniform requirements for ${query} systems and ensure interoperability.`, keywords: [ query.toLowerCase(), 'IEEE standard', 'technical specification', 'engineering standard' ], relatedStandards: [ `IEEE ${selectedCommittee}.${i}`, `IEEE ${selectedCommittee}.${i + 2}`, `ISO/IEC ${Math.floor(Math.random() * 30000) + 10000}` ], url: `https://standards.ieee.org/standard/${selectedCommittee}_${i + 1}.html`, purchaseUrl: `https://standards.ieee.org/findstds/standard/${selectedCommittee}.${i + 1}.html`, price: `$${Math.floor(Math.random() * 200) + 50}`, format: ['PDF', 'Print'], language: 'English' }; }); return { success: true, data: { source: 'IEEE Standards', query, standardType, committee, totalResults: mockStandards.length, standards: mockStandards, timestamp: Date.now(), searchMetadata: { database: 'IEEE Standards Database', searchCriteria: { query, standardType: standardType !== 'all' ? standardType : 'any', committee: committee || 'any' } } } }; } catch (error) { return { success: false, error: error instanceof Error ? error.message : 'Failed to search IEEE standards' }; } } });