Okta to governed AIin minutes.
Roll out AI the way you roll out apps: through Okta. Connect Okta to the Speakeasy MCP Gateway and every employee's AI agents get the access they already have in Okta, in every AI client they use. Okta decides who can do what. Speakeasy enforces it on every tool call.
Assign it in Okta.
Speakeasy does the rest.
Three steps from an Okta tenant to governed AI. Okta stays the source of truth, so there is no second permission system to build or maintain.
People · 38
- KNKavya Nairk.nair@acme.org
- MBMarcus Bellm.bell@acme.org
- AOAna Oseia.osei@acme.org
- and 35 more
Applications · 3
MCP servers for the apps Okta already assigns
Speakeasy deploys MCP servers for the applications in your Okta tenant from a catalog of reviewed servers. Each one inherits the gateway's authentication, access, and audit logs. Bring your own servers for internal systems and they get the same controls.
Everyone was selling me a future. I had a problem in production right now. I needed something that worked across all our AI clients today, not a roadmap.

Thierry Dang
Security Operations, MoonPay
Okta records your permissions. Speakeasy enforces it.
Okta stays the source of truth for who can use which AI tools. Speakeasy enforces it on every tool call, at the single point all AI traffic passes through, so there is no second permission system to build or maintain.
Groups · 4
Sales · Applications · 3
SalesforceAssigned
SlackAssigned
HubSpotAssigned
Grants from Okta
Syncedsalesforce-mcpfrom Salesforce · via Okta groupGranted
slack-mcpfrom Slack · via Okta groupGranted
hubspot-mcpfrom HubSpot · via Okta groupGranted
Every tool call checked against this grant
Agents · 4
Signed in through Okta. The same servers in every agent.
Okta holds the groups and app assignments
Okta already knows who is in which group and which applications each group is assigned. Speakeasy reads that map and nothing else has to be entered.
Speakeasy turns each assignment into a server grant
Each assigned application becomes an MCP server at the gateway, granted to the same Okta group. Every tool call is checked against that grant before it runs.
Every agent gets the same servers
An employee signs in through Okta from Claude, ChatGPT, Cursor, or any other agent, and every one of them sees the same servers. A server the person is not assigned is not there.
Start with MCP.
Extend to the entire loop.
The MCP Gateway is one component of the Speakeasy AI Control Plane. The Okta identity, the policies, and the record on this page extend to every agent your company runs, on every surface.
Agent identity
Every agent action runs as a named person or a named workload. Employee identity comes from Okta, backend agents get identities of their own, and every call is attributable to one of them.
Agent security
Every prompt and tool call is inspected in flight. Prompt injection, personal information, and secrets are caught before they leave, and policy is written once at the gateway for every server.
Agent observability
Every session lands in one record with the person, the agent, the tool, and the result. Risk events stream to your SIEM as OTLP, and usage and spend roll up by team and agent.
Speakeasy went live in production across the entire MoonPay org, and it landed without a hitch.

Thierry Dang
Security Operations, MoonPay
200+ MCP servers, company-wide in 30 days
MoonPay brokered every MCP connection through its existing Okta identity and went from proof of concept to a company-wide rollout of 200+ MCP servers in 30 days. As of October 2026, the security team sees 60K+ agent sessions, each tied to a named employee, without provisioning a server by hand.
Read the MoonPay story30 days
From proof of concept to company-wide, brokered through Okta
200+
MCP servers under one gateway
60K+
Agent sessions visible to the security team
Questions
What does Speakeasy read from Okta?
Do we have to rebuild permissions in Speakeasy?
Which AI clients does this cover?
Does Speakeasy replace Okta?
How long does a rollout take?
Where does the audit trail go, and where does data run?
How do we get started?
Go deeper