Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OPENALEX_MAILTO | Yes | Your email address, required by OpenAlex for API courtesy (polite pool access). | |
| ALEX_MCP_VERSION | No | Version of the alex-mcp server. | 4.1.0 |
| OPENALEX_USER_AGENT | No | User agent string to use for API requests. | research-agent-v1.0 |
| OPENALEX_MAX_AUTHORS | No | Maximum authors per query. | 100 |
| OPENALEX_RATE_PER_DAY | No | Rate limiting: maximum requests per day. | 100000 |
| OPENALEX_RATE_PER_SEC | No | Rate limiting: maximum requests per second. | 10 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| 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
| Name | Description |
|---|---|
| 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |