Skip to content

Releases: malkreide/parlament-mcp

v0.3.5

Choose a tag to compare

@malkreide malkreide released this 02 Aug 21:23
0fa205c

[0.3.5] - 2026-08-02

Fixed

  • structlog carried no upper bound, and the index already serves a major past
    the floor.
    The declared range was structlog>=24.0.0; PyPI has been serving
    26.1.0. The artefact does not change — the resolver's answer to the next
    fresh install does, and that is exactly how swiss-energy-mcp 0.3.3 became
    uninstallable when mcp 2.0.0 removed the module it imported.

    Now structlog>=24.0.0,<27. The bound is measured rather than guessed: this package
    installs and imports against structlog 26.1.0 today, so the cap admits what
    demonstrably works and stops only the next, unknown major.

A dependency range only reaches users through a new release, hence the
version bump. No code changed.

parlament-mcp 0.3.0

Choose a tag to compare

@malkreide malkreide released this 30 May 18:33
e215cb8

parlament-mcp 0.3.0

Erstes Release nach dem vollständigen mcp-audit-skill-Audit: 44/44 Checks bestanden, production-ready. Zielt auf MCP-Spec 2025-06-18.

Hinweis: Version 0.2.0 war bereits durch ein früheres PyPI-Release belegt — diese Auslieferung erfolgt daher als 0.3.0.

⚠️ Breaking changes

  • Strukturierte Tool-Returns: Tools liefern jetzt typisierte Pydantic-Objekte statt Strings. Such-/Listen-Tools nutzen einen Envelope (source, license, provenance, match_type, count + typisierte results), parlament_get_business liefert BusinessDetail. FastMCP exponiert dadurch ein Output-Schema.
  • Der Parameter response_format wurde entfernt (Ausgabe ist immer strukturiert; kein Markdown/JSON-Toggle mehr).
  • Tool-Schemas haben sich geändert → Tools im Client neu bestätigen (tool-hashes.json aktualisiert).

🔒 Security

  • Optionale Bearer-Auth + kryptografisches Session-Binding für HTTP (MCP_BEARER_TOKENS, default aus) — SEC-009.
  • Loopback-Default-Binding + NeighborJack-Warnung (SEC-016); Egress-Allow-List Code + NetworkPolicy (SEC-021).
  • Strikte Input-Validation (SEC-018); gehärtetes Docker/K8s-Setup (SEC-007); Tool-Hash-Pinning + gitleaks/Trivy-CI (SEC-022); Gateway-Bausteine für Tool-Allow-List & Poisoning-Detection (SEC-014/015).

✨ Added

  • structlog → stderr (OBS-003/004), OpenTelemetry-Tracing (OBS-006), Context-Injection + Progress (SDK-003).
  • Zentrales Settings-Objekt (ARCH-004), OGD-Lizenz-Attribution im Envelope (CH-004), <use_case>-Tags (ARCH-002).
  • Deployment-Manifeste (docker-compose.yml, railway.toml, deploy/k8s/, deploy/haproxy.cfg); Docs + ADRs; Dependabot.

🔧 Changed

  • ENV-getriebene Transport-Auswahl; gepoolter httpx.AsyncClient via Lifespan (SDK-001); Ausführungsfehler als isError (OBS-001/002); Entry-Point → server:main.

Vollständiges Changelog: CHANGELOG.md

Installation

```bash
uvx parlament-mcp # oder: pip install parlament-mcp==0.3.0
```

v0.2.0 — Initial PyPI Release

Choose a tag to compare

@malkreide malkreide released this 01 Apr 12:20
Align repo structure, language, and config to portfolio conventions

- Switch dependency from fastmcp to mcp[cli] (official MCP SDK)
- Add .gitignore and remove committed __pycache__ files
- Add .github/workflows (CI with Python 3.11/3.12/3.13 + PyPI publish via OIDC)
- Add claude_desktop_config.json for Claude Desktop integration
- Translate server.py docstrings, comments, and tool titles to German
- Use StrEnum, X | None syntax, _handle_error(), --http/--port entrypoint
- Add dev dependencies and ruff.lint config to pyproject.toml
- Update CONTRIBUTING.md to reference pip install -e ".[dev]"
- Translate test comments/docstrings to German, clean unused imports

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 11:23
5006ab3
Fix license formatting in README.md