Primo MCP Server
MCP server for searching Ex Libris Primo library catalogues and subscribed databases, enabling search, record retrieval, autocomplete, citation generation, and export to BibTeX, RIS, or CSV.
README
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
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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.