NewEvery agent tool call now routes through the governed MCP gateway — policy check, audit log, then dispatch.Read the changelogarrow_forward
XOOZLYAI Orchestrator
routeHow it workssmart_toyAgent fleetshieldGovernance & trustsellPricingmenu_bookDocsarticleBloghistoryChangelog
Log inStart free
grid_viewProductsrouteHow it workssmart_toyAgent fleetshieldGovernance & trustsellPricingmenu_bookDocsarticleBloghistoryChangelogHelp centreLog in
Start free
  1. XOOZLY
  2. chevron_rightDocumentation
Loading the knowledge base…
XOOZLYAI Orchestrator

Ready to orchestrate your AI fleet with total confidence?

Start a project, set a cost cap, and watch the loop run with every tool call policy-checked and logged before it leaves the platform.

Start freearrow_forwardSee what shipped
  • check_circleNo credit card required
  • check_circleYour keys, your model spend
  • check_circleEvery tool call audited

Platform

  • All productsarrow_forward
  • Orchestration looparrow_forward
  • Agent fleetarrow_forward
  • Governed control planearrow_forward
  • Pricingarrow_forward

Trust & legal

  • Trust centrearrow_forward
  • Security & compliancearrow_forward
  • AI use policyarrow_forward
  • Report a vulnerabilityarrow_forward
  • Data subject requestsarrow_forward

Resources

  • Documentation & guidesarrow_forward
  • Engineering & research blogarrow_forward
  • Changelogarrow_forward
  • Uptime & reliabilityarrow_forward

Browse by domain

  • Strategy & Researcharrow_forward
  • Developmentarrow_forward
  • QAarrow_forward
  • Governance & Orchestrationarrow_forward
  • All 10 domainsarrow_forward
XOOZLY
© 2026 XOOZLY · 61 agents · 10 domains · 8 SDLC stationsAI use policyarrow_forwardLog inarrow_forward99.9% uptime SLAarrow_forward
  1. XOOZLY
  2. chevron_rightDocumentation
  3. chevron_rightGuide
Loading this guide…
  1. XOOZLY
  2. chevron_rightDocumentation
  3. chevron_rightConnecting your first MCP server
arrow_backBack to the knowledge base
schedule3 min read·verifiedChecked against the code on 25 October 2026
Core concepts & getting startedfirst-mcp-servercodeapi-server/mcp_gateway/policy.pycodeapi-server/domains/agent_fleet/models.py

Connectors & governance

Connecting your first MCP server

An MCP server is not reachable because it is registered. It becomes reachable when its connection is active, its safety sweep has passed, and a named agent holds a grant for the exact actions it may call — three separate gates, each of which denies on its own.

open_in_newOpen Connect an MCP server in the consolearrow_forward
01

Three gates, not one

Registering a server is the first of three independent gates. A call is dispatched only when all three pass, and each one denies on its own — so a connection that looks correct in the list can still refuse every call, for a reason the audit log will name.

  • The connection exists and is active. A revoked or expired connection is refused before anything is dispatched.
  • Its safety sweep has passed. An un-swept or failed-sweep connection is unreachable regardless of what any agent has been granted.
  • The calling agent holds a grant on that connection naming the exact action. A grant for a different action on the same connection is not a match.
02

Connecting one

  1. 1Register the server and store its credentialCredentials are encrypted at rest with the deployment's own key. A connection may instead hold a reference for a vault to resolve, though no vault product is selected for this platform yet.
  2. 2Let the safety sweep runUntil the sweep passes, the connection is inert. This is deliberate: it means a newly added server cannot be called by an agent that already has a broad grant.
  3. 3Grant one agent the actions it needsGrants are per agent, per connection, per action. Grant the narrowest set that does the job — a grant is the whole authorization, and widening one later is a reviewable change.
infoWhich connectors actually dispatch todayGovernance applies to every connector type, but real outbound dispatch exists for a handful: Google Stitch's own MCP server, a direct GitHub REST client, a Slack Web API client, a guarded web fetch and a provider-backed web search. Any other connector type returns an honest “no adapter implemented” rather than a fabricated success.
03

What a grant actually covers

A grant is narrower than it first looks. It names one agent, one connection, and an explicit list of actions on that connection. It is not a role, not a capability tier, and it does not extend to a second connection of the same type.

Scoped to
One agentNot a role or a group
On
One connectionNot a connector type
Allowing
Named actionsNot a category of them

Grant the smallest set that does the job. Widening one later is a visible, reviewable change — which is the behaviour you want the first time somebody asks for a broader scope.

04

Reading a refusal

Every refusal is recorded with its reason, so a connector that appears configured but never works is diagnosable rather than mysterious. The three causes are distinct and are worth checking in order.

  1. policy_alertNo policy rowNothing has been configured for this connection yet. Governance denies by default, so an unconfigured connection is unreachable rather than open.
  2. pendingSweep not passedThe connection exists but its safety sweep has not passed. This is what stops a newly added server from being reachable by an agent that already holds a broad grant.
  3. key_offNo matching grantThe connection is fine, but this agent has no grant naming this exact action. A grant for a sibling action on the same connection is not a match.
05

Rotating a credential

A connection's credential is encrypted at rest with the deployment's own key, and replacing it is a change to the connection rather than to any grant. Grants survive a rotation — they reference the connection, not the secret behind it.

lock_resetA broken credential is an error, not a fallbackIf a stored credential cannot be decrypted, the call fails loudly. It does not quietly fall back to a deployment-wide key, because silently using a different identity than the one configured is worse than refusing.

boltPut it into practice

Run a fleet with these guardrails on from day one.

Hard cost caps, one audited gateway in front of every tool call, and versioned rule files — the defaults, not an enterprise add-on.

Start freearrow_forward

On this page

5 sections
  1. 1. Three gates, not onechevron_right
  2. 2. Connecting onechevron_right
  3. 3. What a grant actually coverschevron_right
  4. 4. Reading a refusalchevron_right
  5. 5. Rotating a credentialchevron_right
feedbackSomething missing?

Related guides

  • articleSetting a per-project cost capSet a cost cap
  • articleUnderstanding run states and lifecycle transitionsRun log
  • articleHow rule files govern an agent, and how a version is approvedAgent fleet