See what your agents can reach.
Before you add another guardrail, inventory the authority already sitting beside your agents. EMILIA Scan reports configured reach and its own blind spots. The scanner does not launch a configured server, test a credential, or call home. npm may download the package before the scan starts.
npx @emilia-protocol/scan authority
Configured reach
Inventories supported agent configuration, declared MCP servers, credential-shaped fields, ambient credential files, and permission rules.
Private local pass
Parses bounded files in memory. After startup, scanner code launches no configured server or child process and performs no network I/O. Report files are created owner-only.
Blind spots included
Names unsupported formats, malformed sources, invisible runtime tools, and operation surfaces it could not classify instead of declaring them safe.
No reassuring green check from an incomplete scan.
Exit code 0 is intentionally unavailable in configuration-only mode because the scanner does not launch servers and therefore cannot establish complete operation coverage.
The scanner tells you where to look. It does not claim the action is authorized.
Give the same package an MCP tool list or OpenAPI document to propose which visible operations may need action-bound evidence. Review that proposal yourself. Nothing is enforced until a guard completely mediates the real executor path under your pinned policy and keys.
# generate the local visual Authority Map npx @emilia-protocol/scan brain ./tools.json # inspect the declared action surface in the terminal npx @emilia-protocol/scan ./tools.json # generate a reviewed protection scaffold (dry-run) npx @emilia-protocol/scan protect ./tools.json # create it, then run the synthetic refusal check npx @emilia-protocol/scan protect ./tools.json --apply node emilia/verify-setup.mjs