Skip to main content
Glama

get_author_papers

Retrieve all published papers by a specific author from NASA ADS, including citations and publication details. Sort results by date or citation count to analyze research output.

Instructions

Find all papers by a specific author. Returns list of papers with citations and publication details.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
authorYesAuthor name (e.g., 'Coelho, P.' or 'Coelho, Paula')
max_resultsNoMaximum number of results (default: 20, max: 100)
sortNoSort by 'date' or 'citation_count'date

Implementation Reference

  • The main handler function that executes the tool logic: queries the NASA ADS API for papers by the given author, formats the results with titles, years, citations, and bibcodes, and returns them as TextContent.
    async def get_author_papers(author: str, max_results: int, sort: str) -> list[TextContent]: """Get papers by a specific author.""" try: # Prepare sort parameter sort_param = "date desc" if sort == "date" else "citation_count desc" # Search for author papers = ads.SearchQuery( author=author, fl=["bibcode", "title", "year", "citation_count", "pubdate"], rows=min(max_results, 100), sort=sort_param, ) # Format results results = [] total_citations = 0 for i, paper in enumerate(papers, 1): citations = paper.citation_count or 0 total_citations += citations results.append( f"{i}. {paper.title[0] if paper.title else 'No title'} ({paper.year})\n" f" Citations: {citations} | Bibcode: {paper.bibcode}\n" ) if not results: return [TextContent( type="text", text=f"No papers found for author: {author}" )] response = ( f"Found {len(results)} papers by '{author}' " f"(Total citations: {total_citations}):\n\n" + "\n".join(results) ) return [TextContent(type="text", text=response)] except Exception as e: logger.error(f"Error getting author papers: {e}") return [TextContent( type="text", text=f"Error getting author papers: {str(e)}" )]
  • Pydantic/JSON schema defining the input parameters for the get_author_papers tool: author (required), max_results (default 20), sort (date or citation_count, default date). Defines validation and documentation.
    inputSchema={ "type": "object", "properties": { "author": { "type": "string", "description": "Author name (e.g., 'Coelho, P.' or 'Coelho, Paula')", }, "max_results": { "type": "integer", "description": "Maximum number of results (default: 20, max: 100)", "default": 20, }, "sort": { "type": "string", "description": "Sort by 'date' or 'citation_count'", "enum": ["date", "citation_count"], "default": "date", }, }, "required": ["author"], },
  • Registration of the get_author_papers tool in the MCP server's list_tools() function, including name, description, and input schema.
    Tool( name="get_author_papers", description=( "Find all papers by a specific author. " "Returns list of papers with citations and publication details." ), inputSchema={ "type": "object", "properties": { "author": { "type": "string", "description": "Author name (e.g., 'Coelho, P.' or 'Coelho, Paula')", }, "max_results": { "type": "integer", "description": "Maximum number of results (default: 20, max: 100)", "default": 20, }, "sort": { "type": "string", "description": "Sort by 'date' or 'citation_count'", "enum": ["date", "citation_count"], "default": "date", }, }, "required": ["author"], }, ),

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/prtc/nasa-ads-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server