# AMIRA — Africa Multiple Research Data (remote · data.africamultiple.uni-bayreuth.de)

Read-only access to AMIRA, the Africa Multiple research-data platform on Omeka S.

- Trust score: 79/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-24

## Components

- remote · `data.africamultiple.uni-bayreuth.de`: 79/100 (this document), [markdown](https://verifymcp.io/servers/am-digital-research-environment-amira-mcp-server/data.md), [page](https://verifymcp.io/servers/am-digital-research-environment-amira-mcp-server/data)
- mcpb · `amira-mcp-server.mcpb`: 64/100, [markdown](https://verifymcp.io/servers/am-digital-research-environment-amira-mcp-server/amira-mcp-server.md), [page](https://verifymcp.io/servers/am-digital-research-environment-amira-mcp-server/amira-mcp-server)

## Channel facts

- Endpoint: `https://data.africamultiple.uni-bayreuth.de/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.25.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-24.

- **Endpoint Security**: 74/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 78/100
  - 76% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 4758 tokens (~101/item across 47 items; 35 tools + 12 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 57/100
  - Stability observed for 17 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 94/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 78% of tool parameters carry a description.
  - Structured output schemas are declared (31% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 35 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 37 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).
  - Supports UI / widget rendering.

## Install

### How do I install the AMIRA — Africa Multiple Research Data MCP server?

AMIRA — Africa Multiple Research Data is a hosted endpoint at https://data.africamultiple.uni-bayreuth.de/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http am-digital-research-environment-amira-mcp-server 'https://data.africamultiple.uni-bayreuth.de/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "am-digital-research-environment-amira-mcp-server": {
      "url": "https://data.africamultiple.uni-bayreuth.de/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "am-digital-research-environment-amira-mcp-server": {
      "type": "http",
      "url": "https://data.africamultiple.uni-bayreuth.de/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.am-digital-research-environment-amira-mcp-server]
url = "https://data.africamultiple.uni-bayreuth.de/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "am-digital-research-environment-amira-mcp-server": {
      "type": "remote",
      "url": "https://data.africamultiple.uni-bayreuth.de/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add am-digital-research-environment-amira-mcp-server --url 'https://data.africamultiple.uni-bayreuth.de/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  am-digital-research-environment-amira-mcp-server:
    url: "https://data.africamultiple.uni-bayreuth.de/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "am-digital-research-environment-amira-mcp-server": {
      "Transport": "http",
      "Url": "https://data.africamultiple.uni-bayreuth.de/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add am-digital-research-environment-amira-mcp-server -t streamable-http -u 'https://data.africamultiple.uni-bayreuth.de/mcp'
```

### Other

```json
{
  "mcpServers": {
    "am-digital-research-environment-amira-mcp-server": {
      "type": "http",
      "url": "https://data.africamultiple.uni-bayreuth.de/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-24 (score 79, +1)

- [security regression] HSTS header: unverified → fail
- [security improvement] Authorization: unverified → partial
- [security improvement] Injection markers: unverified → pass
- [security improvement] TLS certificate: unverified → pass
- [security improvement] Transport: fail → pass
- [functional improvement] Endpoint reachability: unreachable → reachable
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Schema quality: unverified → 76
- [functional improvement] Stability: unverified → 0.57

### 2026-10-22 (score 78, 0)

- [security regression] Endpoint reachability: reachable → unreachable
- [security regression] HSTS header: fail → unverified
- [security regression] Stability: 0.47 → unverified
- [security regression] Authorization: partial → unverified
- [security regression] Tool safety: pass → unverified
- [security regression] TLS certificate: pass → unverified
- [security regression] Transport: pass → fail
- [functional regression] Capabilities: pass → unverified
- [functional regression] Schema quality: 76 → unverified
- [functional regression] Tool coverage: 100 → unverified

### 2026-10-21 (score 78, +1)

No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-20 (score 77, 0)

- [security] Tool “get_entity_graph” rewrote its description, which is the text the model reads
- [functional] Server version: 1.24.0 → 1.25.0
- [cosmetic] “get_entity_graph” added an optional parameter “types”

### 2026-10-19 (score 77, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [functional] Server version: 1.23.0 → 1.24.0
- [cosmetic] “get_research_item” reworded the description of “id”
- [cosmetic] “fetch” reworded the description of “id”

### 2026-10-18 (score 77, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-16 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-14 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (35)

### `get_collection_overview` (~30 tokens)

Africa Multiple collection overview

Start here: corpus counts, text coverage, breakdowns, dates, snapshot freshness and refresh status.

Output parameters:

- `collection_name` (string)
- `content_date_range`
- `counts` (object)
- `data_snapshot` (object)
- `items_by_language` (object)
- `items_by_research_section` (object)
- `items_by_resource_type` (object)
- `items_by_university` (object)
- `metadata_exposure` (string)
- `refresh` (object)
- `research_sections` (array)
- `site_url` (string)
- `universities` (object)

### `search_research_items` (~485 tokens)

Search research items

Search digitised research items. Filters are AND-combined; empty results suggest a filter to relax or a stored place name. export links all matches as a file.

Input parameters:

- `added_since` (string): Added to AMIRA on or after this ISO date
- `collection` (string): Item-set title (partial) or id from list_collections
- `contributor` (string): A person/organisation credited on the item; either name order works
- `country` (string): Country only, exact name or common alias ('Côte d'Ivoire' = 'Ivory Coast'). Use `location` for cities
- `export` (string): Return a file link instead of rows
- `genre` (string): Format/genre descriptor, partial (e.g. 'interview', 'letter', 'photograph')
- `has_media` (boolean): true: only items with digitised files
- `keyword` (string): Every word must occur in the title, description, abstract, contents or identifiers; quote a phrase to match it exactly
- `language` (string): Name or ISO code — 'French', 'fr', 'fra' and legacy 'fre' all match
- `limit` (integer): Default 20, max 100
- `location` (string): A place at ANY level of the city→country hierarchy: 'Nigeria' finds Lagos items, 'Lagos' finds only Lagos
- `location_id` (integer): Exact location authority ID, including descendants; avoids homonym matches
- `modified_since` (string): Changed on or after this ISO date
- `offset` (integer)
- `project_id`: Project Omeka id
- `research_section` (string): e.g. 'Arts & Aesthetics', 'Mobilities'
- `resource_type` (string): e.g. 'Image', 'Text', 'Audio', 'Moving image'
- `subject` (string): Subject heading, partial (e.g. 'Architecture'). Subjects absorb the former free-form tags — there is no tag filter
- `university` (string): ubt | unilag | ujkz | ufba | external — code or full name
- `year_from` (integer): Keep items whose content dates overlap from this year
- `year_to` (integer): Keep items whose content dates overlap up to this year

### `get_research_item` (~124 tokens)

Get research item detail

Research-item metadata, linked entities, rights, media files, IIIF manifest and a generated citation (BibTeX/RIS/CSL-JSON). Long fields cap at 25,000 characters.

Input parameters:

- `citation_format` (string): Export format for the generated citation: bibtex (default) → `bibtex`, ris → `ris`, csl-json → `csl_json`
- `id` (required): Omeka id (the number ending its amira_url, e.g. 9902) or a typed id such as research_item:9902

### `search_projects` (~182 tokens)

Search research projects

Search project names, descriptions and membership. Returns cited summaries and item counts; use get_project for detail.

Input parameters:

- `institution` (string): Funding/affiliated institution name, partial
- `keyword` (string): Matches the project name, an acronym or the description
- `limit` (integer): Default 25, max 100
- `member` (string): A project member's name; either order works
- `offset` (integer)
- `principal_investigator` (string): A PI name; either order works ('Oliver Baumann' finds 'Baumann, Oliver')
- `research_section` (string): Name or id, e.g. 'Knowledges'
- `university` (string): ubt | unilag | ujkz | ufba | external — code or name. A data facet, not a full AMRC list

### `get_project` (~59 tokens)

Get project detail

Project description, team, sections, funders, item counts by type, top subjects and ten sample research items, with citation links.

Input parameters:

- `id` (required): Project Omeka id (e.g. 37700) or typed id project:37700

### `list_research_sections` (~31 tokens)

List research sections

Cluster research sections, funding phases, project/item counts and citation links. Includes the external-collection grouping.

### `get_research_section` (~61 tokens)

Get research section detail

One research section's description, team and projects, each with its research-item count.

Input parameters:

- `id`: Section Omeka id or typed id section:218
- `name` (string): Section name, e.g. 'Arts & Aesthetics'

### `search_persons` (~83 tokens)

Search people

Find canonical person authority records. Names accept either order and ignore accents. Use resolve_entity to disambiguate homonyms.

Input parameters:

- `affiliation` (string): Matches the person's affiliations only
- `keyword` (string): Matches the name, a name variant or an affiliation
- `limit` (integer): Default 25, max 100
- `offset` (integer)

### `get_person` (~103 tokens)

Get person profile

Person affiliations, identifiers, project and section roles, credited items, publications, podcasts, videos and collaborators. Lists cap at 50 with totals. Use id to disambiguate.

Input parameters:

- `id`: Exact person Omeka id or typed id (person:123); required to disambiguate homonyms
- `name` (string): Full name in either order, with or without accents: 'Beier, Ulli' and 'Ulli Beier' both resolve

### `list_institutions` (~66 tokens)

List institutions

Browse institution authorities by name or acronym (e.g. 'UJKZ'), with project counts and citation links.

Input parameters:

- `keyword` (string): Name or acronym, partial
- `limit` (integer): Default 50, max 200
- `offset` (integer)

### `get_institution` (~58 tokens)

Get institution detail

Institution or group profile: identifiers, members, funded projects and credited items, with citation links.

Input parameters:

- `id`: Omeka id or typed id organisation:1224
- `name` (string): Institution or group name, or an acronym

### `list_cluster_partners` (~44 tokens)

List cluster partner institutions

Cluster partner institutions grouped by catalogue category, with citation links.

Input parameters:

- `category` (string): Optional: amrc | privileged | cooperation | global, or a category label

### `list_groups` (~53 tokens)

List groups

Browse research groups and associations by name, with citation links.

Input parameters:

- `keyword` (string): Name or acronym, partial
- `limit` (integer): Default 50, max 200
- `offset` (integer)

### `list_subjects` (~87 tokens)

List subjects

Subject headings (LCSH or free tags) ranked by distinct research-item count. Feed a heading into search_research_items.subject.

Input parameters:

- `keyword` (string): Substring filter on the subject heading
- `limit` (integer): Default 50, max 300
- `offset` (integer)
- `vocabulary` (string): Only Library of Congress headings or only free tags

### `list_locations` (~132 tokens)

List locations

Research places with coordinates and ancestor rollups. One item can count under both city and country. Feed a name into search_research_items.location.

Input parameters:

- `bbox` (array): [west, south, east, north]
- `country` (string): One country, exact name or alias, plus its cities
- `filters` (object): Research-item filters applied before place counts
- `keyword` (string): Substring filter on the place name
- `limit` (integer): Default 50, max 300
- `near` (object): Places within km of a point
- `offset` (integer)

### `list_collections` (~68 tokens)

List collections

Omeka item sets ranked by research-item count, with catalogue links. Feed an ID into search_research_items.collection.

Input parameters:

- `keyword` (string): Substring filter on the collection title
- `limit` (integer): Default 50, max 200
- `offset` (integer)

### `list_categories` (~94 tokens)

List a category facet

Ranked formats, languages or resource types used by research items. Feed values into the corresponding search filters.

Input parameters:

- `category` (string, required): 'genres' is an alias of 'formats'. The former 'tags' facet is merged into subjects — use list_subjects
- `keyword` (string): Substring filter on the value
- `limit` (integer): Default 100, max 500
- `offset` (integer)

### `list_years` (~136 tokens)

List years

Research-item year/decade histogram with dated and undated counts. A date range counts in each spanned bucket. Supports shared item filters and pagination.

Input parameters:

- `bucket` (string): Default 'year'
- `filters` (object): Research-item filters applied before bucketing
- `from` (integer): Earliest year to report (inclusive)
- `limit` (integer): Default 200, max 500
- `offset` (integer)
- `sort` (string): Default 'chronological' (oldest first); 'count' ranks by item count
- `to` (integer): Latest year to report (inclusive)

Output parameters:

- `bucket` (string)
- `count` (number)
- `dated_items` (number)
- `distinct_buckets` (number)
- `has_more` (boolean)
- `next_offset` (number)
- `offset` (number)
- `results` (array)
- `sort` (string)
- `total_matches` (number)
- `undated_items` (number)
- `year_range` (object)

### `search_publications` (~256 tokens)

Search publications

AND-filtered bibliography, newest first. Keyword includes PDF text and returns match snippets. citation_format returns citations per page; export links every match as one file. Cite amira_url.

Input parameters:

- `added_since` (string): Added to AMIRA on or after this ISO date
- `author` (string): Author/editor name, either name order
- `citation_format` (string): Omit for summaries; pages carry bibtex, ris or csl_json
- `export` (string): Return a file link instead of rows
- `has_fulltext` (boolean): Filter by extracted full-text availability
- `keyword` (string): Title, abstracts, venue, subjects or full text; every word must match, quote a phrase
- `language` (string): Language name or ISO code
- `limit` (integer): Default 25; max 100 summaries or 25 exports, also byte-bounded
- `offset` (integer)
- `subject` (string): Subject heading, partial
- `type` (string): Exact type; discover values with list_publication_facets
- `venue` (string): Journal/book title, partial
- `year_from` (integer)
- `year_to` (integer)

### `get_publication` (~144 tokens)

Get publication detail

Publication metadata and citation export (BibTeX default). Full text is opt-in and paginated. Cite amira_url; DOI/repository links are additional sources.

Input parameters:

- `citation_format` (string): Default bibtex; selects bibtex, ris or csl_json field
- `fulltext_max_chars` (integer): Max full-text characters to return (default/max 25000)
- `fulltext_offset` (integer): Start offset into the full text (chars), with include_fulltext
- `id` (required): Publication Omeka id or typed id publication:29919
- `include_fulltext` (boolean): Default false — set true to include the extracted full text

### `list_publication_facets` (~201 tokens)

Publication facets

Ranked facets for the entire filtered bibliography before pagination. Uses the same selection rules as search_publications.

Input parameters:

- `added_since` (string): Added to AMIRA on or after this ISO date
- `author` (string): Author/editor name, either name order
- `facet` (string, required)
- `has_fulltext` (boolean): Filter by extracted full-text availability
- `keyword` (string): Title, abstracts, venue, subjects or full text; every word must match, quote a phrase
- `language` (string): Language name or ISO code
- `limit` (integer): Default 25, max 100
- `offset` (integer)
- `subject` (string): Subject heading, partial
- `type` (string): Exact type; discover values with list_publication_facets
- `venue` (string): Journal/book title, partial
- `year_from` (integer)
- `year_to` (integer)

Output parameters:

- `count` (number)
- `effective_limit` (number)
- `facet` (string)
- `filters` (object)
- `has_more` (boolean)
- `missing_values` (number)
- `next_offset` (number)
- `offset` (number)
- `requested_limit` (number)
- `response_limited` (boolean)
- `results` (array)
- `total_matches` (number)
- `total_publications` (number)

### `list_journals` (~60 tokens)

List journals

Publication venues ranked by linked bibliography records, with ISSN and catalogue links.

Input parameters:

- `keyword` (string): Substring filter on the journal title
- `limit` (integer): Default 50, max 200
- `offset` (integer)

### `find_related` (~162 tokens)

Find related entities

Subjects, people, places and projects connected through shared records. Per-corpus counts deduplicate each record; subject/person seeds also include publications. Returns ambiguity and cited samples.

Input parameters:

- `entity_type` (string, required): What the value denotes. Tags are merged into subjects — there is no tag pivot
- `limit` (integer): Per-list cap, default 20, max 50
- `value` (string, required): The entity to pivot on. subject: substring of a heading ('Islam'). location: any level of the city→country hierarchy ('Nigeria' includes Lagos items). person: a name in either order, accent-insensiti…

### `search_podcasts` (~158 tokens)

Search podcasts

Search podcast metadata and transcripts. Text-only hits include snippets; full transcripts require get_podcast with opt-in.

Input parameters:

- `keyword` (string): Every word must occur in the title, abstract or transcript; quote a phrase to match it exactly
- `language` (string): Name or ISO code — 'French', 'fr', 'fra' all match
- `limit` (integer): Default 20, max 100
- `offset` (integer)
- `person` (string): A speaker/host name; either name order works
- `series` (string): Series title, partial (e.g. 'Cluster Conversations')
- `year_from` (integer): Earliest year
- `year_to` (integer): Latest year

### `get_podcast` (~120 tokens)

Get podcast episode detail

Podcast detail, duration, audio file and citation link; says which model generated the transcript. Transcript is opt-in, bounded and pageable.

Input parameters:

- `id` (required): Podcast id from search_podcasts, e.g. 39121, or podcast:39121
- `include_transcript` (boolean): Default false — set true to include the transcript text
- `transcript_max_chars` (integer): Max transcript characters to return (default/max 25000)
- `transcript_offset` (integer): Start offset into the transcript (chars), with include_transcript

### `search_videos` (~147 tokens)

Search YouTube videos

Search video metadata and transcripts. Text-only hits include snippets; full transcripts require get_video with opt-in.

Input parameters:

- `keyword` (string): Every word must occur in the title, abstract or transcript; quote a phrase to match it exactly
- `language` (string): Name or ISO code — 'French', 'fr', 'fra' all match
- `limit` (integer): Default 20, max 100
- `offset` (integer)
- `playlist` (string): Playlist title, partial
- `speaker` (string): A speaker name; either name order works
- `year_from` (integer): Earliest year
- `year_to` (integer): Latest year

### `get_video` (~117 tokens)

Get YouTube video detail

Video detail, thumbnail and citation link; says how the transcript was produced when recorded. Transcript is opt-in, bounded and pageable.

Input parameters:

- `id` (required): Video id from search_videos, e.g. 39218, or video:39218
- `include_transcript` (boolean): Default false — set true to include the transcript text
- `transcript_max_chars` (integer): Max transcript characters to return (default/max 25000)
- `transcript_offset` (integer): Start offset into the transcript (chars), with include_transcript

### `resolve_entity` (~66 tokens)

Resolve an entity

Resolve a label or typed ID to cited candidates. Returns ambiguity instead of merging names. Use a returned id with get_entity_graph or get_* tools.

Input parameters:

- `limit` (integer)
- `offset` (integer)
- `query` (string, required)
- `type` (string)

Output parameters:

- `ambiguous` (boolean)
- `count` (number)
- `effective_limit` (number)
- `has_more` (boolean)
- `hint` (string)
- `next_offset` (number)
- `offset` (number)
- `requested_limit` (number)
- `response_limited` (boolean)
- `results` (array)
- `snapshot_id` (string)
- `suggestions` (array)
- `total_matches` (number)

### `get_entity_graph` (~139 tokens)

Explore an entity graph

One-hop graph from a typed ID: explicit catalogue links and derived co-occurrence with distinct-record counts and cited evidence. types filters neighbours before the bounds. Pass edge_id to page its evidence; pin snapshot_id across pages.

Input parameters:

- `edge_id` (string)
- `limit` (integer): Evidence page size, default 20, max 50
- `max_edges` (integer): Default 50, max 200
- `max_nodes` (integer): Default 40, max 100
- `offset` (integer)
- `seed` (string, required)
- `snapshot_id` (string)
- `types` (array)

Output parameters:

- `bounds` (object)
- `count` (number)
- `edges` (array)
- `effective_limit` (number)
- `has_more` (boolean)
- `neighbour_types` (object)
- `next_offset` (number)
- `nodes` (array)
- `offset` (number)
- `requested_limit` (number)
- `response_limited` (boolean)
- `results` (array)
- `seed` (string)
- `snapshot_id` (string)
- `total_edges` (number)
- `total_matches` (number)
- `truncated` (boolean)
- `types` (array)

### `get_text_passages` (~96 tokens)

Find cited text passages

Find literal accent-insensitive keyword passages in selected publication/video/podcast IDs. Original UTF-16 offsets, bounded context, and citations. Requires full text exposure; no semantic ranking.

Input parameters:

- `ids` (array, required): publication:, video: or podcast: ids
- `keyword` (string, required)
- `limit` (integer): Default 10, max 20
- `offset` (integer)
- `radius` (integer)

Output parameters:

- `count` (number)
- `effective_limit` (number)
- `has_more` (boolean)
- `next_offset` (number)
- `offset` (number)
- `requested_limit` (number)
- `response_limited` (boolean)
- `results` (array)
- `scanned_matches_capped` (boolean)
- `snapshot_id` (string)
- `total_matches` (number)
- `unavailable_ids` (array)

### `compare_collections` (~56 tokens)

Compare project collections

Compare 2–4 projects or item sets with identical research-item filters. Reports denominators, missingness, dates and top types/languages; collections can overlap.

Input parameters:

- `cohorts` (array, required)
- `filters` (object)

Output parameters:

- `cohorts` (array)
- `overlap_note` (string)
- `snapshot_id` (string)

### `get_data_quality` (~37 tokens)

Inspect data coverage

Snapshot coverage and missing metadata, unresolved loaded-authority links, and sanitized refresh status. Missing catalogue metadata is not evidence of real-world absence.

Output parameters:

- `counts` (object)
- `fetched_at` (string)
- `literal_entities` (number)
- `missing` (object)
- `refresh` (object)
- `schema_version` (number)
- `snapshot_id` (string)
- `unresolved_entities` (number)

### `get_snapshot_changes` (~93 tokens)

Compare retained snapshots

Page added/updated/deleted records between retained snapshots from this Omeka instance. Lists available snapshot IDs when fewer than two exist. For recent additions without history, use added_since on the search tools.

Input parameters:

- `corpus` (string)
- `from_id` (string)
- `limit` (integer): Default 30, max 100
- `offset` (integer)
- `to_id` (string)

Output parameters:

- `count` (number)
- `effective_limit` (number)
- `from_id` (string)
- `has_more` (boolean)
- `next_offset` (number)
- `offset` (number)
- `requested_limit` (number)
- `response_limited` (boolean)
- `results` (array)
- `snapshots` (array)
- `status` (string)
- `to_id` (string)
- `total_matches` (number)

### `search` (~101 tokens)

Search the AMIRA collection

Ranked search across items, publications, videos, podcasts, projects and sections. Returns typed IDs, titles and citation URLs. Fetch selected records for evidence.

Input parameters:

- `limit` (integer): Default 10, max 50
- `query` (string, required): A few keywords, names, places or themes — e.g. 'Yoruba architecture'. Terms are matched individually, so concise queries beat full sentences
- `types` (array): Restrict to these record kinds

Output parameters:

- `effective_limit` (number)
- `requested_limit` (number)
- `results` (array)

### `fetch` (~227 tokens)

Fetch one AMIRA record

Read a typed search result as a cited document. Full text/transcripts are opt-in and pageable; metadata and text respect exposure policy. Unknown ID returns an error.

Input parameters:

- `fulltext_max_chars` (integer): Max full-text characters to return (default/max 25000)
- `fulltext_offset` (integer): Start offset into the full text (chars), with include_fulltext
- `id` (string, required): A typed record id from search (item:9902, pub:30001, video:…, podcast:…, project:…, section:…) or resolve_entity
- `include_fulltext` (boolean): Default false — set true to append a publication's extracted full text
- `include_transcript` (boolean): Default false — set true to append the video/podcast transcript
- `max_chars` (integer): Cap on the whole returned text body, default/max 25000
- `transcript_max_chars` (integer): Max transcript characters to return (default/max 25000)
- `transcript_offset` (integer): Start offset into the transcript (chars), with include_transcript

Output parameters:

- `error` (object): Present instead of the record when the id is unknown
- `id` (string)
- `metadata` (object)
- `text` (string)
- `title` (string)
- `url` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/am-digital-research-environment-amira-mcp-server/data#diagnostics

## Score history

- 2026-10-24: 79
- 2026-10-23: 78
- 2026-10-22: 78
- 2026-10-21: 78
- 2026-10-20: 77
- 2026-10-19: 77
- 2026-10-18: 77
- 2026-10-17: 76
- 2026-10-16: 76
- 2026-10-15: 75
- 2026-10-14: 75
- 2026-10-13: 74
- 2026-10-12: 74
- 2026-10-10: 73
- 2026-10-09: 72
- 2026-10-07: 71

## Common questions

### What is the AMIRA — Africa Multiple Research Data MCP server?

AMIRA — Africa Multiple Research Data is an MCP server listed in the public MCP registry as io.github.AM-Digital-Research-Environment/amira-mcp-server. Read-only access to AMIRA, the Africa Multiple research-data platform on Omeka S. This page covers its hosted endpoint (https://data.africamultiple.uni-bayreuth.de/mcp).

### Is the AMIRA — Africa Multiple Research Data MCP server safe to use?

AMIRA — Africa Multiple Research Data scores 79 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the AMIRA — Africa Multiple Research Data MCP server expose?

AMIRA — Africa Multiple Research Data exposes 35 tools: get_collection_overview, search_research_items, get_research_item, search_projects, get_project, and 30 more. Their descriptions and schemas cost roughly 4,076 tokens of context every time the server is loaded.

### Does the AMIRA — Africa Multiple Research Data MCP server require authentication?

No. We connected to AMIRA — Africa Multiple Research Data without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the AMIRA — Africa Multiple Research Data MCP server still maintained?

AMIRA — Africa Multiple Research Data is still listed as active in the MCP registry. We last reached this channel on 24 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://data.africamultiple.uni-bayreuth.de/mcp
- Repository: https://github.com/AM-Digital-Research-Environment/amira-mcp-server
- Changelog RSS feed: https://verifymcp.io/servers/am-digital-research-environment-amira-mcp-server/data.xml
- Changelog JSON feed: https://verifymcp.io/servers/am-digital-research-environment-amira-mcp-server/data.json
- HTML version of this page: https://verifymcp.io/servers/am-digital-research-environment-amira-mcp-server/data
