v0.6.0
What's Changed in v0.6.0
Added
- Startup tool configuration via JSONC file — declaratively control which tools are loaded at startup with
tools.jsonc, supporting allowlist/denylist modes and hierarchical namespace matching (#37, #38) - Auto-route generation from ToolRegistry — automatically generate FastAPI endpoints from registered tools, eliminating hand-written route boilerplate (#31, #36)
requires_envdecorator & Configurable protocol — tools self-declare required environment variables; unconfigured tools are auto-disabled at startup (#30, #35)- Central tool registry (
build_registry()/get_registry()) with auto-disable for unconfigured tools (#30, #35) - Nested namespaces for websearch tools — e.g.
web/brave_search, producing URLs like/tools/web/brave_search/search(#39, #40) - Hidden internal methods —
is_configuredexcluded from API endpoints via_HIDDEN_METHODS(#39, #40) --tools-configCLI option for specifying tool configuration file path (#37, #38)- Docker Compose tools.jsonc volume mount —
tools.jsoncautomatically mounted into all services for tool configuration
Fixed
- Jina Reader multi-engine retry — separate httpx transport timeout from Jina
X-Timeout, addX-Wait-For-Selectorfor dynamic content, retry withcf-browser-renderingengine on failure (#43) - Dockerfile missing server dependencies — local wheel install path now uses
[server]extra instead of hardcoded dependency list - PermissionError in tool config discovery —
_resolve_config_path()now catchesPermissionErrorgracefully instead of crashing when file/directory permissions are incorrect
Removed
- Legacy hand-written route files — replaced by auto-generated routes (#39, #40)
- BingSearch — removed deprecated implementation due to frequent bot detection issues (#34)
Changed
- Server optional dependencies restructured —
server_openapiandserver_mcpnow includetoolregistry>=0.5.0;serverextra uses self-referencing composition (#29, #33) - Replace pyright with ty for type checking
routes/__init__.pysimplified to export onlyversion_routerserver_core.pyno longer registers legacy routers; uses auto-generated routes alongsideversion_routerAPIKeyParser.__init__no longer raises on missing keys; defers validation to call time
Full Changelog: v0.5.6...v0.6.0