Releases: sitbon/magg
🧲 Magg Release v0.5.1.52
Automatically generated release triggered by commit 1a7b215
Changes
Simplify publish workflow and improve changelog generation
Date: Wed Jun 25 10:54:53 2025 -0700*
- Shorten workflow name to "Publish" for brevity
- Replace
secrets.GITHUB_TOKENwithsecrets.PAT_TOKENfor enhanced permissions
- Allows triggering of Docker workflow
- Update changelog formatting to exclude "Signed-off-by" lines and include commit links
- Remove unnecessary changelog code block from release notes
Installation
uv add magg==0.5.1.52🧲 Magg Release v0.5.1.51
Automatically generated release triggered by commit 7368c6c
Changes
Merge Release v0.5.1
Date: Wed Jun 25 00:53:21 2025 -0700
Release 0.5.1: Python 3.12, auth, and docker support.
Date: Wed Jun 25 00:52:02 2025 -0700
- Expand README with new features and enhancements
- Add details on bearer token authentication, Docker support, and health monitoring tools.
- Highlight Python 3.12+ compatibility.
- Introduce
magg_statusandmagg_checktools.
Rename MAGG references to Magg for consistency.
Date: Wed Jun 25 00:02:33 2025 -0700
- Updates all modules, tests, and documentation to reflect the naming convention change.
- Adjusts examples and comments to use
Maggstyling throughout.- Modifies
docker-publish.ymlto handle docker tag parsing properly.
Simplify docker-publish.yml workflow and update badges
Date: Tue Jun 24 22:58:17 2025 -0700
- Comment out unused Docker labels and cache settings
- Disable SBOM and provenance generation in Docker builds
- Adjust
build-and-pushmatrix order for clarity- Update README badges:
- Replace old test badge reference with code comments
- Add Docker workflow badge alongside tests badge
- Adjust caching (force pushed)
- Add cleanup workflow stage (force pushed)
- Properly set convenience tags latest and dev (on main).
Fix Python 3.12 container tests and simplify CI matrix
Date: Tue Jun 24 21:48:09 2025 -0700
Add conditional symlink fix for Python 3.12 on Alpine Linux
- Python 3.12 expects linux-gnu extension suffix, but Alpine provides linux-musl
- Create symlinks from *-linux-gnu.so to *-linux-musl.so for C extensions
- Fix is only applied when PYTHON_VERSION="3.12" to avoid affecting other versions
Fix dockerfile stage reference: FROM beta AS pro → FROM pre AS pro
- Completes the beta→pre rename that was missed on line 108
Simplify GitHub Actions Python version matrix
- Remove get-python-version job from both test.yml and docker-publish.yml
- Hardcode Python versions as
['3.12', '3.13']to avoid duplication- Previously, 3.13 was tested twice (hardcoded + from .python-version file)
- Makes workflows cleaner and easier to understand
This fixes the
ModuleNotFoundErrorforpydantic_core._pydantic_core in
Docker containers running Python 3.12, while maintaining compatibility
with other Python versions.
Add Docker support, Python 3.12 compatibility, and streamline CI/CD
Date: Tue Jun 24 21:11:28 2025 -0700
Docker Implementation:
- Add multi-stage Dockerfile with pro/pre/dev variants
- Create docker-publish.yml workflow for automated ghcr.io publishing
- Add compose.yaml with service inheritance for easy local development
- Include .env.example for Docker configuration
Python & Build Improvements:
- Add Python 3.12 support and test in CI matrix
- 3.12 doesn't support the async Python REPL in the MCP browser
- Migrate from Poetry to Hatchling build backend
- Update workflows to use dynamic versioning without commit noise
- Remove version bump commits from publish workflow
Settings & Configuration:
- Standardize all settings classes to use BaseSettings
- Add validate_assignment=True across all config classes
- Clean up environment variable handling
- Fix MAGG_READ_ONLY to be build arg in Docker
Documentation Updates:
- Recommend
uv tool install maggas primary installation- Add Docker usage section with examples
- Update workflows documentation
Testing & CI:
- Run tests in Docker containers for all Python versions
- Add matrix testing for Python 3.12, 3.13, and .python-version
- Remove redundant branch-protection.yml workflow
- Fix test environment variable handling
Other Changes:
- Add initial MAGG_DEBUG env var support
- Fix mbro connection string formatting
- Improve server startup logging and error handling
Add magg_status and magg_check tools with tests
Date: Mon Jun 23 16:03:53 2025 -0700
- Implement
magg_statusto fetch server stats and tool info- Add
magg_checkfor server health with configurable actions
(report,remount,unmount,disable)- Update tests to cover new tools and actions
- Clean trailing whitespace in
embedding.pyand other files- Fix handling of HTTP endpoint redirects in mbro client
- Minor formatting adjustments in test and auth files
Update auth tests to validate key-based configuration
Date: Mon Jun 23 15:01:16 2025 -0700
- Replace
test_enabled_with_configwithtest_enabled_with_keys- Generate and use temporary RSA keys for testing auth initialization
Add bearer token authentication and major improvements
Date: Mon Jun 23 14:51:03 2025 -0700
Authentication:
- Add RSA keypair-based bearer token authentication using PyJWT
- Support private key from env var (MAGG_PRIVATE_KEY) or .env file
- Add auth CLI commands: init, status, token, public-key, private-key
- Integrate FastMCP's BearerAuthProvider for server auth
- Auth is optional - server runs without auth if no keys exist
Client improvements:
- Add MaggClient with automatic JWT loading from MAGG_JWT env var
- Support transparent proxy mode for tool calls without prefix
- Add authentication example demonstrating usage patterns
Architecture changes:
- Simplify MAGGRunner to support embedded/external usage
- Add async context manager to MAGGServer for proper setup/cleanup
- Rename mbro/acon.py to arepl.py (async REPL)
- Remove deprecated client package in favor of single module
Testing:
- Add auth tests covering all authentication functionality
- Update E2E tests to disable auth using non-existent key_path
- Fix test isolation issues with config paths
Other:
- Bump version to 0.5.0 marking auth milestone
- Update dependencies: add PyJWT, upgrade FastMCP
- Improve terminal utilities and system path handling
- Update documentation and examples
Markdown formatting for release changelog
Date: Sun Jun 22 22:20:22 2025 -0700
Installation
uv add magg==0.5.1.51🧲 Magg Release v0.4.2.40
Automatically generated release triggered by commit 6bb893e
Changes
Fix publish workflow: delete remote tag before pushing
Date: Sun Jun 22 20:57:03 2025 -0700
Update workflow and release scripts
Date: Sun Jun 22 20:29:21 2025 -0700
- Disabled requirement of test status check to pass for the
Default Branch Protection ruleset.
Merge Release v0.4.0
Date: Sun Jun 22 18:59:09 2025 -0700
Release 0.4.0: Proxy support refactoring and documentation
Date: Sun Jun 22 18:29:05 2025 -0700
- Make prompt-toolkit a required dependency (remove mbro extra)
- mbro might still become its own package later
- Add test status badge to README
- Add local/ to gitignore for development files
Fix tests: use mode="json" for model_dump.
Date: Sun Jun 22 17:57:31 2025 -0700
24 occurrences of model_dump across 9 files reviewed.
Issue arose from using Path type in config data.
Documentation updates.
Date: Sun Jun 22 17:37:29 2025 -0700
Note: Tests currently failing.
Fix working directory validation and use Path type consistently
Date: Sun Jun 22 16:04:56 2025 -0700
- Change ServerConfig.working_dir from str to Path type for better type safety
- Fix validate_working_directory to only validate when working_dir is provided
rather than trying clever defaults that could never work- Convert Path to str when passing to transport classes (which aren't Pydantic)
- Make setup() explicit requirement for in-memory usage via FastMCPTransport
- Required due to async context, but called automatically on server start
- Add comprehensive tests for in-memory functionality including verification
that external server tools require setup() to be called- Update MAGGServer.init to accept Path type for config_path
- Update fix_whitespace.py to use python command instead of shell piping
This addresses issues where working directory validation had unreachable code
and improves type consistency throughout the codebase.
Move proxy to magg.proxy package, remove client.runner
Date: Sun Jun 22 15:11:57 2025 -0700
- Create magg.proxy package with server/client/mixin modules
- Remove client.runner - use FastMCPTransport directly
- Rename ServerRunner to MAGGRunner with signal handling
- Update fix_whitespace.py to walk directories itself
Tests pass unchanged.
Add MCP proxy pattern implementation and client utilities
Date: Sat Jun 21 23:58:27 2025 -0700
Implement proxy tool pattern for dynamic MCP capability access,
including client utilities for embedding MAGG in applications.Core Implementation:
- Add ProxyMCP mixin with validation, introspection, and result transformation
- Implement ProxyClient with transparent mode for drop-in MCP client replacement
- Create MAGGRunner for embedding MAGG server in user applications
- Add ProxyResponseInfo for extracting metadata from proxy responses
Documentation:
- Add proxy pattern documentation (docs/proxy.md)
- Create formal MCP Proxy Extension Specification (docs/proxy-spec.md)
- Document resource objectification and MIME type preservation
Key Features:
- Proxy tool with list/info/call actions for tools/resources/prompts
- Automatic result transformation with type preservation annotations
- Resource objectification: JSON conversion with contentType preservation
- Client transparent mode: seamlessly redirects standard MCP operations
- Runner supports both stdio and HTTP transports with async/sync APIs
Technical Details:
- Remove asgiref dependency (async-only implementation)
- Update transform utilities for proxy-specific annotations
- Parameter 'type' aliased as 'a_type' to avoid Python keyword conflict
- Standard MCP error handling via exception propagation
Installation
uv add magg==0.4.2.40magg v0.3.6.30
Package Info
- Version: 0.3.6.30
- Commit: 4e6c6f2
- SHA512: 06914f3ede97c5648ef12d278392db14cc900a35f3ffa09acd7458f3d5588c5c7b227d6872c51960d18b6c2ed9afacb72a1eff38c1c182059f3b748869db9cc3 dist/magg-0.3.6.30.tar.gz
Installation
pip install magg==0.3.6.30