Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Bewertungen und Benutzerkonten folgen in einem späteren Schritt.
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

Eth Library MCP

von malkreideVersion 0.4.0i★ –iLäuft auf deinem Computer
Name in der Registryio.github.malkreide/eth-library-mcp

Installieren

Überblick

Beschreibung vom Entwickler (englisches Original)

ETH Library Discovery API

Die drei Säulen von PopNx MCP

Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.

Was du damit machen kannst

Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.

  • Verbindung: Läuft auf deinem Computer
  • Transport: stdio
  • Kategorie: Sonstiges

Installation

Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.

Bevor du installierst

  • Basischecks: 1 von 1 bestanden
  • Läuft auf deinem Computer mit den Rechten deines Benutzerkontos (Dateien, Netzwerk, Apps).
  • Die Registry nennt keinen Schlüssel zum Eintragen.

Du brauchst

  • PyPIuv für Python installiert (für den Befehl uvx)

Welche App nutzt du?

Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.

Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein

{
  "mcpServers": {
    "eth-library": {
      "command": "uvx",
      "args": [
        "eth-library-mcp"
      ]
    }
  }
}

Führe das in deinem Terminal aus

claude mcp add eth-library -- uvx eth-library-mcp

In Cursor öffnen

Oder kopier die Einstellungen selbst

In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen

