MCP server for Altmetric APIs - track research attention across news, policy, social media, and more
Altmetric MCP demonstrates solid definition quality with consistent naming, comprehensive parameter schemas, and detailed descriptions. All 12 tools follow verb_noun naming conventions (get_*, search_*, explore_*, list_*). Parameter schemas are well-structured with types, enums, and descriptions. However, output schemas are generic (passthrough envelopes) with intentionally loose validation, and error handling lacks recovery guidance. The server handles multiple credential resolution strategies (stdio vs. HTTP) cleanly. Tool descriptions average ~250 chars, well within the 10-1024 char baseline (p10=34, p90=392). All tools declare tool annotations (readOnlyHint, idempotentHint, openWorldHint). Issues: output schemas provide minimal structure for LLM planning; error messages are not visible in code samples; no parameter-level constraints on numeric ranges (e.g., page, per_page limits); batch tool could be better positioned as a primary optimization pattern.
Get aggregated attention metrics across all research outputs matching a query, grouped by mention source (news, Twitter, blogs, etc.). Returns counts and trends without individual output details.
Get demographic breakdown of mentions for a research output or query. Provides information about who is discussing the research (by country, profession, etc.).
Get journal-level attention metrics for a query. Returns information about which journals publish research that matches the search criteria and their attention profiles.
Get information about the sources (users, news outlets, policy bodies, etc.) mentioning a research output or topic. Returns profiles and aggregated mention data for each source.
Search for individual mentions (posts, news articles, policy documents, etc.) matching a query. Filter by mention type, source, date, and other criteria. Returns paginated list of mentions with author and content details.
Output schemas are intentionally loose and passthrough. EXPLORER_OUTPUT_SCHEMA and DETAILS_OUTPUT_SCHEMA provide minimal type constraints ('additionalProperties: true'), explicitly allowing any field. While this accommodates upstream API changes, it eliminates structured output benefits for LLM planning. LLMs cannot reliably know what fields to expect or chain tool calls without trial and error.
Numeric parameters lack documented constraints. 'page' and 'per_page' parameters appear in 6 tools (explore_research_outputs, explore_mentions, explore_mention_sources, explore_journals, explore_demographics, list_departments) with no stated min/max or default enforced. Descriptions omit 'max 100' or 'default 20' bounds. LLMs may pass arbitrary values causing API errors or resource exhaustion.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 71 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 57 | 1.27.1+ | v1 |
Query the Altmetric Explorer to discover research outputs by keyword, with filtering by date, mention count, and other criteria. Returns paginated results with detailed attention metrics.
Retrieve attention metrics for multiple research outputs in a single request. Submit a list of identifiers and get back citation counts and scores for each. More efficient than calling get_citation_counts multiple times.
Retrieve citation counts and basic metadata for a research output using its DOI, PubMed ID, arXiv ID, or other identifier. The score comes back unrounded (a single tweet scores 0.25), while Altmetric rounds it UP wherever it displays a score, so report 1 rather than 0.25 if the figure has to match what a customer sees on a details page, a badge or in the Explorer. Returns citation metrics across various platforms (Twitter, news, blogs, policy documents, etc.). Available with free tier API keys.
Retrieve detailed citation information including full text of mentions, author details, and complete metadata for a research output. This is a commercial feature requiring a paid API key. Returns comprehensive data about each mention across all tracked platforms. Posts from X carry only `tweet_id` and `author.tweeter_id`, with no account name or post text, under our licence with X; posts from other sources carry the author name and a summary. The citation block includes authors_details, pairing each author name with its Dimensions Researcher ID where available. Note: This endpoint does not support pagination and returns all data at once.
List available research departments or organizational units in the Altmetric system. Returns a list of department names and identifiers for use with other queries.
Search for research outputs and citations by keyword, subject area, publication date, and other filters. Returns paginated results with basic citation metrics. Use this to discover research outputs relevant to specific topics or time periods.
Convert between different research output identifier types (DOI, PubMed ID, arXiv ID, etc.). Given one identifier type, return the equivalent identifiers in other systems.
No error handling or recovery guidance visible in tool definitions. Tool descriptions do not explain what to do on common failures (e.g., 'identifier not found', 'rate limit exceeded', 'invalid date range'). Error responses are not shown in code samples, so we cannot verify LLM-friendly error messages with recovery suggestions.
include_sources and exclude_sources (in get_citation_details) accept comma-separated strings but validate silently. Description states 'unrecognised name returns no posts rather than an error'. LLMs cannot distinguish a typo (e.g., 'twiiter' instead of 'twitter') from an intentional filter returning zero results, preventing self-correction.
Tool descriptions omit dependency hints and sequencing guidance. E.g., get_citation_details requires 'paid API key' but does not state how to verify/obtain one or what to do if a free key is used. explore_* tools offer filtering (published_after, mentioned_after) but descriptions do not clarify time zone or expected format edge cases (e.g., '2024-01-01T00:00:00Z' vs '2024-01-01').
list_departments has minimal description ('List available research departments or organizational units in the Altmetric system'). No context on how departments are used downstream, or which other tools accept department parameters. Description is 106 chars, near the lower bound of productive length (p10=34).