github Python re-analysis due

malkreide/meteoswiss-mcp

github

MCP Server for Swiss weather & climate data – MeteoSwiss SwissMetNet, ICON forecasts, school planning

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

Drift inferred · capture-to-capture

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

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

tools

  • meteo_climate_normals
  • meteo_current
  • meteo_school_check
  • meteo_stations
  • meteo_warnings
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit d29acea · analyzer v32 · 1w ago

skills & prompt files 1

danger signals2

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

code files: 8

filesystem 6

  • fs (weak) malkreide-meteoswiss-mcp-d29acea/scripts/ingest_climate_normals.py :51 from pathlib import Path
  • fs (weak) malkreide-meteoswiss-mcp-d29acea/scripts/record_fixtures.py :31 from pathlib import Path
  • fs (weak) malkreide-meteoswiss-mcp-d29acea/scripts/tool_hashes.py :20 from pathlib import Path
  • fs malkreide-meteoswiss-mcp-d29acea/src/meteoswiss_mcp/server.py :1654 with open(path, encoding="utf-8") as f:
  • fs (weak) malkreide-meteoswiss-mcp-d29acea/tests/fixture_data.py :19 from pathlib import Path
  • fs (weak) malkreide-meteoswiss-mcp-d29acea/tests/test_server.py :1058 import pathlib

network 3

  • net (weak) malkreide-meteoswiss-mcp-d29acea/scripts/record_fixtures.py :33 import httpx
  • net malkreide-meteoswiss-mcp-d29acea/src/meteoswiss_mcp/server.py :47 from urllib.parse import urlparse
  • net (weak) malkreide-meteoswiss-mcp-d29acea/tests/test_server.py :15 import httpx

secrets 1

  • secrets malkreide-meteoswiss-mcp-d29acea/src/meteoswiss_mcp/server.py :3054 api_key = os.environ.get("MCP_API_KEY")

tool registrations 5

  • meteo_stations malkreide-meteoswiss-mcp-d29acea/src/meteoswiss_mcp/server.py :1848
  • meteo_current malkreide-meteoswiss-mcp-d29acea/src/meteoswiss_mcp/server.py :1932
  • meteo_school_check malkreide-meteoswiss-mcp-d29acea/src/meteoswiss_mcp/server.py :2251
  • meteo_climate_normals malkreide-meteoswiss-mcp-d29acea/src/meteoswiss_mcp/server.py :2392
  • meteo_warnings malkreide-meteoswiss-mcp-d29acea/src/meteoswiss_mcp/server.py :2514

declared dependencies 13

  • mcp@>=2.0.0,<3
  • httpx@>=0.27.0
  • pydantic@>=2.0.0
  • structlog@>=24.0.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-api@>=1.27.0
  • opentelemetry-sdk@>=1.27.0
  • opentelemetry-exporter-otlp-proto-http@>=1.27.0
  • opentelemetry-instrumentation-httpx@>=0.48b0