{
  "mcpServers": {
    "eth-library": {
      "command": "uvx",
      "args": [
        "eth-library-mcp"
      ]
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

In VS Code öffnen

Oder kopier die Einstellungen selbst

In .vscode/mcp.json in deinem Projekt einfügen

{
  "servers": {
    "eth-library": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "eth-library-mcp"
      ]
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.

Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.

Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.

Was er kann

Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.

Basischecksi

Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde mit dem GitHub-Konto malkreide bestätigt, dem das Repo gehört

  • … Noch nicht geprüft

    Wird noch gepflegt

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • … Noch nicht geprüft

    Hat eine Lizenz

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • – Nicht zutreffend

    Endpunkt antwortet

    Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet

  • – Nicht zutreffend

    Anmeldung mit OAuth

    Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen

  • … Noch nicht geprüft

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen

Im Vergleich mit anderen in Sonstigesi

  • Mehr Sterne als 0 % der anderen 32696 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 45 % der anderen 32696 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 100 % der anderen 32696 Server in dieser Kategorie

Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.

Häufige Fragen

Ist Eth Library MCP sicher?

Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.

Welche Schlüssel oder Codes braucht er?

Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.

Läuft er auf meinem Computer oder in der Cloud?

Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.4.0) kam vor 2 Monaten in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Python (uv) auf deinem Computer.

Was kann ich stattdessen nutzen?

In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, LexPact UK Contracts

Alternativen

Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.

So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti

Spec Driven Development

von formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

Läuft auf deinem Computer★ 440MITAktualisiert vor 14 Monaten
Installieren

Remote Desktop Commander

von desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

Läuft in der Cloud★ 211Aktualisiert vorgestern
Installieren

Generate UK-law contracts: NDA, service, freelance, recruiter terms of business, IR35.

Läuft auf deinem ComputerAktualisiert heute
Installieren

README vom Entwickler

README öffnen

Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.

🇨🇭 Part of the [Swiss Public Data MCP Portfolio](https://github.com/malkreide)

🏛️ eth-library-mcp

🌐 English | [Deutsch](README.de.md)

MCP server giving AI models direct access to 30M+ resources at ETH Library Zurich – books, maps, images and archival material.

Demo

Overview

eth-library-mcp connects AI assistants like Claude to the largest natural-science library in Switzerland. It exposes full-text search, archive-level queries and resource-type filtering via the ETH Library's Discovery API – all through a single, standardised MCP interface.

6 Tools · 1 API · 2 Resources · 2 Prompts

MCP Protocol Version: 2026-07-28 (via mcp[cli]>=2.0.0,<3).

BUG-02 is resolved — by removing the tool. eth_search_persons was documented

as "currently non-functional, correct URL to be verified". It has now been verified,

and there is no correct URL: the Persons API is gone from the gateway, not merely

locked. The gateway routes *before* it checks the API key, so an existing route

answers 401 and a missing one answers 404 — /discovery/v1/resources gives 401,

every /persons/v1/* path gives 404, and so does a deliberately invented Discovery

path used as a control. Offering a capability that cannot exist is the same mistake as

returning an empty result, only louder. The measurement is recorded and dated in

tests/fixtures/api_routes.json.

Anchor demo query: *"Find historical documents about Zurich school history in the ETH Library archives."*


Features

  • 🔍 Full-text search over 30M+ resources with fields, operators, and facets
  • 📖 Resource details – full metadata via MMS-ID
  • 🗂️ Archive search – ETH University Archives, Max Frisch, Thomas Mann, Graphische Sammlung, Bildarchiv
  • 🏷️ Resource type filter – books, maps, images, archival material and more
  • 🎓 Education search – curated workflow optimised for pedagogy and school history
  • 📋 Server overview – all resource types and archives at a glance
  • 🗣️ Built-in prompts – structured research and education-research workflows
  • ☁️ Dual transport – stdio for Claude Desktop, Streamable HTTP/SSE for cloud deployment

Prerequisites


Installation

# Clone the repository

git clone https://github.com/malkreide/eth-library-mcp.git cd eth-library-mcp

Install

pip install -e .

Or with uv (recommended)

uv pip install -e .


Quickstart

# Set the API key

export ETH_LIBRARY_API_KEY=your_key_here # macOS / Linux

$env:ETH_LIBRARY_API_KEY = "your_key_here" # Windows (PowerShell)

Start the server (stdio mode for Claude Desktop)

python -m eth_library_mcp.server

Without an API key the server returns a helpful error message with the registration link – no crashes.

Try it immediately in Claude Desktop:

*"Find books about Swiss education history in the ETH Library."*

*"Search the Max Frisch archive for manuscripts about Zurich."*

→ More use cases by audience →


Configuration

Environment Variables
VariableDescriptionRequired
ETH_LIBRARY_API_KEYAPI key for the Discovery API✅
ETH_LIBRARY_LOG_LEVELLog level (DEBUG/INFO/WARNING/ERROR), default INFO—
ETH_LIBRARY_CORS_ORIGINSComma-separated CORS allow-origins for --http. Empty by default: no browser client is permitted. * allows any origin and is logged as a warning. Does not affect stdio clients.—
ETH_LIBRARY_ALLOWED_HOSTSComma-separated hostnames this server is reachable under. Required for a non-loopback bind (--host 0.0.0.0): the process cannot derive its own public name, and without this the SDK answers 421 Invalid Host header to every request. Empty by default; loopback stays reachable either way.—
Claude Desktop Configuration
{

"mcpServers": { "eth-library": { "command": "python", "args": ["-m", "eth_library_mcp.server"], "env": { "ETH_LIBRARY_API_KEY": "your_key_here" } } } }

Config file locations:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
Cloud Deployment (SSE for browser access)

For use via claude.ai in the browser (e.g. on managed workstations without local software):

python -m eth_library_mcp.server --http --port 8000

The HTTP transport binds to 127.0.0.1 by default. To expose it on another interface, pass --host explicitly:

# Only behind a reverse-proxy / firewall that terminates TLS and enforces auth.

python -m eth_library_mcp.server --http --host 0.0.0.0 --port 8000

⚠️ Do not bind to `0.0.0.0` without a reverse proxy. The server has no

built-in auth, rate-limiting or TLS — any LAN neighbour could call your tools.

💡 *"stdio for the developer laptop, HTTP for the browser — behind a proxy."*


Available Tools

Discovery API (api.library.ethz.ch)
ToolDescription
eth_search_resourcesFull-text search over 30M+ resources with fields, operators, facets
eth_get_resourceFull metadata for a specific resource via MMS-ID
eth_search_archiveSearch within a specific archive (University Archives, Max Frisch, Thomas Mann, etc.)
eth_search_by_typeFilter by resource type (books, maps, images, archival material, etc.)
eth_search_educationCurated search for education topics (pedagogy, school history, etc.)
Utilities
ToolDescription
eth_library_infoServer overview: all types and archives at a glance
Resources & Prompts
ItemTypeDescription
eth://resource-typesResourceAll available resource types
eth://archivesResourceAll available archives and collections
research-workflowPromptStructured research workflow
education-researchPromptEducation topics workflow (Schulamt-optimised)
Query Syntax

The Discovery API uses structured queries:

field,operator,value
FieldMeaning
anyAll fields (recommended for starters)
titleTitle only
creatorAuthor / creator
subSubject headings / topics
OperatorMeaning
containsTerm is present
exactExact match
begins_withStarts with

Examples:

any,contains,Volksschule Zürich

title,contains,Pädagogik creator,exact,Einstein Albert sub,contains,Bildungsforschung title,contains,Schule;sub,contains,Geschichte

Available Archives
IdentifierDescription
ETH_HochschularchivInstitutional memory of ETH Zurich
ETH_MaxFrischArchivEstate of Swiss author Max Frisch
ETH_ThomasMannArchivLetters and documents of Thomas Mann
ETH_GraphischeSammlungPrints, drawings, graphic works
ETH_BildarchivScience/technology history, Swissair (E-Pics)
Example Use Cases
QueryTool
*"Find books about Zurich school history"*eth_search_education
*"What's in the Max Frisch archive?"*eth_search_archive
*"Find historical maps of Switzerland"*eth_search_by_type
*"Get full metadata for resource ID 991170525863705501"*eth_get_resource
*"Which archives does the ETH Library hold?"*eth_library_info

Project Structure

eth-library-mcp/

├── src/ │ └── eth_library_mcp/ │ ├── init.py # Package init, version │ └── server.py # FastMCP server, all tools ├── tests/ │ └── test_server.py # Unit tests ├── CHANGELOG.md ├── CONTRIBUTING.md # Contribution guide (English) ├── CONTRIBUTING.de.md # Contribution guide (German) ├── SECURITY.md # Security posture (English) ├── SECURITY.de.md # Security posture (German) ├── LICENSE ├── README.md # This file (English) ├── README.de.md # German version ├── claude_desktop_config.json # Example Claude Desktop configuration └── pyproject.toml # Build configuration


MCP Protocol Version

This server speaks two protocol eras over the same endpoint. The client's first request on a connection decides which one applies; a later claim from the other era is refused.

EraRevisionWho reaches it
initialize handshake2024-11-05 … `2025-11-25`What today's clients speak. The server answers with the revision asked for, or with the 2025-11-25 ceiling when the request asks for something newer.
Per-request envelope`2026-07-28`A request carrying the 2026-07-28 _meta envelope opens a modern connection.

Both revisions are pinned in tests/test_protocol_version.py and asserted against the installed SDK, so a Dependabot bump of mcp cannot move either one silently. The handshake ceiling is measured against a live initialize through the assembled ASGI stack, not read off a constant name.

Note that the SDK's LATEST_PROTOCOL_VERSION is an alias for the modern era, not for the handshake era — pinning against it alone would leave the era that current clients actually negotiate free to drift.

Update policy. When the gate fails, do not edit the constant blindly: read the spec changelog between the two revisions, verify the server still behaves, then move the constant, this section, README.de.md and CHANGELOG.md together.

Server identity (serverInfo)

2026-07-28 stamps the server's Implementation block into every modern result under _meta.io.modelcontextprotocol/serverInfo (spec #3002) — earlier revisions carried it only in the initialize result. What used to be a one-time field is now repeated on every call, and version is required.

The SDK fills none of it: *"An unversioned server reports an empty version; the SDK never substitutes its own."* Measured against the assembled ASGI stack, this server used to answer "version": "" in both eras while server.json told the registry 0.3.4. It now declares:

FieldValueSource
nameeth-library-mcpthe programmatic identifier — the same string as the distribution name in pyproject.toml, packages[0].identifier in server.json and the suffix of the registry name io.github.malkreide/eth-library-mcp. It used to read eth_library_mcp, the module path: a name under which this server is available nowhere.
titleETH-Bibliothek ZürichSERVER_TITLE in server.py — the only value with no source outside
versionthe installed distribution's versionimportlib.metadata, so it cannot drift from pyproject.toml
descriptionthe distribution summaryimportlib.metadata
websiteUrlthe Homepage project URLimportlib.metadata

icons stays unset: this repository ships none, and an invented path would assert a file that does not exist.

M

Nur der Anfang wird gezeigt; den Rest findest du im Repo

PopNx fragen