What it does
Sector8 governs Claude Code tool calls that are routed through thesector8-guard MCP server. Other MCP-compatible clients can use the same connector when they route tools the same way.
When a tool call is routed through sector8-guard, the caller-visible decision is ALLOW or DENY. On this connector path a borderline action can be held for a human before that decision is returned; if nobody answers, it is denied.
Coverage applies to tool calls routed through the connected Sector8 MCP server. Unconnected tools, direct shell access, and other agent paths are not automatically covered.
ALLOW or DENY. POST /api/v1/evaluate does not wait; it fails closed to DENY.
Installation
Primary path after installing the SDK:.claude/settings.json for the current project and preserves existing
settings keys.
The installer writes a relative command entry that targets the checked-in MCP server
launcher from the repo root. On Windows it prefers the .cmd wrapper when present.
Manual fallback:
.cmd wrapper if present:
How it works
ALLOW or DENY is returned. If nobody answers, the connector denies. That hold is connector behaviour, not a third public decision value. REST evaluate does not wait.
Honor the returned decision before any side effect starts. Policy, telemetry, and decision evidence are unified with Sector8’s runtime evidence model.
Runtime semantics
Do not execute while a human hold is unresolved. TTL expiry is a deny.
Fail-closed on evaluation failure
If the routed evaluate path is unavailable or returns an invalid decision while the tool call is going throughsector8-guard, the connector should fail closed and not execute that call. Fail-closed applies to the connected MCP path; it does not stop actions on bypassed or unconfigured tool paths.
Returned denial may include:
reason_code: GUARD_INTERNAL_ERROR- non-empty
evidence_hash has_forensic_payload: truedecision_trace_idpolicy_version_id
Decision evidence on deny
Denied MCP responses include the standard decision artifact:decisionreason_codeevidence_hashhas_forensic_payloaddecision_trace_idpolicy_version_id
reason_code and policy_version_id values depend on your active policy and environment.
What is enforced on the MCP path
For tool calls routed through Sector8, admission checks include:- tool registration
- capability checks
- object-level authorization (BOLA)
- function-level authorization (BFLA)
- semantic threat scoring
- segmented-input safety
- request-risk checks such as SSRF and sensitive path access
- admission rate limiting
Governed tools
These tools are governed when the client routes them through
sector8-guard. Connecting the MCP server does not automatically cover tools the agent can still call outside that path.
web_fetch protections
web_fetch is not guarded by a simple hostname allowlist.
The current request-risk path blocks:
- raw private IP targets
- loopback and localhost
- link-local targets such as
169.254.169.254 - DNS results that resolve to private IP space
- unsupported URL schemes
- URL credentials
- non-allowlisted external domains
Example - blocked call
Example - allowed call
Verify the connection
Inside Claude Code:sector8-guard as a connected server.
Then test one allow and one deny through the Sector8 MCP server:
sector8-guard:
echo hello->ALLOWrm -rf /->DENY- unknown, missing, or unavailable evaluate results -> connector fails closed and does not execute that call
Fleet deployment
Distribute.claude/settings.json through the repo or developer environment management so engineers connect sector8-guard consistently.
Coverage still depends on the client routing governed tool calls through that MCP server. Connecting the server does not cover unconnected tools or alternate execution paths.
Non-MCP agents
MCP-compatible clients can use this connector. Non-MCP tool callers, including containerized Codex CLI integrations, should use the SDK adapter andPOST /api/v1/evaluate.
See the non-MCP integration guide for the container
pattern, required environment variables, and enforcement examples.
For the shared decision contract, see Evaluate and Guardrails.