sru-mcp
Click on "Install 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., "@sru-mcpsearch for books by Toni Morrison"
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.
sru-mcp
An MCP server that searches library catalogs worldwide using the SRU (Search/Retrieve via URL) protocol. No API keys required — SRU is an open standard supported by national libraries, university catalogs, and consortia.
Features
5 tools for LLM-driven bibliographic search
7 pre-configured servers including Library of Congress, BnF, DNB, and more
Parses MARCXML and Dublin Core record formats
Supports any SRU-compliant server — pass a URL or use a built-in server ID
Raw CQL queries or high-level field-based search (title, author, ISBN, subject, etc.)
Related MCP server: Primo MCP Server
Quick Start
Install
pip install mcp[cli] httpx xmltodictRun
python server.pyClaude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"sru": {
"command": "python",
"args": ["/path/to/sru-mcp/server.py"]
}
}
}Tools
Tool | Description |
| List all pre-configured library catalog servers |
| Get a server's capabilities, supported schemas, and indexes |
| List available search indexes on a server |
| Execute a raw CQL query |
| Search by title, author, ISBN, subject, publisher, year, or keyword |
Example Usage
Search the Library of Congress for books by Melville:
sru_search_books(server="loc", author="Melville", title="Moby Dick")Search the French national library with a raw CQL query:
sru_search(server="bnf", cql_query='dc.title = "Les Misérables"')Pre-configured Servers
ID | Name | Notes |
| Library of Congress | US national catalog |
| LC Name Authority | Personal and corporate names |
| LC Subject Authority | Subject headings and genre terms |
| Bibliothèque nationale de France | French national library |
| Deutsche Nationalbibliothek | German national library |
| Koninklijke Bibliotheek | Netherlands national library |
| BIBSYS | Norwegian academic libraries |
To add a server, edit servers.json.
Development
# Install dev dependencies
pip install pytest pytest-asyncio respx
# Run tests
python3 -m pytest test_sru.py test_server.py -v
# Test with MCP Inspector
npx @modelcontextprotocol/inspector python server.pyProject Structure
server.py FastMCP server — tool definitions
sru.py SRU protocol client — HTTP, parsing, formatting
servers.json Server registry
test_sru.py Tests for sru.py (92 tests total)
test_server.py Tests for server.pyLicense
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/codefzer/sru-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server