get_paper
Retrieve detailed information about a specific academic paper using its arXiv ID, including metadata and content extraction from PDFs.
Instructions
Get details about a specific paper by its arXiv ID
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| paper_id | Yes | arXiv paper ID (e.g., 2104.13478 or cs/0001001) |
Implementation Reference
- src/index.ts:331-345 (handler)The main handler function for the 'get_paper' tool. It constructs a search query using the provided paper_id as id_list, calls queryArxiv to fetch data from arXiv API, processes it, and returns the JSON-formatted response.private async getPaper(args: GetPaperArgs) { const searchParams: SearchParams = { id_list: args.paper_id, }; const response = await this.queryArxiv(searchParams); return { content: [ { type: 'text', text: JSON.stringify(response, null, 2), }, ], }; }
- src/index.ts:45-47 (schema)TypeScript interface defining the input parameters for the get_paper tool handler.interface GetPaperArgs { paper_id: string; }
- src/index.ts:155-168 (registration)Tool registration in the ListToolsRequestSchema handler, defining name, description, and input schema for 'get_paper'.{ name: 'get_paper', description: 'Get details about a specific paper by its arXiv ID', inputSchema: { type: 'object', properties: { paper_id: { type: 'string', description: 'arXiv paper ID (e.g., 2104.13478 or cs/0001001)', }, }, required: ['paper_id'], }, },
- src/index.ts:223-230 (registration)Dispatch case in CallToolRequestSchema handler that validates input and invokes the getPaper handler for 'get_paper' tool.case 'get_paper': if (!request.params.arguments || typeof request.params.arguments.paper_id !== 'string') { throw new McpError( ErrorCode.InvalidParams, 'Missing or invalid paper_id parameter' ); } return await this.getPaper(request.params.arguments as unknown as GetPaperArgs);