Skip to main content
Glama
Primo MCP Server

Primo MCP Server

by geheharidas

primo-mcp-server

MCP server for Ex Libris Primo library discovery -- search university catalogues and subscribed databases (ProQuest, Elsevier, Crossref, Gale, Springer, IEEE, etc.) via the Model Context Protocol.

Features

  • Search the full university catalogue and Primo Central Index (millions of records)

  • Get record details including abstract, authors, identifiers, and availability

  • Autocomplete search suggestions

  • Generate citations in APA 7th, Harvard, Chicago, IEEE, and Vancouver styles

  • Export to BibTeX, RIS, or CSV for import into reference managers

Related MCP server: academic-search-mcp

Installation

git clone https://github.com/geheharidas/primo-mcp-server.git
cd primo-mcp-server
pip install -e .

Register in Claude Code

Add to ~/.claude/settings.json:

{
  "mcpServers": {
    "primo": {
      "command": "python",
      "args": ["-m", "primo_mcp_server"]
    }
  }
}

Restart Claude Code. The tools will appear as mcp__primo__primo_search, etc.

Tools

Tool

Description

primo_search

Search the library catalogue with filters (type, date, peer-reviewed)

primo_get_record

Get full details for a record by ID

primo_suggest

Autocomplete search suggestions

primo_cite

Generate formatted citations (APA7, Harvard, Chicago, IEEE, Vancouver)

primo_export

Export records as BibTeX, RIS, or CSV

Usage Examples

From a Claude Code conversation:

  • "Search the library for articles about machine learning in entrepreneurship published after 2020"

  • "Get the full details for record cdi_crossref_primary_10_1234"

  • "Generate APA7 citations for these records"

  • "Export the search results as BibTeX"

Configuration

Defaults are set for UWA (University of Western Australia). Override via environment variables:

Variable

Default

Description

PRIMO_BASE_URL

https://onesearch.library.uwa.edu.au/primaws/rest/pub

Primo API base URL

PRIMO_VID

61UWA_INST:NDE_UWA

Primo View ID

PRIMO_INSTITUTION_NAME

UWA

Display name

PRIMO_REQUEST_TIMEOUT

30.0

HTTP timeout in seconds

PRIMO_MAX_RESULTS_PER_REQUEST

50

Maximum results per search

PRIMO_DEFAULT_RESULTS

10

Default results per search

See .env.example for the full list.

Running Tests

pip install -e ".[dev]"
pytest tests/ -v

Licence

MIT

Available Tools

5 tools
primo_citeA

Generate formatted citations for library records.

Args: record_ids: List of Primo record IDs to cite. style: Citation style -- "apa7" (default), "harvard", "chicago", "ieee", "vancouver".

Returns: Formatted citations. Note: always verify generated citations before submission.

NameRequiredDescriptionDefault
styleNoapa7
record_idsYes

Output Schema

NameRequiredDescription
resultYes
primo_exportA

Export library records to reference manager formats.

Args: record_ids: List of Primo record IDs to export. format: Export format -- "bibtex" (default), "ris", "csv".

Returns: Formatted export data ready for import into reference managers (Zotero, Mendeley, EndNote).

NameRequiredDescriptionDefault
formatNobibtex
record_idsYes

Output Schema

NameRequiredDescription
resultYes
primo_get_recordA

Get full details for a single library record.

Use the record ID from primo_search results to fetch complete metadata including abstract, all authors, subjects, identifiers, and availability.

Args: record_id: The Primo record ID (from search results, e.g. "alma991234567890" or "cdi_crossref_primary_10_1234").

Returns: Full record details including title, authors, abstract, identifiers, and availability.

NameRequiredDescriptionDefault
record_idYes

Output Schema

NameRequiredDescription
resultYes
primo_suggestA

Get autocomplete suggestions for a search term.

Useful for refining searches, checking subject headings, or exploring related terms before running a full search.

Args: query: Partial search term (e.g. "entrepre" or "machine lear").

Returns: List of suggested search terms.

NameRequiredDescriptionDefault
queryYes

Output Schema

NameRequiredDescription
resultYes

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv0.1.0
    • First observedprimo_cite
    • First observedprimo_export
    • First observedprimo_get_record
    • First observedprimo_search
    • First observedprimo_suggest

TDQS

A4.2/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a distinct purpose: search, get details, cite, export, and suggest. No overlapping functionality.

Naming Consistency5/5

All tool names follow a consistent 'primo_verb' pattern, making them predictable and easy to distinguish.

Tool Count5/5

5 tools cover the core library catalog operations without being excessive or insufficient.

Completeness5/5

The set covers search, retrieval, citation, export, and suggestion, which are the key interactions for a library catalog.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Comprehensive MCP server for academic research workflows, enabling paper searching across multiple sources, manuscript processing with citation placeholders, search caching, and citation export.
    11
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that searches library catalogs worldwide using the SRU protocol, enabling bibliographic search without API keys.
    1
    -
  • A
    license
    A
    quality
    B
    maintenance
    An MCP server for academic literature research that integrates Scopus, CrossRef, OpenAlex, and Unpaywall to search documents, get abstracts, author profiles, citing papers, and open-access PDF links.
    9
    MIT