Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Primo

FreeNot checked

MCP server for Ex Libris Primo library discovery -- search university catalogue and subscribed databases (Primo Central Index) via the Model Context Protocol

GitHubEmbed

About

MCP server for Ex Libris Primo library discovery -- search university catalogue and subscribed databases (Primo Central Index) via the Model Context Protocol

README

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

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

from github.com/geheharidas/primo-mcp-server

Installing Primo

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/geheharidas/primo-mcp-server

FAQ

Is Primo MCP free?

Yes, Primo MCP is free — one-click install via Unyly at no cost.

Does Primo need an API key?

No, Primo runs without API keys or environment variables.

Is Primo hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Primo in Claude Desktop, Claude Code or Cursor?

Open Primo on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Primo with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs