get_literature_references
Retrieve scientific publications and citations for UniProt protein entries using accession numbers to support research validation and literature review.
Instructions
Associated publications and citations
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"accession": "<accession>"
},
"name": "get_literature_references"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| accession | Yes | UniProt accession number |
Implementation Reference
- src/index.ts:1739-1776 (handler)The handler function that implements the core logic for the 'get_literature_references' tool. It validates input, fetches the UniProt protein entry via API, extracts the references array and PubMed cross-references, and formats the response.
private async handleGetLiteratureReferences(args: any) { if (!isValidProteinInfoArgs(args)) { throw new McpError(ErrorCode.InvalidParams, 'Invalid literature references arguments'); } try { const response = await this.apiClient.get(`/uniprotkb/${args.accession}`, { params: { format: 'json' }, }); const protein = response.data; const literatureInfo = { accession: protein.primaryAccession, references: protein.references || [], pubmedReferences: protein.uniProtKBCrossReferences?.filter((ref: any) => ref.database === 'PubMed') || [], citationCount: protein.references?.length || 0, }; return { content: [ { type: 'text', text: JSON.stringify(literatureInfo, null, 2), }, ], }; } catch (error) { return { content: [ { type: 'text', text: `Error fetching literature references: ${error instanceof Error ? error.message : 'Unknown error'}`, }, ], isError: true, }; } } - src/index.ts:664-673 (registration)Tool registration entry in the ListToolsRequestSchema response, defining the tool name, description, and input schema (schema).
name: 'get_literature_references', description: 'Associated publications and citations', inputSchema: { type: 'object', properties: { accession: { type: 'string', description: 'UniProt accession number' }, }, required: ['accession'], }, }, - src/index.ts:776-776 (registration)Dispatch case in the CallToolRequestSchema handler switch statement that routes tool calls to the specific handler.
return this.handleGetLiteratureReferences(args); - src/index.ts:79-89 (helper)Helper validation function for input arguments requiring a UniProt accession, used by the get_literature_references handler and others.
const isValidProteinInfoArgs = ( args: any ): args is { accession: string; format?: string } => { return ( typeof args === 'object' && args !== null && typeof args.accession === 'string' && args.accession.length > 0 && (args.format === undefined || ['json', 'tsv', 'fasta', 'xml'].includes(args.format)) ); };