github Python re-analysis due

malkreide/eth-library-mcp

github

MCP Server for ETH Library Zurich – Access 30M+ resources (books, maps, images, archives) via Discovery & Persons API

maintainer
malkreide
license
MIT
first seen
2026-06-04
last seen
2026-08-25
releases · 30d
1
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 6 tools
transport stdio · streamable-http · http verified reported listed in the official MCP registry counts 6 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • eth_get_resource
  • eth_library_info
  • eth_search_archive
  • eth_search_by_type
  • eth_search_education
  • eth_search_resources
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 8eb179d · analyzer v33 · 1w ago

skills & prompt files 1

code evidence vv0.3.4 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 13

filesystem 5

  • fs (weak) malkreide-eth-library-mcp-8eb179d/scripts/check_ruff_pin.py :35 import shutil
  • fs (weak) malkreide-eth-library-mcp-8eb179d/scripts/check_version_sync.py :35 from pathlib import Path
  • fs (weak) malkreide-eth-library-mcp-8eb179d/scripts/record_fixtures.py :55 from pathlib import Path
  • fs (weak) malkreide-eth-library-mcp-8eb179d/tests/fixture_data.py :22 from pathlib import Path
  • fs (weak) malkreide-eth-library-mcp-8eb179d/tests/test_werkzeug_versionen.py :18 import pathlib

shell / exec 1

  • shell (weak) malkreide-eth-library-mcp-8eb179d/scripts/check_ruff_pin.py :36 import subprocess

network 5

  • net (weak) malkreide-eth-library-mcp-8eb179d/scripts/record_fixtures.py :57 import httpx
  • net malkreide-eth-library-mcp-8eb179d/src/eth_library_mcp/client.py :15 from urllib.parse import urlparse
  • net malkreide-eth-library-mcp-8eb179d/src/eth_library_mcp/formatting.py :13 import httpx
  • net (weak) malkreide-eth-library-mcp-8eb179d/tests/test_server.py :97 import httpx
  • net (weak) malkreide-eth-library-mcp-8eb179d/tests/test_tools.py :14 import httpx

secrets 3

  • secrets (weak) malkreide-eth-library-mcp-8eb179d/scripts/record_fixtures.py :171 if not os.environ.get("ETH_LIBRARY_API_KEY"):
  • secrets malkreide-eth-library-mcp-8eb179d/src/eth_library_mcp/client.py :45 return os.environ.get("ETH_LIBRARY_API_KEY")
  • secrets malkreide-eth-library-mcp-8eb179d/src/eth_library_mcp/server.py :644 api_key = os.environ.get("ETH_LIBRARY_API_KEY")

tool registrations 6

  • eth_search_resources malkreide-eth-library-mcp-8eb179d/src/eth_library_mcp/server.py :189
  • eth_get_resource malkreide-eth-library-mcp-8eb179d/src/eth_library_mcp/server.py :301
  • eth_search_archive malkreide-eth-library-mcp-8eb179d/src/eth_library_mcp/server.py :365
  • eth_search_by_type malkreide-eth-library-mcp-8eb179d/src/eth_library_mcp/server.py :456
  • eth_search_education malkreide-eth-library-mcp-8eb179d/src/eth_library_mcp/server.py :555
  • eth_library_info malkreide-eth-library-mcp-8eb179d/src/eth_library_mcp/server.py :632

declared dependencies 9

  • mcp@>=2.0.0,<3
  • httpx@>=0.27.0,<1.0.0
  • pydantic@>=2.0.0,<3.0.0
  • structlog@>=24.0.0,<26.0.0
  • pytest@>=8.0.0,<9.0.0
  • pytest-asyncio@>=0.23.0,<2.0.0
  • pytest-cov@>=5.0.0,<7.0.0
  • respx@>=0.21.0,<1.0.0
  • ruff@==0.16.1