Primo MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Primo MCP Serversearch for machine learning in education since 2020"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
| Search the library catalogue with filters (type, date, peer-reviewed) |
| Get full details for a record by ID |
| Autocomplete search suggestions |
| Generate formatted citations (APA7, Harvard, Chicago, IEEE, Vancouver) |
| 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 API base URL |
|
| Primo View ID |
|
| Display name |
|
| HTTP timeout in seconds |
|
| Maximum results per search |
|
| Default results per search |
See .env.example for the full list.
Running Tests
pip install -e ".[dev]"
pytest tests/ -vLicence
MIT
Available Tools
5 toolsprimo_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.
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | apa7 | |
| record_ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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).
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | bibtex | |
| record_ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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.
| Name | Required | Description | Default |
|---|---|---|---|
| record_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
primo_searchA
Search the university library catalogue and subscribed databases.
Args: query: Search terms (e.g. "machine learning entrepreneurship"). field: Search field -- "any" (default), "title", "creator", "sub" (subject), "isbn", "oclcnum". scope: "everything" for local catalogue + subscribed databases, "catalogue" for local only. sort_by: "rank" (relevance, default), "date" (newest first), "title" (alphabetical). limit: Number of results to return (1-50, default 10). offset: Pagination offset (default 0). Use to get the next page of results. resource_type: Filter by type -- "books", "articles", "journals", "dissertations", "conference_proceedings". date_from: Start year filter (YYYY format, e.g. "2020"). date_to: End year filter (YYYY format, e.g. "2025"). peer_reviewed: Set to true to show only peer-reviewed items.
Returns: Formatted search results with title, authors, year, identifiers, and availability.
| Name | Required | Description | Default |
|---|---|---|---|
| field | No | any | |
| limit | No | ||
| query | Yes | ||
| scope | No | everything | |
| offset | No | ||
| date_to | No | ||
| sort_by | No | rank | |
| date_from | No | ||
| peer_reviewed | No | ||
| resource_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v0.1.0- First observed
primo_cite - First observed
primo_export - First observed
primo_get_record - First observed
primo_search - First observed
primo_suggest
TDQS
Scored across 5 tools
Each tool has a distinct purpose: search, get details, cite, export, and suggest. No overlapping functionality.
All tool names follow a consistent 'primo_verb' pattern, making them predictable and easy to distinguish.
5 tools cover the core library catalog operations without being excessive or insufficient.
The set covers search, retrieval, citation, export, and suggestion, which are the key interactions for a library catalog.
Related MCP Connectors
MCP server for Russian books search, details, and recommendation candidates.
Academic research MCP server for paper search, citation checks, graphs, and deep research.
Hosted MCP server for finding authoritative primary data sources and official portals.
MCP server for real-time product search by barcode (EAN, UPC, GTIN) or keyword on ean-search.org
Related MCP Servers
- AlicenseAqualityCmaintenanceComprehensive MCP server for academic research workflows, enabling paper searching across multiple sources, manuscript processing with citation placeholders, search caching, and citation export.11MIT
- FlicenseNot gradedqualityDmaintenanceMCP server for academic research using the OpenAlex API, enabling article search, details retrieval, and author profile lookup.-
- FlicenseNot gradedqualityDmaintenanceAn MCP server that searches library catalogs worldwide using the SRU protocol, enabling bibliographic search without API keys.1-
- AlicenseAqualityBmaintenanceAn 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.9MIT