Extensions and MCP
Ódinn treats extension and MCP manifests as metadata—not trust. Installation records a package but leaves it disabled and untrusted.
Safe lifecycle
Section titled “Safe lifecycle”- Inspect the manifest and provenance.
- Verify the immutable bundle or entrypoint digest.
- Install it disabled.
- Grant only the capabilities it needs.
- Enable it deliberately.
- Inspect its first run and audit record.
- Disable or roll back when it is no longer needed.
Install and inspect:
odinn extension install --manifest ./extension.jsonodinn extension listEnable with explicit grants:
odinn extension enable \ --id example-tool \ --grant web.read \ --trustExecution adapters
Section titled “Execution adapters”Container is the default for third-party executable code. It verifies the complete bundle and runs with a read-only mount, no network, dropped capabilities, no-new-privileges, and bounded CPU, memory, processes, temporary storage, time, and output.
Unconfined process is for fully trusted local code only. It runs with the Ódinn operating-system user’s filesystem and network authority. Enabling it requires verified entrypoint integrity, explicit trust, an unsafe-sandbox acknowledgement, and an impact confirmation.
Neither adapter makes external effects reversible.
MCP extensions use the same audited Sentinel and capability boundary as other extensions. Their tool calls use a structured JSON-RPC adapter. Direct execution that bypasses the runtime boundary is rejected.
Disable and roll back
Section titled “Disable and roll back”odinn extension disable --id example-toolodinn extension rollback --id example-toolDisabling prevents future invocation. It cannot undo changes already made outside the local workspace.
Advanced: invoke a reviewed extension
odinn extension run \ --id example-tool \ --capability web.read \ --input-json '{"query":"release notes"}'Structured input is validated, bounded, policy-checked, and audited.
