Previously, MCPApp did not truly have reload capabilities. Instead, if `reload=True`, then under the hood we would just change over to the module execution code path (e.g., `arcade mcp`, or `python -m arcade_mcp_server`). This was bad because custom `MCPApp` startup code was not being executed and tools that were not added to `MCPApp`'s catalog were being discovered and added to the server. `MCPApp` now contains its own custom reload logic. It doesn't use uvicorn's reload because uvicorn's discovery & factory pattern wasn't the best fit for `MCPApp`'s self-contained pattern. Now when `MCPApp.run(reload=True)` is called, `MCPApp` becomes the parent process that manages reload itself. |
||
|---|---|---|
| .. | ||
| arcade_mcp_server | ||
| cli | ||
| core | ||
| mcp | ||
| sdk | ||
| tool | ||
| worker | ||
| __init__.py | ||
| conftest.py | ||