Back to docsOrganization security

Enterprise-managed MCP authorization.

Let approved employees access PatchOps through your company identity provider. Authorization is centralized, while every member keeps their own PatchOps role and connector assignments.

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.

Before you begin

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
Setup

Connect the trust chain.

1

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.

2

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.

3

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.

4

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.

5

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.

Protocol values

Use these exact PatchOps endpoints.

MCP resource

https://patchops.ai/api/mcp

Token endpoint

https://patchops.ai/api/oauth/token

Audience

https://patchops.ai

Scopes

mcp:read mcp:tools

ID-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%3Atools

Assertions 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.

Credential boundary

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.

Agent-assisted setup

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.

Troubleshooting

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