What the plugin does
The plugin holds your organization’s plugin secret. At the first tool call of each Claude session, it trades that secret for a short-lived session token, and Lumos checks every tool call in the session with that token, the same way it checks calls from an enrolled device. Tool calls appear under MCP Governance → Events with the member’s email, and your policies apply to them. The plugin governs every Claude Code and Cowork session it loads in, whatever app or environment started it. See Rolling out alongside MDM. If Lumos cannot be reached or is slow to answer (each request waits at most 4 seconds, and the hook spends at most 8 seconds in all), the tool call runs unchecked. A refusal from Lumos blocks the call; see When a tool call is blocked.Who can read the secret, and what the organization list catches
Who can read the secret, and what the organization list catches
Rolling out alongside MDM
The plugin and the MDM rollout are separate. You can use either one, or both. What the plugin checks. The plugin checks every Claude Code and Cowork session it loads in, whatever app or environment started it:- Cowork in the cloud, and Cowork on the member’s computer.
- Claude Code on the web (claude.ai/code), and Claude Code cloud sessions started from the Claude desktop app.
- Claude Code on the member’s computer, in the Claude desktop app or in a terminal.
email_missing until the computer is enrolled with Lumos. Tell members who use Claude Code in a terminal before you publish the plugin.
When the plugin and the MDM hook both run
When the plugin and the MDM hook both run
How Lumos uses the session's entrypoint
How Lumos uses the session's entrypoint
Where the plugin does not load
Where the plugin does not load
Set up, rotate and roll back
Set up
You need Organization Admin in Lumos, with MCP Governance enabled on your domain, and permission to upload plugins in your claude.ai organization. In Lumos, go to MCP Governance → Deployment, open Claude plugin, and go to the First-Time Setup tab. It shows the same three steps. A step that Lumos can confirm shows a check mark.If Claude plugin is not on the Deployment tab
If Claude plugin is not on the Deployment tab
Create the secret and build the plugin
What the build does
What the build does
What the first secret turns on, and creating a secret later
What the first secret turns on, and creating a secret later
If governance was turned off earlier
If governance was turned off earlier
Add your Claude organization ID
Why the organization ID matters
Why the organization ID matters
Upload it to Claude
- The first line counts the members with a session, for example 1 person has a governed Claude session now.
- Click View in Events. MCP Governance → Events opens, filtered by Claude plugin secret to show only the plugin’s tool calls.
- Your tool call shows your email in the User column. The Harness column shows Claude Cowork for a Cowork session and Claude Code for a Claude Code session.
lumos-mcp-governance plugin, and set Install to Required. Members get it at their next session start.Other signs on the Status tab that the session worked
Other signs on the Status tab that the session worked
- Your Claude organization is listed on the Claude organizations card.
- The Advanced card shows a First plugin session received callout the first time you open it. On the First-Time Setup tab, this step gets a check mark.
If the session does not have the plugin
If the session does not have the plugin
If tool calls are blocked with client_org_mismatch
If tool calls are blocked with client_org_mismatch
client_org_mismatch, step 2 was skipped. Add your organization ID as in step 2, and then start a new session.Allow Lumos in Claude Code cloud environments
Which environments need it. Every cloud environment that members of your Claude organization use for Claude Code, including the Default environment. In a self-hosted environment, allow the domain at your own network boundary instead.Why Claude Code cloud sessions need this
Why Claude Code cloud sessions need this
claude --cloud in a terminal. Each environment limits the domains its sessions can reach, and its default network access level, Trusted, does not include Lumos. In an environment that does not allow mcp-governance.lumos.com, the plugin cannot reach Lumos. Tool calls then run unchecked, Lumos does not record them, and the member sees no warning.Why each environment needs its own setting
Why each environment needs its own setting
- A shared environment: an Owner of your claude.ai organization edits it on the Cloud environments page in claude.ai admin settings.
- A member’s own environment: only that member can edit it. At claude.ai/code, open the environment selector under the message box, find the environment under Cloud, and click the settings icon on its row. In a running session, click the caret after the session title and choose Edit cloud environment.
- Trusted (the default): set it to Custom. In Allowed domains, add
mcp-governance.lumos.comon its own line. Check Also include default list of common package managers, so that sessions can still reach the domains that Trusted allows. - Custom: add
mcp-governance.lumos.comon its own line in Allowed domains. Leave the checkbox as it is. - Full: change nothing. Sessions can already reach Lumos.
- None: set it to Custom, add
mcp-governance.lumos.comin Allowed domains, and leave the checkbox unchecked. Sessions then reach Lumos and no other domain through the session’s network.
Covering members who do not edit their own environments
Covering members who do not edit their own environments
200. If it prints 403 or 000, or prints nothing, the environment still blocks Lumos. Then run one tool call and check that MCP Governance → Events shows it with your email.
Why Lumos cannot detect a blocked environment
Why Lumos cannot detect a blocked environment
The Claude organization list
You manage the list on the Claude organizations card of the Status tab. Adding or removing an organization applies to new sessions within a minute.How the list applies to secrets and running sessions
How the list applies to secrets and running sessions
When the build fails
If the build fails, the window says Lumos could not build the plugin zip and gives the reason. Click Try again while the window is open. If you close the window first, the secret is gone: rotate it, as in Rotate the secret, and download the zip from the rotate window.What the browser checks before it saves the zip
What the browser checks before it saves the zip
Rotate the secret
Rotate the secret before it expires, or if it may have leaked: for example, if the plugin zip or the secret reached someone outside your Claude organization, or if members are blocked withissuance_ceiling and you do not expect that many sessions. A secret lasts 7 days, 30 days, 90 days or 1 year, as you chose under Expires in. From 14 days before it expires, its row on the Plugin secrets card shows Expiring, and the Claude plugin’s row on the Deployment tab flags Secret expiring.
- Open the Claude plugin’s Update Plugin tab and click Rotate secret. Lumos shows the new secret once. In the same window, click Download plugin zip to build the new plugin zip.
- In claude.ai, replace the plugin with the new zip and keep it Required, as in step 3. The Update Plugin tab shows the date by which to do it.
How long the old secret keeps working
How long the old secret keeps working
What happens to sessions that are already running
What happens to sessions that are already running
Roll back
Roll back when a plugin build you uploaded breaks members’ sessions and you want the previous build back. Rolling back changes which plugin build members run. Unlike rotating, it makes no new secret, and unlike turning the plugin off, it keeps Lumos checking tool calls. Upload the previous zip if its secret is still live (check the Plugin secrets card). Or revert to it in claude.ai: open the plugin’s page, go to Version history, open the menu of the previous version, select Revert to this version, and confirm. Do not revoke every plugin secret to roll back. Once no secret is live, Lumos refuses new plugin sessions, and their tool calls are blocked.When a rollback takes effect, and removing the plugin instead
When a rollback takes effect, and removing the plugin instead
Turn the plugin off for everyone
If the plugin causes significant problems during deployment, an Owner of your claude.ai organization can remove it from every member’s environment. You do not need Lumos for this.- In claude.ai, go to Organization settings › Plugins & skills.
- Open the
lumos-mcp-governanceplugin. - Set Install to Not available. Anthropic’s help page calls this setting Default access.
What Not available does, and what still checks tool calls
What Not available does, and what still checks tool calls
When a tool call is blocked
When Lumos refuses the plugin’s request, the member sees this message in place of the tool call’s result:<message> depends on the reason code. After you fix the cause, a blocked member starts a new Claude session.
When you contact Lumos support about a block, include the reason code, the member’s email, your Claude organization ID and the time of the session.
How long a block lasts in a running session
How long a block lasts in a running session
When a session token expires mid-session
When a session token expires mid-session
reauth message with the refusal’s own reason code.Reason codes not in this table
Reason codes not in this table
When tool calls run unchecked
The plugin lets a tool call run without a check when Lumos cannot be reached or is slow to answer (each request waits at most 4 seconds, and the hook spends at most 8 seconds in all), when Lumos answers with a server error or its service-wide limit, when the answer did not come from Lumos (such as a block from a proxy or firewall), and whencurl is missing.
If Claude Code runs in a cloud environment
If Claude Code runs in a cloud environment
When Claude Code stops the hook after 10 seconds
When Claude Code stops the hook after 10 seconds