Dimensions Analytics MCP server for Dimensions DSL querying
Server has 27 tools with consistent naming (verb_noun pattern: search_*, get_*, extract_*, etc.) and documented schemas. All tools have descriptions (50-150 chars, within baseline 34-392 range). Input parameters include types and descriptions. However, output schemas are not explicitly documented in the source code, only inferred from tool names and descriptions. Error handling is minimal; no recovery guidance or actionable error messages visible. Parameters lack constraints (enums, ranges, format specs) that would guide LLM input validation. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all tools being READ_ONLY. Missing dependency hints and multi-step guidance.
Execute an aggregation query
Get citation trends over time
Classify text using Dimensions classification system
Construct a profile URL for a Dimensions entity
Describe the Dimensions schema
Execute a raw Dimensions DSL query
Extract affiliations from text
Extract concepts from text
Output schemas not documented. Tool descriptions state what is returned (e.g., 'Search publications') but do not specify the structure of results: field names, types, pagination format, or total count. LLMs cannot plan downstream tool calls without knowing what fields to extract.
No parameter constraints (enums, ranges, format specs). Parameters like 'sortBy', 'aggregationFunction', 'system' (in classify) accept free-form strings with no declared valid values. LLMs will hallucinate invalid options. Example: 'aggregationFunction' should enumerate sum|count|avg|min|max.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | <=2025-11-25 | v2 |
Extract grant information from text
Execute a faceted query to get aggregated results
Fetch multiple pages of search results from a previous search
Get funding trends over time
Get a publication by its DOI
Get an entity by its Dimensions ID
Get a publication by its PubMed ID
Search clinical trials in the Dimensions database
Search datasets in the Dimensions database
Search funder groups in the Dimensions database
Search grants in the Dimensions database
Search organizations in the Dimensions database
Search patents in the Dimensions database
Search publications in the Dimensions database
Search reports in the Dimensions database
Search research organization groups in the Dimensions database
Search researchers in the Dimensions database
Search source titles (journals) in the Dimensions database
Find documents similar to provided text
No tool annotations despite all 27 tools being READ_ONLY. Annotations (readOnlyHint, destructiveHint, idempotentHint) are part of the current MCP spec and help agents reason about safety and retry logic. All tools should declare readOnlyHint: true.
No error handling guidance. Tool descriptions do not explain what errors can occur, how to recover, or what the LLM should do next. Example: execute_dsl and fetch_search_pages accept 'confirmLargeFetch' but do not document what happens if confirmation is missing or what 'large' means (threshold).
Missing dependency hints and multi-step guidance. Tools like 'get_by_id' require an 'entityType' parameter but do not explain how to discover valid entity types. 'describe_schema' exists but is not mentioned in other tool descriptions as a discovery step.