Limits and testing¶
API limits and changes¶
- The public SDK lists live apps, excluding stopped and disabled apps. App
metadata now includes current lifecycle, functions, and server IDs, but no full
deployment history.
get_deployment_historywas removed. stop_app,list_containers, andstop_containerwere removed because the documented public SDK has no corresponding management methods. Function stats still report container counts. Use Modal's dashboard for those management tasks.modal_cliand the CLI/script adapters were removed entirely.list_sandboxesfilters by live apps in the resolved environment. Sandboxes cannot be created or exec'd through this server.- Storage listings return SDK metadata and default to 100 named objects. Secret
values are never returned.
create_secret(overwrite=true)merges supplied keys throughSecret.update; existing unspecified keys remain intact. - Volume reads return the first
max_bytesbytes, decoded as UTF-8 with replacement for invalid bytes. Limits count bytes, not characters. Billing decimals are returned as strings to retain precision. - A
call_functiontimeout stops waiting and does not cancel the remote call.
Offline verification¶
From mcp/:
pip install -e '.[dev]'
pytest -q
ruff check .
ruff format --check .
mypy modal_mcp
Tests mock SDK calls and assert that no network or local process execution occurs. They cover the MCP inventory, typed service deployment, SDK call arguments, read-only enforcement, per-caller client binding, missing hosted credentials, and OAuth credential propagation. They do not deploy or mutate live Modal resources.