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.

Inputs: record_ids (required), style. Returns: result

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).

Inputs: record_ids (required), format. Returns: result

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.

Inputs: record_id (required). Returns: result

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.

Inputs: query (required). Returns: result

Tool Schema Changelog

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

Loading tool schema changelog…

    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