search_iacr
Search the IACR (International Association for Cryptologic Research) database for cryptography research papers using query keywords. Specify the maximum number of results (1-100) to retrieve.
Instructions
Search IACR (International Association for Cryptologic Research) for cryptography papers
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query for cryptography research | |
| maxResults | No | Maximum number of results to return |
Implementation Reference
- src/tools/academic/biorxiv-tools.ts:63-124 (registration)The search_iacr tool is registered via the registerBioRxivTools() function calling registry.registerTool() with name 'search_iacr'
export function registerBioRxivTools(registry: ToolRegistry): void { // IACR Cryptography Research Tool registry.registerTool({ name: 'search_iacr', description: 'Search IACR (International Association for Cryptologic Research) for cryptography papers', category: 'academic', source: 'IACR', inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Search query for cryptography research' }, maxResults: { type: 'number', description: 'Maximum number of results to return', default: 20, minimum: 1, maximum: 100 } }, required: ['query'] }, execute: async (args: ToolInput): Promise<ToolOutput> => { try { const { query, maxResults = 20 } = args; // Simulated IACR search results const results = Array.from({ length: Math.min(maxResults, 10) }, (_, i) => ({ title: `Cryptographic Analysis of ${query} - Paper ${i + 1}`, authors: [`Dr. Crypto Expert ${i + 1}`, `Prof. Security Researcher ${i + 1}`], abstract: `This paper presents a comprehensive analysis of ${query} in the context of modern cryptographic systems...`, venue: i % 2 === 0 ? 'CRYPTO' : 'EUROCRYPT', year: 2024 - (i % 3), url: `https://eprint.iacr.org/2024/${String(i + 1).padStart(3, '0')}`, category: 'Cryptography', keywords: [query, 'cryptography', 'security', 'algorithms'] })); return { success: true, data: { source: 'IACR', query, results, totalResults: results.length }, metadata: { searchTime: Date.now(), source: 'IACR ePrint Archive' } }; } catch (error) { return { success: false, error: `IACR search failed: ${error instanceof Error ? error.message : String(error)}`, data: null }; } } }); - Input schema for search_iacr: requires 'query' (string) and optional 'maxResults' (number, 1-100, default 20)
inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Search query for cryptography research' }, maxResults: { type: 'number', description: 'Maximum number of results to return', default: 20, minimum: 1, maximum: 100 } }, required: ['query'] }, - Execute handler for search_iacr: generates simulated IACR ePrint cryptography paper results (up to 10), returns success/error response
execute: async (args: ToolInput): Promise<ToolOutput> => { try { const { query, maxResults = 20 } = args; // Simulated IACR search results const results = Array.from({ length: Math.min(maxResults, 10) }, (_, i) => ({ title: `Cryptographic Analysis of ${query} - Paper ${i + 1}`, authors: [`Dr. Crypto Expert ${i + 1}`, `Prof. Security Researcher ${i + 1}`], abstract: `This paper presents a comprehensive analysis of ${query} in the context of modern cryptographic systems...`, venue: i % 2 === 0 ? 'CRYPTO' : 'EUROCRYPT', year: 2024 - (i % 3), url: `https://eprint.iacr.org/2024/${String(i + 1).padStart(3, '0')}`, category: 'Cryptography', keywords: [query, 'cryptography', 'security', 'algorithms'] })); return { success: true, data: { source: 'IACR', query, results, totalResults: results.length }, metadata: { searchTime: Date.now(), source: 'IACR ePrint Archive' } }; } catch (error) { return { success: false, error: `IACR search failed: ${error instanceof Error ? error.message : String(error)}`, data: null }; } } - src/index.ts:225-234 (registration)registerBioRxivTools is called in registerAllTools() which registers 3 tools including search_iacr
private async registerAllTools(): Promise<void> { this.logger.info('Registering exactly 33 specialized tools...'); // 🎓 Academic Research (7 tools) registerAcademicTools(this.toolRegistry); // 1 tool: search_arxiv registerPubMedTools(this.toolRegistry); // 1 tool: search_pubmed registerIEEETools(this.toolRegistry); // 1 tool: search_ieee registerSemanticScholarTools(this.toolRegistry); // 1 tool: search_semantic_scholar registerBioRxivTools(this.toolRegistry); // 3 tools: search_iacr, search_medrxiv, search_biorxiv - Maps 'iacr_search' source to tool name 'search_iacr_paper_search_server' in saturated search manager
private getToolNameForSource(source: SearchSourceConfig): string { // 建立搜索源ID到实际MCP工具名称的完整映射 const toolMappings: Record<string, string> = { // 学术搜索工具 - 使用专门的paper search工具 'google_scholar': 'search_google_scholar_paper_search_server', 'pubmed_search': 'search_pubmed_paper_search_server', 'arxiv_search': 'search_arxiv_paper_search_server', 'semantic_scholar': 'search_semantic_paper_search_server', 'biorxiv_search': 'search_biorxiv_paper_search_server', 'medrxiv_search': 'search_medrxiv_paper_search_server', 'iacr_search': 'search_iacr_paper_search_server',