Prisma integrationPrisma logo

Prisma integration for AI agents.

Prisma 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 Prisma 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 Prisma actions, managed and audited.

Your user connects Prisma once; your agent can then prisma ORM gives TypeScript developers a schema-first workflow with a generated client, autocomplete, and compile-time guarantees — 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 Prisma 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 Prisma tools.

94 tools are generated from the published Prisma catalog. Descriptions are plain text; each action remains subject to its configured authentication and tool allowlist.

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

Delete app
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Deletes an app. Deployments under the app are deleted before the app is deleted.
[Experimental]
Soft-delete a branch
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Soft-deletes a Branch (sets deletedAt). Refuses if the Branch is the Project's current default, the Project's production Branch, or has live members.
[Experimental]
Delete bucket
Permanently deletes the bucket with the given ID, all objects stored in it, and all its access keys. This action cannot be undone.
Buckets
Delete connection
Deletes the connection with the given ID.
Connections
Delete database
Deletes the database with the given ID.
Databases
Delete deployment
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Permanently deletes the deployment, its metadata, and any associated VM. The deployment must be stopped or in the `new` state before it can be deleted.
[Experimental]
Delete a custom domain
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Removes a custom domain binding. Authorization is derived from the parent compute service's workspace.
[Experimental]
Delete an environment variable
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Removes an environment variable. A second delete of the same variable returns 404.
[Experimental]
Delete integration
Revokes the integration tokens by integration ID.
Integrations
Delete project
Deletes the project with the given ID.
Projects
Release Alchemy deploy lease
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Releases the deploy lease addressed by the Alchemy-State-Lease-Id header on clean deploy exit. A missing, replaced, or expired lease returns 404 — a lost lease at release time is surfaced, not idempotently swallowed.
[Experimental]
Delete Alchemy stack state
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Deletes every resource-state and output row of the stack, or only the given stage's rows when the stage query parameter is set. Requires a live deploy lease on the affected stage; without a stage it additionally requires that no other stage of the stack holds a live lease, so one stage's deploy can never delete state another stage's deploy is using. Idempotent.
[Experimental]
Delete Alchemy resource state
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Deletes the resource state row. Idempotent: deleting an absent row also returns 204.
[Experimental]
Disconnect a source repository
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Disconnects the source repository link. Existing branches and their attached resources are preserved.
[Experimental]
List apps
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Returns all apps the token has access to, ordered by creation time (oldest first). Optionally filter by project ID. Supports cursor-based pagination.
[Experimental]
Get app
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Returns an app by ID, including its region and active promoted deployment reference.
[Experimental]
List deployments
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Returns all deployments belonging to an app, ordered by creation time (newest first). Supports cursor-based pagination.
[Experimental]
List custom domains for an app
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Returns all custom domains attached to any deployment of the app. Domains are aggregated across all deployments since Foundry lists per deployment.
[Experimental]
Get a branch
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Returns a single Branch by ID. Member resources are not inlined — list them via /v1/databases?branchId= and /v1/apps?branchId=.
[Experimental]
List buckets
Returns all object-store buckets the token has access to. Optionally filter by project ID.
Buckets
Get bucket
Returns the bucket with the given ID.
Buckets
List bucket keys
Returns all access keys for the given bucket.
Buckets
List builds
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Lists the builds of the caller's workspace, newest first, filtered by project, branch, or state. `cursor` is opaque: pass back the `nextCursor` the previous page returned.
[Experimental]
Get a build
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Returns one build with the resources it reported acting on.
[Experimental]
Stream build logs
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Streams the full build log for a build as newline-delimited JSON (`application/x-ndjson`). Each line is a JSON object discriminated by `type`: `log` (a build output line) or `terminal` (end-of-stream marker with a `cursor` for resumption). The default is a finite dump that ends once the stream is drained; pass `follow=true` to keep the connection open for an in-flight build, and `cursor` to resume from a prior terminal cursor.
[Experimental]
List connections
Returns all connections the actor has access to, with optional database filter.
Connections
Get connection
Returns the connection with the given ID.
Connections
List databases
Returns all databases the token has access to. Optionally filter by project ID.
Databases
Get database
Returns the database with the given ID.
Databases
Get list of backups
Returns backups for the specified database.
Database Backups
Get list of database connections
Returns all connections for the given database.
Databases Connections
Get database usage metrics
Returns usage metrics for the specified database.
Database Usage
Get deployment
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Returns a deployment by ID, including its current status derived from the underlying VM state.
[Experimental]
Get deployment logs
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Returns log output for the specified deployment. Each record is a JSON object with `type: "log"` (log text + byte metadata) or `type: "terminal"` (end-of-page signal with a resume cursor). A plain GET responds with newline-delimited JSON (`application/x-ndjson`): it drains the requested window (`tail`, `from_start`, or `cursor`), ends with a terminal record carrying the cursor for the next page, and closes. Send an `Upgrade: websocket` header to follow the log live instead; a live segment ends after 10 minutes with the same terminal/cursor mechanism.
[Experimental]
Get a custom domain
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Returns details for a custom domain by id. Authorization is derived from the parent compute service's workspace.
[Experimental]
List environment variables
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Returns a paginated list of environment variables. All filters are optional; combine `projectId`, `class`, and `key` to look up a specific variable by name.
[Experimental]
Get an environment variable
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Returns a single environment variable's metadata. The value is not returned.
[Experimental]
Get list of integrations
Returns integrations filtered by workspace ID.
Integrations
Get integration by ID
Returns a single integration by its ID.
Integrations
Get current authenticated principal
Returns the user, workspace, and credential represented by the current token.
Misc
Get list of projects
Returns the list of projects the token has access to.
Projects
Get project
Returns the project with the given ID.
Projects
List branches in a project
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Returns the live Branches of a Project. Supports two mutually exclusive filters: ?gitName= (exact match — at most one row), ?gitNameContains= (case-sensitive substring). Soft-deleted Branches are not returned. Ordered by createdAt ascending.
[Experimental]
List Alchemy stacks
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Lists the distinct stack names with state or output rows on the branch. Requires no deploy lease: the stock client's auth probe (checkHttpStateStoreAuth) calls this endpoint bare, and it exposes stack names only.
[Experimental]
List Alchemy stages
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Lists the distinct stage names with state or output rows for the stack. Accepts a live deploy lease on any stage of the stack.
[Experimental]
Get Alchemy stack output
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Returns the stored stack output for the stage, or a JSON null body when absent (the stock client maps null to undefined).
[Experimental]
List replaced Alchemy resources
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Returns the decrypted resource states of the stage whose status is "replaced".
[Experimental]
List Alchemy resources
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Lists the resource FQNs stored for the stage, ordered by FQN.
[Experimental]
Get Alchemy resource state
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Returns the stored resource state, or a JSON null body when absent (the stock client maps null to undefined).
[Experimental]
Alchemy state store version
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Unauthenticated contract-version probe served verbatim from the pinned alchemy HttpStateApi contract. Returns the constant only and never inspects the addressed project or branch.
[Experimental]
Get list of databases
Returns databases for the given project.
Databases
Get all regions
Returns all available regions across products. Optionally filter by product.
Regions
Get Prisma Accelerate regions
Returns all available regions for Prisma Accelerate.
Misc
Get Prisma Postgres regions
Returns all available regions for Prisma Postgres.
Misc
List SCM installations for a workspace
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Lists active SCM installations connected to the given workspace.
[Experimental]
List repositories accessible to an SCM installation
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Lists repositories accessible to the given SCM installation.
[Experimental]
List source repositories
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Returns source repositories linked to a project. Requires projectId query parameter.
[Experimental]
Get a source repository
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Returns a single source repository link by ID.
[Experimental]
Get list of workspaces
Returns the list of workspaces the current token can access.
Workspaces
Get workspace
Returns the workspace with the given ID.
Workspaces
Get workspace subscription
Returns subscription information for the workspace with the given ID.
Workspaces
Get list of integrations
Returns integrations for the given workspace.
Integrations
Update app
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Updates the display name of an app.
[Experimental]
Update a branch
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Promotes a Branch to be the Project's default. Only isDefault is mutable — gitName rename and role changes are rejected.
[Experimental]
Update a build
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Records progress on a build. Any holder of the workspace token may patch any field — the webhook, the CI run and Composer each report the part of a deploy they can see, and the token is the boundary. Reaching `running` stamps `startedAt` and reaching a terminal state stamps `finishedAt`, both only if unset, so re-reporting the same state does not move the clock. `projectId`, `branchId`, `appId` and `deployedUrl` are fill-only: a reporter that resolves them partway through a deploy sets them here, but a value already recorded cannot be changed and the attempt is a conflict. Sending the value already recorded is accepted and changes nothing. An anchor must belong to the caller's workspace and agree with the anchors the build already carries, so an app from another project is refused.
[Experimental]
Update database
Updates the database with the given ID.
Databases
Update an environment variable's value
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Replaces the value of an existing environment variable. Only the value is mutable — the project, environment, key, and branch are fixed at create-time.
[Experimental]
Update project
Updates the project with the given ID.
Projects
Heartbeat Alchemy deploy lease
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Extends the unexpired deploy lease addressed by the Alchemy-State-Lease-Id header from now. A missing, replaced, or expired lease returns 404 — the lost-lease signal; an expired lease can never be revived.
[Experimental]
Create app
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Creates a new app under the specified project. The `projectId` is required in the request body. The app is placed in the given region, or the project's default region if omitted (falling back to us-east-1). Returns `409 Conflict` with the existing app's id, name, and branch if an app with the same name already exists on the resolved branch.
[Experimental]
Create deployment
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Creates a new deployment under the specified app. Returns a pre-signed upload URL for the artifact unless `skipCodeUpload` is set (which forks the active promoted deployment's artifact). Environment variables are resolved automatically from the app's attached Branch (production-class templates for the production Branch; preview-class templates for preview Branches). Manage env vars via the `/v1/environment-variables` endpoints, not as part of the deploy payload.
[Experimental]
Create a custom domain
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Registers a custom hostname for the app. The hostname must CNAME to the regional switchboard target before DNS verification can succeed. Returns 429 if the app has reached its domain quota (default: 3).
[Experimental]
Promote deployment
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Promotes a deployment to be the active deployment behind the app's stable endpoint. The deployment must be running. Returns the app endpoint domain.
[Experimental]
Roll an app back to an existing deployment
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Makes any eligible existing deployment live behind the app's stable endpoint (rollback or roll-forward). Unlike promote, a stopped target is started and waited until it is running before the endpoint is switched, so the currently-live deployment keeps serving with zero downtime. Returns the app endpoint domain.
[Experimental]
Create bucket
Creates a new object-store bucket in the specified project.
Buckets
Report a build
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Records a build any deploy tool is running — a CI workflow, a deploy script, or Composer from a laptop. The workspace comes from the token, never from the body, which is what lets a build be reported before the project it will create exists. Supplying `runIdentity` makes the call idempotent: a repeat for the same run returns the build already recorded rather than a second one. The response is the same either way; a caller cannot tell whether it created the build or joined one. A build reported with no `runIdentity` has no dedup key, so a client that retries a lost response creates a second build. Supply a `runIdentity` whenever the run has one.
[Experimental]
Create connection
Creates a new connection for the specified database.
Connections
Create database
Creates a new database in the specified project.
Databases
Create database connection string
Creates a new connection string for the given database.
Databases Connections
Restore database (destructive)
⚠️ **Destructive operation** — this immediately and irreversibly overwrites all data in the target database with the contents of the specified backup. Any data written since the backup was taken will be lost. Ensure you have a recent backup of the target database before proceeding. Replaces the data in an existing database from a backup. Connections and credentials are preserved — only the data layer is replaced.
Databases
Start deployment
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Requests VM creation and startup for the deployment. The artifact must be uploaded before calling this endpoint. Returns a preview domain that becomes reachable once the VM is running. Poll the status endpoint until `running` is reached.
[Experimental]
Stop deployment
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Requests VM shutdown for the deployment. The deployment record and metadata are retained. Poll the status endpoint until `stopped` is reached.
[Experimental]
Retry custom domain provisioning
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Retries DNS verification and certificate issuance for a failed or pending domain. Returns 409 if the domain is not yet eligible for retry (e.g. still provisioning).
[Experimental]
Create an environment variable
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Creates a new environment variable in a project's `production` or `preview` environment, or a preview branch override when `branchId` is supplied. Returns 409 if a variable with the same key already exists in that scope — use PATCH to replace its value. Values are stored encrypted and are not returned by subsequent reads.
[Experimental]
Create project with a postgres database
Creates a new project with a postgres database.
Projects
Transfer project
Transfer the project with the given ID to the new owner's workspace
Projects
Create a branch
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Creates a Branch under the specified Project. The first Branch in a Project is always created with isDefault=true and role=production regardless of the body value. Later Branches are created with role=preview. Setting isDefault=true while another Branch already holds the default atomically swaps the default flag only.
[Experimental]
Acquire Alchemy deploy lease
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Acquires the deploy lease for a (branch, stack, stage). An expired lease is replaced atomically; a live lease fails fast with 409 naming the current holder — there is no queueing. Every Alchemy state operation requires a live deploy lease.
[Experimental]
Create database
Creates a new database for the given project.
Databases
Create an SCM App installation intent
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Creates an installation intent for the given workspace and returns a provider-specific URL that the user opens to install the SCM app. Currently only `github` is supported.
[Experimental]
Link a source repository to a project
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Links a GitHub repository to a Prisma project via an existing SCM installation.
[Experimental]
Report a resource a build acted on
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Records that the build created, acted on, or deleted a platform resource — the provenance a deploy run leaves behind. Idempotent: re-reporting the same resource updates the row rather than adding one, and never weakens the recorded action. The resource must belong to the caller's workspace, and must still be findable: a soft-deleted resource can be reported, but `project`, `database`, `service_key` and `config_variable` leave no row behind, so a build that deletes one must report it before deleting it. Reporting a deployment as `created` also attaches the deployment to the build and records the app it deployed into, both in the same transaction, because a deployment relates its build to that app whether or not the reporter says so.
[Experimental]
Set Alchemy stack output
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Overwrites the stack output for the stage, encrypted at rest, and echoes the stored value.
[Experimental]
Set Alchemy resource state
⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️ Stores the resource state encrypted at rest and echoes the stored value.
[Experimental]
FAQ

Prisma integration, answered

How do AI agents use Prisma through Open Connector?
Your user connects Prisma once with one of its cataloged authentication methods. Open Connector stores the credential in an encrypted vault and exposes Prisma tools to your agent over MCP or a typed API, with credentials injected server-side on each call.
Is this a Prisma MCP server?
Yes. Open Connector can serve Prisma as a named MCP server with a scoped allowlist and a per-user connection URL, so any MCP client can call Prisma actions with credentials injected server-side.
Where do Prisma 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 Prisma — keep the keys.

Open source, self-hostable, with Prisma credentials that never leave your infrastructure. Run it from source today.