github Python re-analysis due

malkreide/zh-education-mcp

github

MCP server for education statistics of Canton and City of Zurich (BISTA)

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

Drift inferred · capture-to-capture

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

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

tools

  • zh_edu_list_schulgemeinden
  • zh_edu_maturitaetsquote
  • zh_edu_mittelschulen
  • zh_edu_overview
  • zh_edu_schulkreis_trend
  • zh_edu_sek1_profil
  • zh_edu_staatsangehoerigkeiten
  • zh_edu_wohnort_trend
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit a873d95 · analyzer v33 · 1w ago

skills & prompt files 1

danger signals1

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

code files: 31

filesystem 11

  • fs malkreide-zh-education-mcp-a873d95/audits/2026-05-29T193607-Z-zh-education-mcp/gen_findings.py :11 from pathlib import Path
  • fs malkreide-zh-education-mcp-a873d95/audits/2026-05-30T070451-Z-zh-education-mcp/gen_findings.py :11 from pathlib import Path
  • fs malkreide-zh-education-mcp-a873d95/audits/2026-05-30T072745-Z-zh-education-mcp/gen_findings.py :11 from pathlib import Path
  • fs (weak) malkreide-zh-education-mcp-a873d95/scripts/check_release_artifacts.py :24 from pathlib import Path
  • fs (weak) malkreide-zh-education-mcp-a873d95/scripts/check_ruff_pin.py :35 import shutil
  • fs (weak) malkreide-zh-education-mcp-a873d95/scripts/check_version_sync.py :35 from pathlib import Path
  • fs (weak) malkreide-zh-education-mcp-a873d95/scripts/classify_live_run.py :55 from pathlib import Path
  • fs (weak) malkreide-zh-education-mcp-a873d95/scripts/record_fixtures.py :38 from pathlib import Path
  • fs (weak) malkreide-zh-education-mcp-a873d95/tests/fixture_data.py :18 from pathlib import Path
  • fs (weak) malkreide-zh-education-mcp-a873d95/tests/test_classify_live_run.py :21 from pathlib import Path
  • fs (weak) malkreide-zh-education-mcp-a873d95/tests/test_read_fields.py :29 from pathlib import Path

shell / exec 1

  • shell (weak) malkreide-zh-education-mcp-a873d95/scripts/check_ruff_pin.py :36 import subprocess

network 11

  • net (weak) malkreide-zh-education-mcp-a873d95/scripts/record_fixtures.py :40 import httpx
  • net (weak) malkreide-zh-education-mcp-a873d95/scripts/tls_import_probe.py :71 import httpx
  • net malkreide-zh-education-mcp-a873d95/src/zh_education_mcp/data.py :9 import httpx
  • net malkreide-zh-education-mcp-a873d95/src/zh_education_mcp/http_client.py :8 import socket
  • net (weak) malkreide-zh-education-mcp-a873d95/tests/_resolver_guard.py :24 import socket
  • net (weak) malkreide-zh-education-mcp-a873d95/tests/conftest.py :43 # Verschärfend: ``http_client`` macht ``import socket``, also IST
  • net (weak) malkreide-zh-education-mcp-a873d95/tests/test_live_resolver_guard.py :22 import socket
  • net (weak) malkreide-zh-education-mcp-a873d95/tests/test_read_fields.py :31 import httpx
  • net (weak) malkreide-zh-education-mcp-a873d95/tests/test_retry_policy.py :10 import socket
  • net (weak) malkreide-zh-education-mcp-a873d95/tests/test_schema_drift.py :11 import httpx
  • net (weak) malkreide-zh-education-mcp-a873d95/tests/test_server.py :5 import httpx

tool registrations 8

  • zh_edu_list_schulgemeinden malkreide-zh-education-mcp-a873d95/src/zh_education_mcp/tools.py :109
  • zh_edu_schulkreis_trend malkreide-zh-education-mcp-a873d95/src/zh_education_mcp/tools.py :173
  • zh_edu_overview malkreide-zh-education-mcp-a873d95/src/zh_education_mcp/tools.py :278
  • zh_edu_sek1_profil malkreide-zh-education-mcp-a873d95/src/zh_education_mcp/tools.py :362
  • zh_edu_staatsangehoerigkeiten malkreide-zh-education-mcp-a873d95/src/zh_education_mcp/tools.py :448
  • zh_edu_maturitaetsquote malkreide-zh-education-mcp-a873d95/src/zh_education_mcp/tools.py :542
  • zh_edu_wohnort_trend malkreide-zh-education-mcp-a873d95/src/zh_education_mcp/tools.py :640
  • zh_edu_mittelschulen malkreide-zh-education-mcp-a873d95/src/zh_education_mcp/tools.py :739

declared dependencies 15

  • mcp@>=2.0.0,<3
  • httpx@>=0.27.0
  • pydantic@>=2.0.0
  • pydantic-settings@>=2.0.0
  • starlette@>=0.37.0,<2
  • uvicorn@>=0.30.0
  • structlog@>=24.1.0,<27
  • pytest@>=8.0.0
  • pytest-asyncio@>=0.23.0
  • pytest-cov@>=5.0.0
  • respx@>=0.21.0
  • ruff@==0.16.1
  • opentelemetry-sdk@>=1.20.0
  • opentelemetry-exporter-otlp-proto-http@>=1.20.0
  • opentelemetry-instrumentation-httpx@>=0.40b0