Swiss MCP Server

swisscovery, e-rara, e-periodica, e-manuscripta via SRU/OAI-PMH

Remote serverstreamable-httpPython

What is the Swiss MCP server?

swisscovery, e-rara, e-periodica, e-manuscripta via SRU/OAI-PMH. Exposed over MCP by the swiss mcp server, that capability becomes something an assistant can invoke while it works, not something you go and do afterwards.

What it actually does

All data sources use open, authentication-free protocols (SRU/MARC21, OAI-PMH/Dublin Core). The server supports both local use via Claude Desktop (stdio transport) and cloud deployment (Streamable HTTP).

  • 16 tools — across 4 catalogue sources + 3 open-access legal-literature sources + 2 international metadata sources — all read-only, no API key required
  • swisscovery search — with full CQL syntax: full-text, title, author, subject, ISBN/ISSN
  • OAI-PMH harvesting — with date range and collection filters plus pagination via resumption tokens
  • MARC21 parser — extracting 20+ fields (title, creator, publication info, subjects, abstract, URLs)
  • Dublin Core parser — for all three digitalisation portals
  • Dual transport — stdio for Claude Desktop · Streamable HTTP for cloud/self-hosted deployments

Its toolset

Everything the assistant can do here goes through one of these:

  • library_info — —
  • swisscovery_search — swisscovery
  • swisscovery_get_record — swisscovery
  • erara_list_records — e-rara
  • erara_get_record — e-rara
  • erara_list_collections — e-rara
  • eperiodica_list_records — e-periodica
  • eperiodica_get_record — e-periodica
  • emanuscripta_list_records — e-manuscripta
  • emanuscripta_get_record — e-manuscripta
  • emanuscripta_list_collections — e-manuscripta
  • oa_law_search — OA legal (all 3)

Adding it to your client

Being a remote server, there is no local install. You register the endpoint with your client, authorise it once, and the tools appear.

Configuration

You will need one environment variable: OA_LAW_REPOSITORIUM_ANON_KEY. The server will not start without them, which is usually why the tools fail to appear on a first run. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.

  • Python 3.11 or higher - uv / uvx (recommended) or pip - Internet access (all APIs are publicly available) ---

When to reach for it

Plenty of developer tooling servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Swiss's toolset — library_info, swisscovery_search, swisscovery_get_record and 11 more — is a fair guide to whether it matches your workflow. It is maintained by malkreide; worth a glance at recent repository activity before you build anything load-bearing on it.

SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.

Caveats

  • Your data travels to the provider's service, so the usual questions apply about what you send and what they retain.
  • With 14 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch Swiss.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • MCP clients confirm each tool call by default. Leave that on until you have watched what the swiss mcp server does with a few real requests.

Available tools

ToolWhat it does
library_info
swisscovery_searchswisscovery
swisscovery_get_recordswisscovery
erara_list_recordse-rara
erara_get_recorde-rara
erara_list_collectionse-rara
eperiodica_list_recordse-periodica
eperiodica_get_recorde-periodica
emanuscripta_list_recordse-manuscripta
emanuscripta_get_recorde-manuscripta
emanuscripta_list_collectionse-manuscripta
oa_law_searchOA legal (all 3)
oa_law_getOA legal (all 3)
resolve_doiCrossref

How to install the Swiss MCP server

{
  "mcpServers": {
    "swiss-academic-libraries": {
      "command": "uvx",
      "args": ["swiss-academic-libraries-mcp"]
    }
  }
}

Configuration as documented by the project. Restart the client after saving.

Configuration

  • Python 3.11 or higher - uv / uvx (recommended) or pip - Internet access (all APIs are publicly available) ---
VariableDescriptionRequired
OA_LAW_REPOSITORIUM_ANON_KEYCredential the server authenticates with.Yes

Example prompts to try

  • Use Swiss to library info.
  • Use Swiss to swisscovery search.
  • Use Swiss to swisscovery get record.

Frequently asked questions

It connects Swiss to MCP-compatible AI assistants such as Claude and Cursor, exposing 14 tools (library_info, swisscovery_search, swisscovery_get_record, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Swiss directly.