Primo
FreeNot checkedMCP server for Ex Libris Primo library discovery -- search university catalogue and subscribed databases (Primo Central Index) via the Model Context Protocol
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
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-serverFAQ
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
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Primo with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
