Chapter 6 of 6
Confirm the result#
Run the read-only tools/list check against the version-specific endpoint created in the previous step:
PowerShell
$expectedTool = $binding.foundryBinding.expectedNamespacedTool
python .\artifacts\operations\check_toolbox.py `
--endpoint $versionEndpoint `
--expected-tool $expectedTool
Bash
expected_tool=$(python3 -c 'import json,sys; print(json.load(open(sys.argv[1]))["foundryBinding"]["expectedNamespacedTool"])' "$binding_path")
python3 ./artifacts/operations/check_toolbox.py \
--endpoint "$version_endpoint" \
--expected-tool "$expected_tool"
The check passes when the immutable Toolbox version returns one tool named <server_label>.<allowed_tool_name> and its metadata says require_approval is always. It does not invoke the remote tool or retain the response.
Set observedState.checkedAtUtc after the check. Keep the version number and check time in the private operational copy of the catalog record.
After implementation#
Keep the catalog record, Toolbox version payload, check utility, and paired preflight scripts. The API catalog owner maintains the MCP server record in API Center. The Foundry tool owner maintains the project connection and dedicated Toolbox. The agent release owner decides which agents consume the stable Toolbox endpoint and confirms that their runtime enforces approval.
Reconcile the connection after an API Center deployment URL, authentication setting, exposed tool name, project connection, or Toolbox default version changes. Update the endpoint digest and create a new immutable Toolbox version rather than editing the prior version.
To restore the pre-module state, first move every consuming agent away from the Toolbox endpoint. The restore owner then checks that the Toolbox description contains implementationSession=optional-module-foundry-tool-catalog-integration, confirms that the Toolbox still contains only this module's MCP connection, and deletes that exact dedicated Toolbox through the approved Microsoft Foundry change path. Remove the project connection only when its owner confirms that no other tool or agent uses it. Keep the MCP server record in API Center unless the API catalog owner separately retires the underlying MCP server.