1Password SaaS Manager integration1Password SaaS Manager logo

1Password SaaS Manager integration for AI agents.

1Password SaaS Manager integration for AI agents with secure authentication and server-side credential injection. Open Connector runs the OAuth, seals the token in an encrypted vault, and serves 1Password SaaS Manager tools to your agent over MCP or a typed API — credentials injected server-side, every call audited, nothing leaving your infrastructure. Open source (AGPL-3.0) and self-hostable.

What your agents can do

Real 1Password SaaS Manager actions, managed and audited.

Your user connects 1Password SaaS Manager once; your agent can then manage SaaS applications, people, teams, devices, workflows, audit logs, and SCIM resources with 1Password SaaS Manager — scoped to the OAuth permissions you grant and the tool allowlist you configure. Every action is least-privilege and written to a tamper-evident audit trail.

  1. 1

    Your user grants 1Password SaaS Manager access once (OAuth) — the token lands in the vault.

  2. 2

    Your agent calls a tool over MCP or the typed API; Open Connector injects the credential server-side.

  3. 3

    Every routed call appends a hash-chained audit record — nothing leaves your infra.

Tools & triggers

Supported 1Password SaaS Manager tools.

43 tools are generated from the published 1Password SaaS Manager catalog. Descriptions are plain text; each action remains subject to its configured authentication and tool allowlist.

Showing 43 tools. All published catalog entries are included in this page's server-rendered HTML.

