Provides tools to search and retrieve data about scholarly works from OpenAlex.
OpenAlex Works Explorer provides 14 tools covering scholarly data exploration across works, authors, sources, institutions, topics, publishers, and funders. Tool naming follows the verb_noun pattern consistently (search_*, get_*) which is strong. However, definition quality is hampered by: (1) incomplete parameter descriptions, many parameters like 'filters' and 'sort' lack actionable format guidance; (2) missing output schema documentation, no explicit description of what fields are returned for each tool; (3) generic descriptions for similar tools that blur distinction; (4) no error handling guidance visible in tool definitions; (5) no per-tool result limits documented (critical for search tools). The 'summarize_results' feature in search_works is well-thought-out, but inconsistently applied across other search tools. Overall, the tools are functional and well-named, but lack the depth of parameter constraint documentation and output structure clarity needed for production-grade definition quality.
Retrieves full details of a specific OpenAlex author by their ID.
Retrieves full details of a specific OpenAlex funder by its ID.
Retrieves full details of a specific OpenAlex institution by its ID.
Retrieves full details of a specific OpenAlex publisher by its ID.
Retrieves full details of a specific OpenAlex source by its ID.
Retrieves full details of a specific OpenAlex topic by its ID.
Retrieves full details of a specific OpenAlex work by its ID.
Missing output schema documentation: No explicit description of returned fields for any tool. LLMs cannot plan downstream operations without knowing what fields to expect. For example, search_works should document that results include 'id', 'title', 'authors', 'publication_year', 'cited_by_count', 'venue', 'oa_url', 'abstract' (when summarized) or the full set of OpenAlex fields (when not).
Insufficient parameter constraint documentation: The 'filters' parameter in search_* tools lacks actionable format guidance. Description says 'Key-value pairs for filtering' and mentions OpenAlex docs, but does not specify valid filter keys, expected value formats, or examples. LLMs need explicit constraints like 'keys: publication_year (integer), is_oa (boolean), has_abstract (boolean), language (string: en|fr|de...)' or direct reference to valid options.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 44 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 20 | - | v1 |
Searches for OpenAlex authors based on keywords and filters.
Searches for OpenAlex funders based on keywords and filters.
Searches for OpenAlex institutions based on keywords and filters.
Searches for OpenAlex publishers based on keywords and filters.
Searches for OpenAlex sources (journals, conferences, repositories) based on keywords and filters.
Searches for OpenAlex topics based on keywords and filters.
Searches for OpenAlex works based on keywords and filters, returning selected fields. Supports boolean operators in the search query as per OpenAlex syntax. Uses cursor pagination.
Missing result limit documentation: Search tools do not document per-result limits or maximum page sizes. OpenAlex docs mention 200 max per_page, but tools should explicitly state 'Results are limited to 200 per request; use cursor pagination for larger result sets.' Without this, LLMs may not understand pagination necessity.
Generic descriptions for similar tools: All get_* tools have near-identical descriptions ('Retrieves full details of a specific OpenAlex [entity] by its ID.'). This generic phrasing doesn't help LLMs distinguish when to call get_work vs get_author vs get_source. Add entity-specific context: 'Retrieves complete metadata for a work, including authorships, publication venue, citation count, open access status, and abstract (if available).'
No error handling guidance in tool descriptions: Tools do not document what errors are recoverable (e.g., 'Invalid cursor, use cursor=* to restart') or actionable (e.g., 'Author ID not found; try search_authors to find the correct ID'). This violates the recovery-guide pattern and forces LLMs to guess how to handle failures.
Inconsistent handling of summarize_results: Only search_works has the 'summarize_results' boolean parameter. search_authors, search_sources, etc. lack this feature. This creates an asymmetric interface where the agent can request summaries for works but not authors. Either remove summarize_results from search_works for consistency, or add it to all search_* tools.
Missing parameter type hints on 'sort' parameter: The sort parameter is described as 'Field to sort by and direction' with example '{"cited_by_count": "desc"}', but the schema type is 'object' with no properties or additionalProperties constraints. LLMs need explicit guidance: 'Object with one key (field name) and value (asc|desc). Valid fields: cited_by_count, publication_date, relevance_score.'