get_paper_details
Retrieve detailed information about a specific cryptographic research paper using its unique ID from the IACR Cryptology ePrint Archive via a secure MCP server interface.
Instructions
Retrieve details of a specific paper by its ID
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| paper_id | Yes |
Input Schema (JSON Schema)
{
"properties": {
"paper_id": {
"type": "string"
}
},
"required": [
"paper_id"
],
"type": "object"
}
Implementation Reference
- src/index.ts:211-249 (handler)The handler function that implements the get_paper_details tool. It validates input with GetPaperDetailsSchema, fetches the IACR RSS feed, finds the paper by ID, extracts details, and returns them as JSON.private async getPaperDetails(args: unknown) { const validatedArgs = GetPaperDetailsSchema.parse(args); try { // Fetch RSS feed to get paper details const response = await axios.get(IACR_RSS_URL); const parsedFeed = await parseStringPromise(response.data); const paperItem = parsedFeed.rss.channel[0].item.find((item: any) => item.link[0].split('/').pop() === validatedArgs.paper_id ); if (!paperItem) { throw new Error('Paper not found'); } const paperDetails = { id: validatedArgs.paper_id, title: paperItem.title[0], authors: paperItem['dc:creator'] ? paperItem['dc:creator'][0] : 'Unknown', abstract: paperItem.description[0], link: paperItem.link[0], date: paperItem.pubDate[0] }; return { content: [{ type: 'text', text: JSON.stringify(paperDetails, null, 2) }] }; } catch (error) { console.error('Paper Details Error:', error); throw new McpError( ErrorCode.InternalError, `Paper details retrieval failed: ${error instanceof Error ? error.message : 'Unknown error'}` ); } }
- src/index.ts:26-28 (schema)Zod schema defining the input for get_paper_details: requires a 'paper_id' string.const GetPaperDetailsSchema = z.object({ paper_id: z.string() });
- src/index.ts:81-91 (registration)Tool registration in the ListTools response, specifying name, description, and input schema matching the Zod schema.{ name: 'get_paper_details', description: 'Retrieve details of a specific paper by its ID', inputSchema: { type: 'object', properties: { paper_id: { type: 'string' } }, required: ['paper_id'] } },