Delete a device
Deletes the device with the given SaaS Manager ID. **Required scope:** `Assets.Write` (Write access to devices)
Devices
Delete a contract
Deletes a contract by its SaaS Manager ID or by your own external ID. **Required scope:** `Contracts.Write` (Write access to contracts)
Contracts
Delete a team
Deletes the team with the given ID, along with its descendants, and removes the corresponding memberships from people. Teams that are in use by integrations cannot be deleted. **Required scope:** `People.Write` (Write access to people and teams)
Teams
Delete a user
Removes a user's SaaS Manager access, following the SCIM 2.0 protocol (RFC 7644). Returns 204 No Content on success. System-managed and EPM-managed users cannot be deleted (400). **Required scope:** `Users.Write` (Write access to users with access to SaaS Manager)
SCIM
List applications
Returns a paginated list of the applications in your organization. Use `filter` and `q` to narrow the results, and follow the `next` link (also provided in the `link` response header) to page through large result sets. **Required scope:** `Apps.Read` (Read-only access to applications)
Applications
Get an application
Fetches a single application (a managed SaaS app in your organization) by its ID. **Required scope:** `Apps.Read` (Read-only access to applications)
Applications
List application accounts
Returns a paginated list of the accounts (users) on a given application. Follow the `next` link to page through large result sets. **Required scope:** `Apps.Users.Read` (Read-only access to application accounts)
Applications
Get application categories
Returns the application category tags as a nested hierarchy. **Required scope:** `Apps.Read` (Read-only access to applications)
Applications
List application custom fields
Returns the application custom fields defined for your organization. Use the field `lookupKey` values as the keys of the `customFields` object when creating or updating an application. **Required scope:** `Apps.Read` (Read-only access to applications)
Applications
List devices
Returns a paginated list of the devices in your organization. Use `filter` and `q` to narrow the results, and follow the `next` link (also provided in the `link` response header) to page through large result sets. **Required scope:** `Assets.Read` (Read-only access to devices)
Devices
List device custom fields
Returns the device custom fields defined for your organization. Use the field `lookupKey` values as the keys of the `customFields` object when creating or updating a device. **Required scope:** `Assets.Read` (Read-only access to devices)
Devices
Get a device
Fetches a single device by its SaaS Manager ID. **Required scope:** `Assets.Read` (Read-only access to devices)
Devices
List audit log events
Returns audit log events for your organization, oldest first. The audit log is a continuous, append-only stream. Pagination is cursor-based but differs from the rest of the SaaS Manager API: the response's `next` field (and the `link` response header, `rel="next"`) always returns a cursor URL — even on the last page — so you can keep following it to receive new events as they are written. Page until no further `results` are returned, then poll the same `next` URL periodically to pick up new events. Narrow results with `since`/`until` (a time window — by default the last 7 days), a SCIM-style `filter` (all operators except `[ ]`), or a free-text `q` query (matches the actor/target name, target email, and exactly matches event ID, event type, target ID and target type). Use `sortOrder=DESCENDING` to return newest events first. `limit` defaults to 100 (maximum 1000).
Audit log
List contracts
Returns a paginated list of the contracts in your organization. Use `filter` and `q` to narrow the results, and follow the `next` link (also provided in the `link` response header) to page through large result sets. **Required scope:** `Contracts.Read` (Read-only access to contracts)
Contracts
Get a contract
Fetches a single contract by its SaaS Manager ID or by your own external ID. **Required scope:** `Contracts.Read` (Read-only access to contracts)
Contracts
List people
Returns a paginated list of the people in your organization. Use `filter` and `q` to narrow the results, and follow the `next` link (also provided in the `link` response header) to page through large result sets. **Required scope:** `People.Read` (Read-only access to people and teams)
People
Get a person
Fetches a single person by their SaaS Manager ID (a UUID) or by email address. If an email address matches more than one person a 409 Conflict is returned. **Required scope:** `People.Read` (Read-only access to people and teams)
People
List a person's applications
Returns a paginated list of the applications a person has an account on, identified by their SaaS Manager ID or email address. If an email address matches more than one person a 409 Conflict is returned. **Required scope:** `People.Read` (Read-only access to people and teams)
People
Get a team
Fetches a single team by ID, including its parent team ID (if any). **Required scope:** `People.Read` (Read-only access to people and teams)
Teams
List teams
Returns all teams as a flat list; each entry carries its parent team ID (if any). **Required scope:** `People.Read` (Read-only access to people and teams)
Teams
Get the team hierarchy
Returns all teams as a nested tree, starting from the root teams. **Required scope:** `People.Read` (Read-only access to people and teams)
Teams
List resource types
Returns the SCIM 2.0 resource types this provider exposes (RFC 7643), in a SCIM `ListResponse` envelope. SCIM clients read this during discovery. Per the SCIM standard, supplying a `filter` is not permitted.
SCIM
Get the User resource type
Returns the SCIM 2.0 "User" resource type definition (RFC 7643).
SCIM
List users
Lists users with SaaS Manager access, following the SCIM 2.0 protocol (RFC 7644). Results are returned in a SCIM `ListResponse` envelope (`totalResults`, `itemsPerPage`, `startIndex`, `Resources`). Paging is SCIM-style — 1-based `startIndex` plus `count` (default and maximum 100) — not the cursor paging used elsewhere in the SaaS Manager API. An optional SCIM `filter` expression (e.g. `userName eq "john.doe@example.com"`) narrows the results.
SCIM
Get a user
Fetches a single user by SCIM resource ID, following the SCIM 2.0 protocol (RFC 7644).
SCIM
List workflows
Returns a paginated list of the published workflows in your organization, including each workflow's trigger and steps. Use `filter` and `q` to narrow the results, and follow the `next` link (also provided in the `link` response header) to page through large result sets. **Required scope:** `Workflows.Read` (Read-only access to workflow definitions)
Workflows
Get a workflow
Returns the published workflow with the given ID, including its trigger and steps. The workflow is returned inside a one-item result page (empty if no workflow has that ID). **Required scope:** `Workflows.Read` (Read-only access to workflow definitions)
Workflows
List workflow runs
Returns a paginated list of the runs (individual executions) of a workflow, including the run's context, current step states and any waiting actions. Use `filter` and `q` to narrow the results, and follow the `next` link to page through large result sets. **Variables:** workflow variable values are not returned by default. Pass the `variables` query parameter — a comma-separated list of variable IDs — to include those variables' values in each run's context. Reading the value of a **secret** (password) variable additionally requires the `Workflows.Runs.ReadSecrets` scope; requesting a secret variable without it returns `401`. **Required scope:** `Workflows.Runs.Read` (Read-only access to workflow runs)
Workflows
Get a workflow run
Returns the run with the given ID for the workflow, including its context and step states, inside a one-item result page (empty if no run has that ID). The `variables` query parameter and the `Workflows.Runs.ReadSecrets` scope behave as for listing runs. **Required scope:** `Workflows.Runs.Read` (Read-only access to workflow runs)
Workflows
Authorize (Authorization Code flow)
Redirects the user to the SaaS Manager consent screen. After the user consents, the browser is redirected back to `redirect_uri` with a `code` (and `state`) query parameter, which you then exchange for a token at `/connect/token`. This is a browser-redirect endpoint, not a JSON API call.
Authentication
Update selected details of an application
Partially updates an application: only the fields present in the request body are changed. Omitting a field leaves it untouched, whereas sending an explicit `null` clears it. At least one field must be supplied. **Required scope:** `Apps.Write` (Write access to applications)
Applications
Update selected details of a device
Partially updates a device: only the fields present in the request body are changed. Omitting a field leaves it untouched, whereas sending an explicit `null` clears it. At least one field must be supplied. **Required scope:** `Assets.Write` (Write access to devices)
Devices
Update selected details of a person
Partially updates a person: only the fields present in the request body are changed. Omitting a field leaves it untouched, whereas sending an explicit `null` clears it. At least one field must be supplied. **Required scope:** `People.Write` (Write access to people and teams)
People
Update a user
Applies a SCIM PATCH operation set to a user, following the SCIM 2.0 protocol (RFC 7644). The request body must use the SCIM PatchOp schema (`urn:ietf:params:scim:api:messages:2.0:PatchOp`) and supply one or more `add`/`replace`/ `remove` operations, each with a `path`. `userName` is immutable. EPM-managed and system-managed users cannot be modified (403). **Required scope:** `Users.Write` (Write access to users with access to SaaS Manager)
SCIM
Create an application
Adds a managed application to your organization. Identify the underlying app with either `globalAppId` or `globalAppName` (exactly one is required). When supplying a name that does not match an app in the global catalog, supply `vendorName` and a new local vendor is created. Returns 409 if the application already exists. **Required scope:** `Apps.Write` (Write access to applications)
Applications
Create a user
Creates a user, following the SCIM 2.0 protocol (RFC 7644). `userName` is required and must belong to a domain verified for your organization; it must not already be in use (a duplicate returns 409). Server-controlled fields (`id`, `meta`) are ignored on the request and set by the service. Returns 201 with the created user and a `Location` header. **Required scope:** `Users.Write` (Write access to users with access to SaaS Manager)
SCIM
Fire a signal
Fires a named signal (for example an approval or rejection) on a workflow step that is currently waiting for input, allowing the run to continue. The valid signals for a waiting step — and the URL to call to fire each one — are listed under the step's `waiting.actions` in the run's response, so a client can simply `POST` to the supplied `href`. Returns `200` when the signal was fired and the run advanced. Returns `409` if the step is no longer waiting (for example it has already been signalled or has timed out), and `404` if the run or workflow cannot be found. **Required scope:** `Workflows.Runs.Execute` (Execute workflow run actions)
Workflows
Request an access token
Exchanges client credentials (or an authorization code / refresh token) for an access token. The client ID and secret are sent via HTTP Basic authentication. The body is `application/x-www-form-urlencoded`. - **Client Credentials:** `grant_type=client_credentials` (optional `scope`). - **Authorization Code:** `grant_type=authorization_code` with `code` and `redirect_uri`. - **Refresh:** `grant_type=refresh_token` with `refresh_token` (requires the `offline_access` scope).
Authentication
Create or replace a device
Creates a new device, or fully replaces an existing one when an ID is supplied (in the route or in the body). When creating, `hardwareVendor` and `modelName` are required. Assign the device to a person with `assignedToEmail` and to a location with `locationName` (a location is created if needed). `netPrice` is converted to your base currency. **Required scope:** `Assets.Write` (Write access to devices)
Devices
Create or update a contract
Creates a contract, or updates an existing one matched by its `id` or your own `externalId`. Either all line items carry an `externalId` or none do. Set the business owner with `businessOwnerEmail`. **Required scope:** `Contracts.Write` (Write access to contracts)
Contracts
Create or replace a person
Creates a new person, or fully replaces an existing one when an ID is supplied (in the route or in the body). When creating, the email address must not already be in use. Set the line manager with lineManagerId or lineManagerEmail. Team membership is replaced wholesale: supply either teams (by ID or name) or teamIds (not both) — omitting both removes the person's manually-assigned teams. **Required scope:** `People.Write` (Write access to people and teams)
People
Create or update a team
Creates a new team when no ID is supplied (returns 201 with the created team), or updates an existing team's name and/or parent when an ID is supplied (returns 200). A team cannot be moved beneath one of its own descendants. **Required scope:** `People.Write` (Write access to people and teams)
Teams
Replace a user
Replaces a user's attributes, following the SCIM 2.0 protocol (RFC 7644). Server-controlled fields (`id`, `meta`) are ignored on the request. EPM-managed and system-managed users, and users shared across multiple organizations, cannot be modified (403). **Required scope:** `Users.Write` (Write access to users with access to SaaS Manager)
SCIM
FAQ

1Password SaaS Manager integration, answered

How do AI agents use 1Password SaaS Manager through Open Connector?
Your user connects 1Password SaaS Manager once with one of its cataloged authentication methods. Open Connector stores the credential in an encrypted vault and exposes 1Password SaaS Manager tools to your agent over MCP or a typed API, with credentials injected server-side on each call.
Is this a 1Password SaaS Manager MCP server?
Yes. Open Connector can serve 1Password SaaS Manager as a named MCP server with a scoped allowlist and a per-user connection URL, so any MCP client can call 1Password SaaS Manager actions with credentials injected server-side.
Where do 1Password SaaS Manager credentials live?
In your own infrastructure. Open Connector keeps credentials in its own vault and injects them at call time, so they never leave your environment.

Give your agents 1Password SaaS Manager — keep the keys.

Open source, self-hostable, with 1Password SaaS Manager credentials that never leave your infrastructure. Run it from source today.