Centralized
Your IdP decides who can authenticate.
User-scoped
PatchOps still enforces each member's assignments.
Short-lived
Exchanged access tokens expire after 15 minutes.
What you need.
- A PatchOps organization owner or admin account
- The IdP issuer and HTTPS JWKS endpoint
- An asymmetric IdP signing key with a stable key ID
- Employees already invited to the PatchOps organization
- Connector access assigned to those employees
- An enterprise MCP client that supports ID-JAG token exchange
Connect the trust chain.
Add your identity provider
In Organization → Enterprise auth, enter the exact HTTPS issuer and JWKS URI published by your IdP. Choose the asymmetric signing algorithms your tenant uses.
Map identity claims
Keep the default verified-email claims or provide your tenant-specific mappings. PatchOps links only an existing organization member with a matching verified corporate email; it does not create users just in time.
Create a confidential client
Create one PatchOps credential per enterprise MCP client. Copy the secret immediately: PatchOps stores only its hash and cannot display the plaintext again.
Configure your enterprise MCP client
Give the client the PatchOps MCP and token endpoints below, then configure your IdP to issue a short-lived ID-JAG with the required header and claims.
Test with a provisioned member
Use an employee who already belongs to the PatchOps organization and has at least one connector assignment. Confirm that the agent sees only that employee's assigned connections.
Use these exact PatchOps endpoints.
MCP resource
https://patchops.ai/api/mcpToken endpoint
https://patchops.ai/api/oauth/tokenAudience
https://patchops.aiScopes
mcp:read mcp:toolsID-JAG header and claims
YAML
Header
typ: oauth-id-jag+jwt
alg: RS256 or ES256
kid: <your signing-key ID>
Required claims
iss: <your configured IdP issuer>
sub: <stable employee subject>
aud: https://patchops.ai
resource: https://patchops.ai/api/mcp
client_id: <PatchOps enterprise client ID>
scope: mcp:read mcp:tools
email: employee@company.com
email_verified: true
iat: <issued-at time>
exp: <no more than 10 minutes after iat>
jti: <unique assertion ID>Token exchange
HTTP
POST https://patchops.ai/api/oauth/token
Content-Type: application/x-www-form-urlencoded
grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer
&assertion=<signed-ID-JAG>
&client_id=<PatchOps-enterprise-client-ID>
&client_secret=<PatchOps-enterprise-client-secret>
&resource=https%3A%2F%2Fpatchops.ai%2Fapi%2Fmcp
&scope=mcp%3Aread%20mcp%3AtoolsAssertions must expire within ten minutes and use a unique jti. PatchOps validates the configured issuer, pinned JWKS, audience, resource, client, signature, verified email, optional tenant claim, and replay status before issuing a token.
Central identity does not mean shared personal data.
Enterprise authorization proves the employee's PatchOps identity. It does not turn personal Outlook, Teams, Google, or GitHub OAuth credentials into shared organization credentials.
Agents receive only the connectors already assigned to that member. Create and distribute the confidential client secret outside model prompts, chat transcripts, logs, and MCP tool arguments.
Let an org-admin agent inspect, not handle secrets.
An authenticated organization owner or admin can ask an MCP agent to call patchops_orgGetEnterpriseAuthSetup. The tool reports readiness, non-secret client metadata, required claims, endpoints, and next actions. It cannot change trust settings, create a client, or reveal a secret.
Common checks.
Unknown employee
Invite the user to the PatchOps organization and verify the assertion email matches their account.
No connectors appear
Assign at least one organization connection to the member. Authentication does not bypass connector grants.
Invalid assertion
Check typ, kid, issuer, audience, resource, client_id, clock skew, expiry, and the configured tenant claim.
Replay rejected
Generate a new assertion with a unique jti for every exchange. Assertions are single-use.
Using Claude Enterprise? Follow Anthropic's current enterprise-managed authorization enablement instructions in addition to this PatchOps configuration. Open Claude guidance
