Skip to main content
Glama
drAbreu

OpenAlex Author Disambiguation MCP Server

by drAbreu

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
OPENALEX_MAILTOYesYour email address, required by OpenAlex for API courtesy (polite pool access).
ALEX_MCP_VERSIONNoVersion of the alex-mcp server.4.1.0
OPENALEX_USER_AGENTNoUser agent string to use for API requests.research-agent-v1.0
OPENALEX_MAX_AUTHORSNoMaximum authors per query.100
OPENALEX_RATE_PER_DAYNoRate limiting: maximum requests per day.100000
OPENALEX_RATE_PER_SECNoRate limiting: maximum requests per second.10

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tasks
{
  "list": {},
  "cancel": {},
  "requests": {
    "tools": {
      "call": {}
    },
    "prompts": {
      "get": {}
    },
    "resources": {
      "read": {}
    }
  }
}
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_authors

Optimized MCP tool wrapper for searching authors.

Args: name: Author name to search for. institution: (Optional) Institution name filter. topic: (Optional) Topic filter. country_code: (Optional) Country code filter. limit: Maximum number of results to return (default: 15, max: 100).

Returns: dict: Serialized OptimizedSearchResponse with streamlined author data.

retrieve_author_works

Enhanced MCP tool wrapper for retrieving author works with flexible filtering.

Args: author_id: OpenAlex Author ID (e.g., 'https://openalex.org/A123456789') limit: Maximum number of results (default: None = ALL works via pagination, max: 2000) order_by: Sort order - "date" for newest first, "citations" for most cited first publication_year: Filter by specific publication year type: Filter by work type (e.g., "journal-article", "letter") journal_only: If True, only return journal articles and letters (default: True) min_citations: Only return works with at least this many citations peer_reviewed_only: If True, apply balanced peer-review filters (default: True)

Returns: dict: Serialized OptimizedWorksSearchResponse with author's works.

Usage Patterns: # For AI validation (sample of high-impact works) retrieve_author_works(author_id, limit=20, order_by="citations")

# For complete benchmark evaluation (ALL works, minimal filtering) retrieve_author_works(author_id, peer_reviewed_only=False, journal_only=False) # For peer-reviewed works only (default behavior) retrieve_author_works(author_id)
search_works

Optimized MCP tool wrapper for searching works.

Args: query: Search query text author: (Optional) Author name filter institution: (Optional) Institution name filter publication_year: (Optional) Publication year filter type: (Optional) Work type filter (e.g., "article", "letter") limit: Maximum number of results (default: 25, max: 100) peer_reviewed_only: If True, apply peer-review filters (default: True) search_type: Search mode - "general" (title/abstract/fulltext), "title" (title only), or "title_and_abstract" (title and abstract only)

Returns: dict: Serialized OptimizedGeneralWorksSearchResponse with streamlined work data.

autocomplete_authors

Enhanced autocomplete authors with intelligent filtering and ranking.

Args: name: Author name to search for (e.g., "James Briscoe", "M. Ralser") context: Optional context to help with disambiguation (e.g., "Francis Crick Institute developmental biology", "Max Planck Institute Köln Germany") limit: Maximum number of candidates to return (default: 10, max: 15) filter_no_institution: If True, exclude candidates with no institutional affiliation (default: True) enable_institution_ranking: If True, rank candidates by institutional context relevance (default: True)

Returns: dict: Serialized AutocompleteAuthorsResponse with filtered and ranked candidate authors, including: - openalex_id: Full OpenAlex author ID - display_name: Author's display name - institution_hint: Current/last known institution - works_count: Number of published works - cited_by_count: Total citation count - external_id: ORCID or other external identifiers - search_metadata: Information about filtering and ranking applied

Example usage: # Get high-quality candidates with institutional filtering candidates = await autocomplete_authors("Ivan Matić", context="Max Planck Institute Biology Ageing Köln Germany")

# For seasoned researchers, institution hints and ranking help disambiguation # AI can then select the best match or retrieve works for further verification

Enhanced Features: - Filters out candidates with no institutional affiliation (reduces noise) - Institution-aware ranking when context is provided (improves accuracy) - Higher default limit (10 vs 5) for better candidate coverage - Detailed logging for debugging and optimization

search_pubmed

Search PubMed database for publications.

Args: query: Search query (author name, DOI, title, or keywords) search_type: Type of search - "author", "doi", "title", or "keywords" (default: "author") max_results: Maximum number of results to return (default: 20, max: 50)

Returns: dict: Search results with PMIDs, article metadata, and summary statistics

Example usage: # Search for author search_pubmed("Ivan Matic", search_type="author", max_results=10)

# Search by DOI search_pubmed("10.1038/nprot.2009.36", search_type="doi") # Search by keywords search_pubmed("ADP-ribosylation DNA repair", search_type="keywords")
pubmed_author_sample

Get detailed author sample from PubMed with institutional information.

Args: author_name: Author name to search for (e.g., "Ivan Matic", "J Smith") sample_size: Number of recent works to analyze in detail (default: 5, max: 10)

Returns: dict: Author analysis including: - total_works: Total number of works found in PubMed - sample_works: Detailed information for sample works - institutional_keywords: Common institutional terms found - name_variants: Different name formats found - email_addresses: Email addresses extracted from affiliations

Example usage: # Get institutional profile for author pubmed_author_sample("Ivan Matic", sample_size=5)

search_orcid_authors

Search ORCID for author profiles by name and affiliation.

Args: name: Author name to search (e.g., "John Smith", "Maria Garcia") affiliation: Optional institutional affiliation for disambiguation max_results: Maximum number of results to return (default: 10, max: 50)

Returns: dict: ORCID search results with: - total_found: Total number of matches found - results_returned: Number of results returned - results: List of author profiles with ORCID IDs, names, and affiliations

Example usage: # Basic name search search_orcid_authors("John Smith")

# Search with affiliation for better disambiguation search_orcid_authors("Maria Garcia", "University of Barcelona")
get_orcid_publications

Get publications/works from an ORCID profile.

Args: orcid_id: ORCID identifier (e.g., "0000-0000-0000-0000" or full URL) max_works: Maximum number of works to retrieve (default: 20, max: 100)

Returns: dict: Publications data with: - orcid_id: Cleaned ORCID identifier - total_works: Number of works found - works: List of publications with titles, journals, DOIs, PMIDs

Example usage: # Get works for specific ORCID get_orcid_publications("0000-0000-0000-0000")

# Get limited number of works get_orcid_publications("0000-0000-0000-0000", max_works=10)

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/drAbreu/alex-mcp'

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