CARVIEW |
Navigation Menu
-
Notifications
You must be signed in to change notification settings - Fork 6
Releases: sitbon/magg
🧲 Magg Release v0.10.0
Compare
Changes
Release v0.10.0
Date: Sun Jul 20 10:49:54 2025 -0700
feat: Environment inheritance, test reorganization, and Docker improvements
Date: Sun Jul 20 10:45:20 2025 -0700
- Add --env-pass flag to inherit parent environment for stdio servers
- Add --env-set KEY VALUE for setting specific env vars
- Move tests from magg/test/ to test/magg/ (exclude from wheel)
- Restructure Dockerfile with new proj/pkg/user stages
- Remove deprecated MAGG_DEBUG/MAGG_QUIET env vars
- Remove magg/server/main.py and cli.py (consolidated)
- Add --version and --no-banner flags to mbro
- Remove poethepoet dependency and poe tasks
- Comment out pre stage and latest tag in CI
- Update documentation to be in sync with latest changes
- Bump version to 0.10.0
Breaking changes:
- Tests no longer included in wheel packages
- Removed --no-enhanced flag (use --json instead)
Dependencies updated:
- anthropic: 0.57.1 → 0.58.2
- mcp: 1.11.0 → 1.12.0
- fastmcp: 2.10.5 → 2.10.6
- jsonschema: 4.24.0 → 4.25.0
- authlib: 1.6.0 → 1.6.1
- magg: 0.9.1 → 0.10.0 (our own version)
Dependencies Removed:
- poethepoet: 0.36.0
- pastel: 0.2.1 (poethepoet dependency)
- pyyaml: 6.0.2 (poethepoet dependency)
Installation
uv add magg==0.10.0
Assets 4
🧲 Magg Release v0.9.1
Compare
Changes
Release v0.9.1
Date: Thu Jul 17 20:18:22 2025 -0700
feat: Add hybrid mode and improve logging levels
Date: Thu Jul 17 19:40:21 2025 -0700
Major changes:
- Add hybrid mode to run Magg with both stdio and HTTP simultaneously
- New --hybrid flag for
magg serve
command - Concurrent task management for both transports
- Useful for mbro hosting Magg while using stdio connection
- Convert verbose INFO logs to DEBUG level throughout codebase
- Server mounting/unmounting operations
- Config reload operations
- Authentication key generation
- File watcher initialization
- Improve mbro CLI behavior
- Clean exit on Ctrl+C with empty buffer
- Better multiline continuation handling
- Consistent error message formatting with repr()
- Add documentation for hybrid mode
- Examples for Claude Code integration
- Examples for mbro hosting scenarios
- Updated readme.md with third running mode
- Bump version to 0.9.1
This release improves production readiness with quieter logging
and enables powerful hybrid connectivity scenarios.
chore: Enhance MBro CLI with script support and improve documentation
Date: Thu Jul 17 18:00:01 2025 -0700
- Add script execution with -x/--execute-script and -X/--execute-script-n for automation
- Update documentation with examples for shell-style arguments, running scripts, and stdio mode
- Modernize examples, emphasizing key=value syntax and minimal quoting
- Implement script discovery and execution order tracking
- Improve error handling for non-interactive scripts
- Refine server connection examples and CLI tips for usability
Fix whitespace issues.
Date: Thu Jul 17 16:57:23 2025 -0700
Installation
uv add magg==0.9.1
Assets 4
🧲 Magg Release v0.9.0
Compare
Changes
Release v0.9.0
Date: Wed Jul 16 21:57:36 2025 -0700*
refactor: overhaul mbro CLI and clean up codebase
Date: Wed Jul 16 21:32:48 2025 -0700*
Breaking Changes:
- Remove all specific mbro CLI flags (--connect, --list-tools, --call-tool, etc.)
- mbro now takes commands as positional arguments instead of flags
- Use semicolons to separate multiple commands
- Connect to servers with mbro shell syntax in the CLI
Major improvements:
- Add script execution support with -x/--execute-script flag
- Support stdin input with '-' as command argument
- Implement semicolon command separator for chaining commands
- Add friendly path display for script listing (relative/~/absolute)
- Add smart partial path matching for scripts with full basename requirement
- Fix script errors to exit(1) instead of dropping to interactive mode
- Add format_warning method to OutputFormatter
- Logging improvements
Code cleanup:
- Remove ~200 useless comments throughout mbro codebase
- Clean up circular import handling
Documentation:
- Update mbro.md to reflect new CLI interface
- Update all examples to use correct syntax
- Add proper command line options documentation
- Update readme.md to show magg CLI commands before mbro examples
- Add MBro to features list with documentation link
Testing:
- Add test suite for CLI overhaul
- Fix test expectations for stderr vs stdout output
Refactor kits field to store rich metadata and clean up imports
Date: Wed Jul 16 17:01:08 2025 -0700*
- Change MaggConfig.kits from list[str] to dict[str, KitInfo]
- Add KitInfo model with name, description, path, and source fields
- Maintain backward compatibility for old list format
- Extract InputValidator and PropertyTypeValidator classes to module level
- Move all imports to module level (except where needed for circular deps)
- Update all affected code and tests
refactor: Modernize MBro CLI architecture and fix core CLI issues
Date: Wed Jul 16 13:24:45 2025 -0700*
Core CLI Fixes:
- Fix 'magg config' to show help instead of error when no subcommand given
- Hide deprecated commands from error messages (no MAGG_SHOW_DEPRECATED)
- Fix kit load to preserve enabled state from kit files
MBro CLI Refactoring:
- Split cli.py commands off to command.py
- Rename MCPBrowser → BrowserClient, MCPConnection → BrowserConnection
- Replace cmd_xxx wrappers with direct command class method calls
- Add frozenset COMMANDS and ALIASES dict for clean command routing
- Consolidate help system to single print call
Enhanced Command Architecture:
- Centralized Command class handles all mbro operations
- Match statement for modern command dispatch
- Shell-style argument parsing with type inference
- Proper error handling and validation
Update docs and workflows
Date: Wed Jul 16 01:55:54 2025 -0700*
- Add magg_status/magg_check tools to docs
- Document modern mbro CLI features (shell-style args, tab completion)
- Modernize examples with shell-style syntax
- Add missing env vars to compose.yaml
- Remove compose.yaml from docker workflow triggers
- Fix dockerfile reference in workflows
Installation
uv add magg==0.9.0
Assets 4
🧲 Magg Release v0.8.0
Compare
Changes
Release v0.8.0
Date: Wed Jul 16 01:10:32 2025 -0700*
chore: Add path filters to GitHub workflows for optimized trigger behavior
Date: Wed Jul 16 01:03:03 2025 -0700*
- Updated
docker-publish.yml
andtest.yml
to include specific path-level filters forpush
andpull_request
events. - Enabled targeted workflow execution for relevant file changes only.
fix: Handle asyncio.get_event_loop() deprecation in reload module
Date: Wed Jul 16 00:24:51 2025 -0700*
Use get_running_loop() when available, fall back to get_event_loop()
for compatibility with older code patterns.
test: Clean up skipped tests
Date: Wed Jul 16 00:12:30 2025 -0700*
- Remove obsolete circular dependency test (not applicable in new architecture)
- Remove placeholder mounting tests (actual mounting tested elsewhere)
- Remove all mbro integration tests (high maintenance, low value)
- Keep conditional skips for internet/platform-specific tests
- Keep API exploration tests that document unsupported features
This reduces test maintenance burden while keeping valuable tests.
refactor: Make prefix_sep configurable instead of class constant
Date: Wed Jul 16 00:07:13 2025 -0700*
- Change PREFIX_SEP from ClassVar to prefix_sep field on MaggConfig
- Add MAGG_PREFIX_SEP env var support (default: "_")
- Update ServerManager to use config.prefix_sep
- Remove unused generate_prefix_from_name() method
- Update docs to explain configurable separator
- Add tests for prefix_sep configuration
Allows users to customize the separator between prefix and tool name.
refactor: Clean up trailing whitespace across project files
Date: Tue Jul 15 23:37:49 2025 -0700*
- Removed unnecessary trailing spaces and blank lines for better readability and consistency.
- Updated test cases, CLI components, and utility functions to follow formatting standards.
- No functional changes introduced; purely cosmetic for code hygiene.
fix: Remove deprecated FastMCP mount pattern from tests
Date: Tue Jul 15 23:35:14 2025 -0700*
Comment out test code that used deprecated mount(server=client, as_proxy=True)
pattern which triggered DeprecationWarning. Production code already uses the
correct FastMCP.as_proxy() approach. Keep as commented documentation of what
not to do.
feat: Add proxy pagination, MBro stdio support, subprocess stderr control, and FastMCP 2.10.5 compatibility
Date: Tue Jul 15 23:29:41 2025 -0700*
Major Changes
Proxy Tool Pagination
- Add limit, offset, and filter_server parameters to proxy tool
- Default limit of 100 items to prevent token limit errors
- Support filtering results by server name prefix
- Update documentation with pagination examples
MBro Enhancements
- Fix stdio transport support using Magg's transport inference
- Improve tab completion with browse-then-apply behavior
- Show completion menu on TAB even for single items
- Fix ESC key handling for single-press menu cancellation
- Add rich parameter completion with type info and descriptions
Subprocess Output Control
- Add MAGG_STDERR_SHOW environment variable (default: false)
- Suppress subprocess MCP server stderr output by default
- Create stdio_patch utility for clean stderr redirection
- Document new configuration option
FastMCP 2.10.5 Compatibility
- Update all tests for CallToolResult API change
- Suppress FastMCP banner with show_banner=False
- Configure FastMCP logger to ERROR level
- Fix transport URL tests for trailing slash changes
Other Improvements
- Fix outdated server mounting message in CLI
- Add parse_command_string utility for command parsing
- Update FastMCP to 2.10.5 in pyproject.toml
- Improve logging configuration for cleaner output
Technical Details
- FastMCP 2.10.5 returns CallToolResult objects instead of content lists
- Subprocess stderr suppression uses monkey-patching of stdio_client
- Tab completion uses prompt-toolkit's select_first=False for better UX
- Pagination prevents loading 200+ tools into context window
Resolves token limit issues when proxying servers with many tools.
Provides cleaner output by default while maintaining debuggability.
feat: Add kit management CLI and improve server command structure
Date: Tue Jul 15 20:33:37 2025 -0700*
- Introduced
kit
command for managing kits (list, load, and info actions). - Added
cmd_kit
functionality to handle kit operations via CLI. - Implemented tests for kit actions (list, load, info) with edge-case handling.
- Improved server commands by creating
server
subcommand with structured actions (list, add, remove, enable, disable, info). - Deprecated old
add-server
,list-servers
, and similar commands with warnings for backward compatibility. - Enhanced configuration system with new utilities for managing kits and servers.
- Updated docs and examples for the new kit management capabilities.
feat: Allow duplicate and empty server prefixes, optimize config loading
Date: Tue Jul 15 18:38:59 2025 -0700*
Major changes:
- Allow duplicate prefixes across servers (including None/empty prefixes)
- Remove duplicate prefix validation from config reload
- Optimize config loading to use cached version when reload is enabled
- Make None the default prefix instead of auto-generating from server name
Key improvements:
- ServerConfig prefix field changed from str with default "" to str|None with default None
- ConfigManager.load_config() now returns cached config from ReloadManager when available
- Added cached_config property to ReloadManager for cleaner access
- Fixed self_prefix_ property to handle None prefixes properly
- Removed _unmount_from_fastmcp workaround implementation for FastMCP servers
Test updates:
- Updated tests to expect None as default prefix instead of auto-generated values
- Changed duplicate prefix validation test to verify duplicates are allowed
- Added test cases for duplicate None prefixes
- Adjust tests to expect
None
as the default prefix for invalid server names instead of auto-generated values.
Bug fixes:
- Fixed MAGG_DEBUG environment variable check to handle missing values
- Properly close FastMCP client connections on unmount to prevent pending tasks
This change makes server prefixes truly optional and allows multiple servers
to share the same prefix or have no prefix at all, providing more flexibility
in tool naming.
Installation
uv add magg==0.8.0
Assets 4
🧲 Magg Release v0.7.1
Compare
Changes
Release v0.7.1
Date: Sun Jun 29 19:43:41 2025 -0700*
Add kit management system with MCP resources and enhance MBro CLI
Date: Sun Jun 29 17:50:35 2025 -0700*
Kit Management System:
- Add KitManager class for discovering, loading, and managing MCP server bundles
- Implement KitConfig model with optional description field
- Auto-create kits in memory when referenced but not found on disk
- Add protection to strip 'kits' field from server definitions in kit files
- Expose kit configurations as MCP resources at magg://kit/{name} and magg://kits/all
- Resources return clean JSON suitable for saving as kit files
- Add tests for kit functionality
MBro CLI Enhancements:
- Implement Python REPL-style multiline input with continuation prompts
- Add shell-style argument parsing (key=value syntax)
- Fix auto-connect cache population issue
- Add rich parameter completion with schema-aware suggestions
- Support backslash line continuation and proper quote handling
FastMCP Messaging Integration:
- Add full bidirectional messaging/notification support
- See @jlowin/fastmcp#939
- Implement MaggMessageHandler with callback and class-based APIs
- Create message routing infrastructure for multi-server coordination
- Add backend message forwarding with aggregation support
Additional Improvements:
- Add JSON string parameter support for proxy and add_server tools
- This allows Claude Code to pass complex tool parameters as JSON strings.
- Fix config reload race conditions and pending task errors
- Add magg_status and magg_check tools for server health monitoring
- Update documentation for kits, proxy, and configuration
- Add JSON parsing tests for MBro CLI
Fix MBro CLI multiline input handling and argument parsing issues
Date: Sat Jun 28 14:50:45 2025 -0700*
- Improve
Enter
key behavior for immediate command submission - Fix argument parsing to simplify handling of key=value pairs
- Enhance multiline command processing with proper continuation and spacing support
- Improve error feedback for missing required tool parameters and unsupported positional arguments
- Update help messages and examples for better clarity
Installation
uv add magg==0.7.1
Assets 4
🧲 Magg Release v0.7.0
Compare
Changes
Release v0.7.0
Date: Thu Jun 26 22:09:06 2025 -0700*
Add FastMCP messaging support and enhance MBro CLI multiline capabilities
Date: Thu Jun 26 21:49:36 2025 -0700*
FastMCP Messaging & Notifications
- Implement full support for FastMCP's bidirectional messaging (PR #939)
- Add MaggMessageHandler with callback-based and class-based APIs
- Create MessageRouter for multi-handler message distribution
- Implement ServerMessageCoordinator for notification aggregation
- Add BackendMessageHandler for per-server message forwarding
- Update ProxyFastMCP with message routing infrastructure
- Complete test suite with 8 passing messaging tests
MBRO CLI Multiline Enhancements
- Fix multiline input handling with Python REPL-style behavior
- Add shell-like key=value argument parsing (e.g., name="test" count=42)
- Enable native multiline mode with proper history support
- Fix _create_smart_auto_suggest missing method error
- Handle backslash line continuations correctly
- Preserve multiline commands in history with newlines
- Add custom Enter key binding for submit on empty line
- Support editing multiline commands loaded from history
Bug Fixes
- Fix asyncio.get_event_loop() deprecation warning in logs/queue.py
- Fix mbro CLI test expecting JSON error for shell-style args
- Fix tool delegation test being too strict about tool count
- Update terminal banner with dynamic width support
Additional Improvements
- Fix import issues and type hints for Python 3.13+
- Add comprehensive messaging documentation and examples
- Update README with messaging feature documentation
Fix Docker workflow dependencies by explicitly requiring test-dev-image
Date: Thu Jun 26 12:26:01 2025 -0700*
- Update
needs
to include bothbuild-dev-image
andtest-dev-image
for better dependency management - Adjust conditional expressions to use
needs.<job>.result
instead ofjobs.<job>.result
Installation
uv add magg==0.7.0
Assets 4
🧲 Magg Release v0.6.1
Compare
Changes
Release v0.6.1
Date: Thu Jun 26 10:28:21 2025 -0700*
feat(mbro): add rich tab completion with parameter documentation
Date: Thu Jun 26 10:23:56 2025 -0700*
- Add intelligent tab completion system showing tool parameters with types,
requirements, and descriptions in popup menus - Fix completion cache not populating when using --connect CLI option
- Implement Python REPL-style multiline support with '...' continuation
prompts for incomplete input - Add parameter value completion with type-aware suggestions (enums,
booleans, examples) - Support both param=value and JSON argument styles with smart detection
- Add validation for unclosed quotes, brackets, and backslash continuations
- Enhance help text to document new completion features
The completion system now provides a discoverable, self-documenting
interface where users can explore MCP tools and their parameters through
tab completion rather than reading documentation.
Fixup: Push versioned docker image tags after publish
Date: Wed Jun 25 22:34:00 2025 -0700*
Release v0.6.0
Date: Wed Jun 25 22:11:58 2025 -0700*
Simplify server architecture and consolidate tool implementations
Date: Wed Jun 25 22:10:27 2025 -0700*
Major Changes:
- Move lifecycle management (setup, run, context manager) from MaggServer to ManagedServer base class
- Consolidate all MCP tools back into MaggServer from failed mixin experiment (~875 lines)
- Add enable_config_reload parameter to ManagedServer constructor
- Fix ManagedServer initialization to properly support config reload functionality
- Move magg.mbro.test -> magg.test.mbro
Architecture Improvements:
- ManagedServer now handles all server lifecycle: aenter/aexit, setup(), run_stdio(), run_http()
- MaggServer focuses solely on MCP tool implementations and registration
- Cleaner separation of concerns between base functionality and tool implementation
- _register_tools() called during ManagedServer initialization with override in MaggServer
Technical Details:
- Add _enable_config_reload and _is_setup to ManagedServer instance variables
- Fix constructor parameter passing for config reload support
- Remove redundant imports from server.py after consolidation
- Update log_level parameter in run_http() to default to "CRITICAL"
Breaking Changes: None - external API remains unchanged
The refactoring exercise revealed that server lifecycle management belonged in the base class
rather than the concrete implementation, resulting in better separation of concerns despite
not achieving the original goal of reducing file size.
Add dynamic config reload with file watching
Date: Wed Jun 25 21:04:02 2025 -0700*
Major Features:
- Implement ConfigReloader with watchdog (polling fallback) for file monitoring
- Add SIGHUP signal handler for Unix-style config reloading
- Add magg_reload_config MCP tool with proper restrictions
- Move reload logic from ServerManager to ConfigManager for better architecture
- Add config reload documentation and examples
Config Reload:
- Can be triggered via file modifications (when MAGG_AUTO_RELOAD=true, default)
- SIGHUP signal support on Unix systems
- magg_reload_config MCP tool (restricted in read-only mode)
- Programmatic reload_config() calls
- Race condition prevention with ignore_next_change() mechanism & batched save
- Config state sync with update_cached_config() after programmatic saves
API Changes:
- Rename 'env_vars' parameter to 'env' in add_server method
- Rename 'working_dir' parameter to 'cwd' throughout codebase
- Update all tests, docs, and examples to use new parameter names
Fixes:
- Improve magg_check resilience - failed servers no longer break health checks
- Reduce default health check timeout from 5s to 0.5s (configurable)
- Add batched disable operations to reduce config file writes
- Add proper FastMCP client cleanup to prevent "pending task" errors
- Fix config reload not detecting manual changes after programmatic saves
Documentation:
- Add config-reload.md guide
- Update examples with reload demonstration
- Add reload configuration to .env.example
Breaking Changes:
- API: 'env_vars' -> 'env' in add_server()
- API: 'working_dir' -> 'cwd' throughout
- Config files using old parameter names need updating
Refactor GitHub Actions workflows for cleaner versioning and releases
Date: Wed Jun 25 16:31:39 2025 -0700*
Publish workflow:
- Add version checking to skip publishing when unchanged
- Use PAT_TOKEN to enable cascading workflow triggers
- Create clean semver tags (v0.5.1) without magg/ prefix
- Create movable 2-digit tags (v0.5) for minor version tracking
- Rename magg/latest to latest-publish for clarity
- Only publish to PyPI when version changes
Docker workflow:
- Trigger on main/beta pushes and v*.. semver tags
- Fix metadata tags to handle 3-digit versions properly
- Support both versioned and branch-based image tags
- Remove 4-digit version pattern that wasn't semver compliant
Manual publish workflow:
- Restrict to pre/post/dev releases only (no regular versions)
- Add validation script using JSON output and importlib.metadata
- Auto-create GitHub releases for post-releases by default
- Update latest-publish tag for post-releases of current version
- Include proper changelog in GitHub releases
- Make PyPI publish the final step after all validations
Add packaging dependency for version validation in manual releases.
This creates a cleaner separation between automatic releases (regular
versions on main) and manual releases (pre/post/dev versions), while
maintaining proper version tracking and Docker image tagging.
Installation
uv add magg==0.6.1
Assets 4
🧲 Magg Release v0.6.0
Compare
Changes
Release v0.6.0
Date: Wed Jun 25 22:11:58 2025 -0700*
Simplify server architecture and consolidate tool implementations
Date: Wed Jun 25 22:10:27 2025 -0700*
Major Changes:
- Move lifecycle management (setup, run, context manager) from MaggServer to ManagedServer base class
- Consolidate all MCP tools back into MaggServer from failed mixin experiment (~875 lines)
- Add enable_config_reload parameter to ManagedServer constructor
- Fix ManagedServer initialization to properly support config reload functionality
- Move magg.mbro.test -> magg.test.mbro
Architecture Improvements:
- ManagedServer now handles all server lifecycle: aenter/aexit, setup(), run_stdio(), run_http()
- MaggServer focuses solely on MCP tool implementations and registration
- Cleaner separation of concerns between base functionality and tool implementation
- _register_tools() called during ManagedServer initialization with override in MaggServer
Technical Details:
- Add _enable_config_reload and _is_setup to ManagedServer instance variables
- Fix constructor parameter passing for config reload support
- Remove redundant imports from server.py after consolidation
- Update log_level parameter in run_http() to default to "CRITICAL"
Breaking Changes: None - external API remains unchanged
The refactoring exercise revealed that server lifecycle management belonged in the base class
rather than the concrete implementation, resulting in better separation of concerns despite
not achieving the original goal of reducing file size.
Installation
uv add magg==0.6.0
Assets 4
🧲 Magg Release v0.5.1.53
Compare
Automatically generated release triggered by commit d116235
Changes
Fix GitHub Actions workflow dependencies and Docker tagging
Date: Wed Jun 25 12:13:22 2025 -0700*
- Make Publish workflow depend on Tests workflow success instead of duplicating tests
- Use PAT_TOKEN instead of GITHUB_TOKEN to enable cascading workflow triggers
- Fix Docker metadata to support 4-digit semver tags (v0.5.1.52)
- Remove 'v' prefix from Docker tags while keeping it in Git tags
- Ensure dev tags only created for branch builds, not tag events
- Fix missing tags for Python 3.12 builds
This resolves the issue where Docker builds weren't triggered after publish
and ensures both Python versions get properly tagged images.
Installation
uv add magg==0.5.1.53
Assets 4
🧲 Magg Release v0.5.1.52
Compare
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_TOKEN
withsecrets.PAT_TOKEN
for 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