Skip to content

Releases: malkreide/seco-labor-mcp

v0.3.4

Choose a tag to compare

@malkreide malkreide released this 31 Jul 15:35
71926a1

[0.3.4] - 2026-07-30

Fixed

  • The User-Agent reports the actual package version again. The published
    0.3.3 sent seco-labor-mcp/0.3.0 to every upstream — the version string was
    hardcoded and had been left behind by earlier bumps. The version now comes
    from the package metadata, so it can no longer drift from the package.

0.3.0 — Audit cycle complete

Choose a tag to compare

@malkreide malkreide released this 26 May 12:09
e55709e

Version 0.2.0 was reserved for an earlier GitHub-only release (commit 89fc337,
pre-audit lint cleanup). Because PyPI version numbers are immutable, this
audit-completion snapshot ships as 0.3.0 to avoid a confusing collision
between the GitHub tag and what users would install from PyPI.

This release closes 13 findings from a complete mcp-audit-skill audit cycle
(2 HIGH, 4 MEDIUM, 3 LOW + 4 follow-up LOW from a re-audit).

Added

  • FastMCP lifespan with a pooled httpx.AsyncClient reused across all tool calls (SDK-001).
  • Live CSV parsing for seco_get_unemployment_overview, seco_get_youth_unemployment,
    and seco_get_job_seekers with defensive delimiter/encoding detection.
  • 24h TTL CSV cache (bounded to 50 entries, FIFO eviction).
  • SSRF prevention: HTTPS-only enforcement + async IP validation + follow_redirects=False (SEC-004).
  • OccupationInput Pydantic model for ARCH consistency.
  • 35 new unit tests (34 → 69) covering live CSV, SSRF, cache eviction, error split.

Changed

  • SSE binds to 127.0.0.1 by default (SEC-016).
  • FastMCP(..., mask_error_details=True) to prevent internal exception leakage (OBS-002).
  • 5xx/ConnectError/Timeout re-raised as protocol errors; 4xx/SSRF return recoverable strings (OBS-001).
  • Tests split into tests/test_unit.py and tests/test_live.py (OPS-001).

Removed

  • Unused KNOWN_DATASETS constant.
  • Dead if params.month == 0 branch in seco_get_monthly_report_url.

v0.2.0 — Initial PyPI Release

Choose a tag to compare

@malkreide malkreide released this 01 Apr 13:08
Fix ruff lint errors: remove unused imports, modernize type hints

- Remove unused imports (csv, io, lru_cache, Optional, unittest.mock)
- Replace Optional[X] with X | None (UP045)
- Replace str(Enum) with StrEnum (UP042)
- Remove unused variables (except as e → except Exception)
- Remove unused month_names_de variable
- Sort imports in test_server.py (I001)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

v0.1.0 – Initial Release

Choose a tag to compare

@malkreide malkreide released this 01 Apr 12:52
816763a
initial commit