# Drata MCP connector

The Drata connector brings your controls, assets, audits, audit requests, personnel and background checks into Claude, ChatGPT, Cursor and any MCP client, so your team can ask about compliance status and keep Drata records current inside the access each person already has.

Source: https://elaichi.ai/connectors/drata/

## Facts

| | |
| --- | --- |
| Application | Drata |
| Category | Compliance |
| AI tools | 165 |
| Authentication | Connects with an API key |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. 165 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once Drata is connected

- List open audit requests for our SOC 2 audit.
- Which Drata assets have no owner assigned?
- Show users missing a completed background check.

## Connect Drata in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Drata.
2. Optionally set Share with, then press Connect.
3. Paste a Drata API key. One person generates a token in Drata and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Drata tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Drata to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Drata to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Drata to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Drata to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Drata tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Drata through Elaichi

### Answer auditor requests without the scramble

Compliance. Pull up every open audit request for the SOC 2 audit, see which ones are still waiting on evidence, and get a plain summary of what the auditor still needs before the Friday check-in.

### Keep the asset inventory honest

Security. After a laptop refresh, add the new devices to Drata, retire the ones that went back to the vendor, and fix the owner on anything that changed hands, all from one conversation.

### Check who is in Drata and who is not

IT. Compare the Drata personnel list against the new hires and leavers from last month so nobody is missing from onboarding checks or lingering after they left.

### Kick off background checks on day one

People. When a new hire is added, start their background check in Drata straight away instead of waiting for someone to remember the compliance step.

### Give every control a named owner

Engineering. List the controls that have no owner in Drata, then assign them to the right engineering lead so nothing sits unowned going into the next audit window.

### Write up control reviews as you go

Compliance. After a quarterly access review, add a control note in Drata recording what was checked and what was found, and tidy up notes from earlier reviews that are out of date.

## Frequently asked questions

### How do I connect Drata to Claude?

Connect Drata in Elaichi first, which asks for a Drata API key from your Drata settings and nothing else. There is no OAuth application to register and no client ID or secret to generate. Then in Claude open Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Claude will ask you to sign in to Elaichi, and from then on Drata is available in your conversations.

### Does Drata work with ChatGPT and Cursor as well as Claude?

Yes. Once Drata is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. You connect Drata once and every client you use picks it up.

### What can an AI agent actually do with my Drata data?

With Drata connected, an agent can look up controls, assets, audits, audit requests, personnel, workspaces and control notes, and tell you in plain language where things stand. It can also add or update assets, write control notes, assign control owners, start a background check and import controls into your control library. Because Drata offers so many actions, short concrete asks work best, such as "list open audit requests for the SOC 2 audit" rather than a long paragraph.

### Does connecting Drata give the AI access to my whole compliance program?

No. Every request runs as the person who signed in, so an agent working through Drata can only see and change what that person's Drata access already allows. Elaichi can narrow that further, for example limiting a team to reading controls and audits, but it can never grant anything the person does not already have in Drata.

### Can my team share one Drata connection?

Yes. One person connects Drata in Elaichi and shares the connection with a team, and nobody else ever handles the Drata API key. Each teammate still signs in to Elaichi as themselves, so the audit log records exactly who asked for what in Drata.

### Can I stop an agent from deleting or changing things in Drata?

Yes. In Elaichi you restrict Drata action by action, so you can allow reading controls and audits while blocking deleting assets or removing control notes. A blocked action is never shown to Claude, ChatGPT, Cursor or any other client at all, so no prompt, however worded, can reach it.

### What happens to a Drata connection when someone leaves?

When you offboard someone in Elaichi, their access to Drata through every client ends immediately. If they connected Drata and shared it, the shared connection keeps working for everyone else on the team. If you want Drata gone entirely, disconnecting it once in Elaichi removes it from Claude, ChatGPT, Cursor and every other client at the same time.

## All 165 Drata tools

Every tool below is callable through https://api.elaichi.ai/mcp once Drata is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Drata users** (List). List drata users matching optional filters. Returns: id, email, firstName, lastName, jobTitle, roles, avatarUrl, drataTermsAgreedAt, createdAt, backgroundChecks, documents, and identities per user record.
- **Get single Drata user by ID** (Get). Get the full detail of a single drata user by id. Returns: id, email, firstName, lastName, jobTitle, roles, avatarUrl, drataTermsAgreedAt, createdAt, backgroundChecks, documents, and identities. Required: id.
- **List all Drata assets** (List). List Drata assets by search terms and filters. Returns: id, name, assetType, assetProvider, owner, device, createdAt, updatedAt, externalId, customFields.
- **Create a Drata asset** (Create). Manually add a new asset to the Drata account. Returns: id, name, description, assetType, assetProvider, owner, createdAt, customFields. Required: name, description, assetClassTypes, assetType, ownerId.
- **Get single Drata asset by ID** (Get). Get a single Drata asset by id. Returns: id, name, description, assetType, assetProvider, owner, device, createdAt, updatedAt, externalId, customFields. Required: id.
- **Update a Drata asset by ID** (Update). Update an existing Drata asset by id. Returns: id, name, description, assetType, assetProvider, owner, device, createdAt, updatedAt, customFields. Required: id.
- **Delete a Drata asset by ID** (Delete). Remove a virtual or manually-added Drata asset by id. This is an unrecoverable operation. Returns an empty 204 response on success. Required: id.
- **List all Drata audits** (List). List audits in a Drata workspace. Returns: id, frameworkType, auditType, isInternalAudit, status, startDate, endDate, completedAt, createdAt, updatedAt, auditors, and internalAuditors for each audit record. Required: workspace_id.
- **Get single Drata audit by ID** (Get). Get a single Drata audit by id. Returns: id, frameworkType, auditType, isInternalAudit, status, startDate, endDate, completedAt, createdAt, updatedAt, auditors, internalAuditors, and controls. Required: workspace_id, id.
- **List all Drata audit requests** (List). List audit requests in Drata for a given workspace and audit. Returns: id, code, title, description, status, auditId, createdAt, updatedAt, owners, and messages. Required: workspace_id, audit_id.
- **Get single Drata audit request by ID** (Get). Get a single audit request in Drata by id. Returns: id, code, title, description, status, auditId, createdAt, updatedAt, owners, messages, and controls. Required: workspace_id, audit_id, id.
- **Create a Drata background check** (Create). Create a manual Background Check record in Drata and mark the user as compliant for Background Check requirements. Returns: id, employmentStatus, userId, email, createdAt, updatedAt. Required: userId, url, filedAt.
- **Get single Drata company by ID** (Get). Get the Drata company profile, including organization details, security configuration, training settings, and feature entitlements. Returns: accountId, domain, name, legalName, year, securityTraining, hipaaTraining, backgroundCheck, securityReport, agentEnabled, manualUploadEnabled, drataSupportAccess, entitlements, createdAt, and updatedAt.
- **List all Drata workspaces** (List). List Drata workspaces representing different products or business lines with distinct compliance requirements. Returns: id, name, primary, description, createdAt, updatedAt, url, logo, howItWorks, and an optional frameworks array when expanded.
- **List all Drata control library** (List). List drata Control Library templates with optional field and relational filters. Returns: id, code, controlNumber, name, description, question, activity, domain, category, inUse.
- **Get single Drata control library by ID** (Get). Get a single drata Control Library template by id, with optional expansion of related subcollections. Returns: id, code, controlNumber, name, description, question, activity, domain, category, inUse, testTemplates, policyTemplates, evidenceTemplates, requirementTemplates, controlsUsingTemplate. Required: id.
- **Drata control library import** (Import). Provision one or more drata tenant Controls from Control Library templates with all-or-nothing semantics — any invalid input rejects the entire request with no writes. Returns: data (array of per-input provisioning results, each containing inputIndex, controlId, code, status, associations, and customFields). Required: data. Max 100 inputs per request spanning no more than 10 distinct workspaceIds.
- **List all Drata control notes** (List). List control notes in drata for a given control, with optional filtering and sorting. Returns: id, ownerId, comment, createdAt, updatedAt, and an optional owner object when expanded. Required: workspace_id, control_id.
- **Create a Drata control note** (Create). Create a new control note in drata for a given control. Returns: id, ownerId, comment, createdAt, updatedAt, and an optional owner object. Required: workspace_id, control_id, comment.
- **Get single Drata control note by ID** (Get). Get a single drata control note by id. Returns: id, ownerId, comment, createdAt, updatedAt, and an optional owner object when expanded. Required: workspace_id, control_id, id.
- **Update a Drata control note by ID** (Update). Update the comment text of a drata control note. Returns: id, ownerId, comment, createdAt, updatedAt, and an optional owner object. Required: workspace_id, control_id, id, comment.
- **Delete a Drata control note by ID** (Delete). Delete a drata control note by id. Returns an empty 200 response on success. Required: workspace_id, control_id, id.
- **List all Drata control owners** (List). List control owners for a Drata control. Returns: id, email, firstName, lastName, createdAt, updatedAt. Required: workspace_id, control_id.
- **Create a Drata control owner** (Create). Add a control owner to a Drata control. Returns: id, email, firstName, lastName, createdAt, updatedAt. Required: workspace_id, control_id, ownerId.
- **Drata control owners modify** (Action). Modify all owners for a Drata control, replacing the entire owner set with the provided user IDs. Returns: ownerIds. Required: workspace_id, control_id, ownerUserIds.
- **Delete a Drata control owner by ID** (Delete). Delete a control owner from a Drata control by id. Returns: data (remaining owner records), pagination. Required: workspace_id, control_id, id.
- **List all Drata controls** (List). List drata controls in a workspace matching the provided filters. Returns: id, name, code, slug, description, activity, frameworkTags, flags, owners, requirements, testIds, evidenceIds, createdAt, updatedAt. Required: workspace_id.
- **Create a Drata control** (Create). Create a new custom drata control in a workspace. Returns: id, name, code, slug, description, activity, frameworkTags, flags, owners, requirements, customFields, testIds, evidenceIds, createdAt, updatedAt. Required: workspace_id, name, description, code.
- **Get single Drata control by ID** (Get). Get all information for a specific drata control by id. Returns: id, name, code, slug, description, question, activity, frameworkTags, flags, owners, requirements, customFields, testIds, evidenceIds, createdAt, updatedAt. Required: workspace_id, id.
- **Update a Drata control by ID** (Update). Update an existing drata control by id. Returns: id, name, code, slug, description, question, activity, frameworkTags, flags, owners, requirements, customFields, testIds, evidenceIds, createdAt, updatedAt. Required: workspace_id, id.
- **Drata controls list requirements** (List). List compliance requirements mapped to a specific drata control. Returns: id, name, description, frameworkName, frameworkTag, frameworkSlug, createdAt, updatedAt, longDescription, rationale, additionalInfo, archivedAt. Required: workspace_id, control_id.
- **Drata controls reset requirement mappings** (Action). Reset multiple drata controls to their original requirement mappings from control templates. Returns: results array with controlId, success, and error for each control reset attempt. Custom controls cannot be reset. Required: workspace_id, controlIds. Max 100 control IDs per request.
- **Drata controls perform action** (Action). Perform an action on a drata control — markOutOfScope archives it and markInScope restores it. Returns the updated control object including id, name, code, slug, archivedAt, rationale, flags, owners, requirements, and evidenceIds. Returns 204 with no body when the control is already in the requested state. Required: workspace_id, control_id, action.
- **Drata controls compare requirements** (Action). Compare requirements for multiple drata controls between tenant mappings and global template mappings. Returns: controlId, alignedRequirements, userMappedRequirements, and templateMappedRequirements per control. Required: workspace_id, controlIds[]. Max 300 control IDs per request.
- **List all Drata custom connections** (List). List Drata custom connections matching optional filters. Returns: id, clientAlias, providerTypes, createdAt, updatedAt, createdById per connection. Use expand[] to include createdByUser and customResources sub-objects.
- **Create a Drata custom connection** (Create). Create a new Drata custom connection. Returns: id, clientAlias, providerTypes, createdAt, updatedAt, createdById, customResources, createdByUser. Required: name, providerTypes. CUSTOM connections also require schema or sampleData, and displayNameKey.
- **Get single Drata custom connection by ID** (Get). Get a single Drata custom connection by id. Returns: id, clientAlias, description, providerTypes, createdAt, updatedAt, createdById. Use expand[] to include createdByUser and customResources sub-objects. Required: id.
- **Update a Drata custom connection by ID** (Update). Update the alias or description of an existing Drata custom connection. Returns: id, clientAlias, description, providerTypes, createdAt, updatedAt, createdById. Required: id.
- **Delete a Drata custom connection by ID** (Delete). Delete a Drata custom connection by id. Returns an empty 204 response on success. Required: id.
- **List all Drata custom data records** (List). List Custom Data Records for a Drata Custom Connection resource matching the provided filters. Returns: id, attributes (resource-specific fields), sessionId, createdAt, updatedAt. Required: connection_id, resource_id.
- **Drata custom data records upsert** (Upsert). Create or update Custom Data records for a Drata Custom Connection resource. Accepts a single object or an array of objects; records with matching IDs are updated and new records are created. Returns: id, statusCode, createdAt, updatedAt, and data. Required: connection_id, resource_id, data.
- **Drata custom data records list sessions** (List). List Custom Data Sessions for a Drata Custom Connection resource with optional filtering by status. Returns: id, sessionId, status, createdAt, updatedAt, activatedAt, canceledAt. Required: connection_id, resource_id.
- **Drata custom data records upsert session** (Upsert). Insert or update Custom Data records in batches for a specific session in Drata. Records remain inactive until the session is completed via the session action endpoint. Returns: id, statusCode, createdAt, updatedAt, and data. Required: connection_id, resource_id, id, data.
- **Drata custom data records perform session action** (Action). Perform an action on a Custom Data record session in Drata. Use `complete` to activate all session data and permanently delete records outside the session, or `cancel` to discard the session's data. Returns: sessionId, status, action, connectionId, resourceId. Required: connection_id, resource_id, session_id, action.
- **Update a Drata custom data record by ID** (Update). Update an existing Custom Data record in Drata by ID. Returns: id, attributes, sessionId, createdAt, updatedAt. Required: connection_id, resource_id, id, data.
- **Delete a Drata custom data record by ID** (Delete). Delete a Custom Data record in Drata by ID. Returns an empty 204 response on success. Required: connection_id, resource_id, id.
- **List all Drata device documents** (List). List device compliance documents in Drata for a given device. Returns: id, type, name, fileUrl, createdAt, updatedAt for each document. Required: device_id.
- **Drata device documents upload** (Upload). Upload a new device compliance document to Drata for a given device as multipart form data. Returns: id, type, name, fileUrl, createdAt, updatedAt. Required: device_id, type.
- **Get single Drata device document by ID** (Get). Get a single device compliance document in Drata by id. Returns: id, type, name, fileUrl, createdAt, updatedAt. Required: device_id, id.
- **Delete a Drata device document by ID** (Delete). Delete a device compliance document in Drata by id. Returns an empty 200 response on success. Required: device_id, id.
- **List all Drata devices** (List). List all drata devices. Returns: id, serialNumber, model, macAddress, sourceType, isDeviceCompliant, createdAt, antivirusEnabled, encryptionEnabled, firewallEnabled, and associated asset and compliance data. Optionally filter by externalId, macAddress, serialNumber, sourceType, or personnelId.
- **Drata devices list for personnel** (List). List drata devices assigned to a specific personnel member. Returns: id, serialNumber, model, macAddress, sourceType, isDeviceCompliant, createdAt, antivirusEnabled, encryptionEnabled, firewallEnabled, and associated asset and compliance data. Required: personnel_id.
- **Get single Drata device by ID** (Get). Get a single drata device by id. Returns: id, serialNumber, model, macAddress, sourceType, isDeviceCompliant, antivirusEnabled, encryptionEnabled, firewallEnabled, screenLockTime, complianceChecks, asset, apps, personnelId, and externalId. Required: id.
- **Drata devices list for connection** (List). List drata devices for a specific custom connection. Returns: id, serialNumber, model, macAddress, sourceType, isDeviceCompliant, createdAt, antivirusEnabled, encryptionEnabled, firewallEnabled, and associated asset and compliance data. Required: connection_id.
- **Drata devices list apps** (List). List apps installed on a specific drata device. Returns: id, installedApp. Required: device_id.
- **Drata devices upsert** (Upsert). Create or update a device for a drata custom connection; matches an existing device by serialNumber, macAddress, or externalId and updates it if found, otherwise creates a new one. Returns: id, serialNumber, model, osVersion, isDeviceCompliant, antivirusEnabled, encryptionEnabled, firewallEnabled, createdAt, asset. Required: connection_id, personnelId, platformName, platformVersion.
- **Delete a Drata device by ID** (Delete). Delete a device from a drata custom connection by id. Returns an empty 204 response on success. Required: connection_id, id.
- **List all Drata events** (List). List Drata events matching the provided filters. Returns: id, type, category, source, description, status, createdAt, userId, connectionId, requestDescription, testName, and testId per event. Optionally filter by type, category, source, workspaceId, userId, connectionId, createdAtStartDate, or createdAtEndDate.
- **Get single Drata event by ID** (Get). Get details for a single Drata event by id. Returns: id, type, category, source, description, status, createdAt, userId, connectionId, requestDescription, testName, testId, metadata, user, connection, and issues. Required: id.
- **Drata events create download job** (Create). Create an asynchronous PDF download job for a Drata event. Returns: jobId, status, result, createdAt, completedAt, and errorMessage. Poll the get_download_job method with the returned jobId to check progress and retrieve the download URL. Required: event_id.
- **Drata events get download job** (Get). Retrieve the status and result of a Drata event PDF download job. Returns: jobId, status, result, createdAt, completedAt, and errorMessage. Check result for the pre-signed download URL once status indicates completion. Required: event_id, id.
- **List all Drata evidence library** (List). List evidence library items in Drata, with optional filters by name and status. Returns: id, name, description, evidenceTemplateCode, createdAt, updatedAt, user, versions, renewalSchema, controls. Required: workspace_id.
- **Create a Drata evidence library** (Create). Create a new evidence library item in Drata. Returns: id, name, description, evidenceTemplateCode, createdAt, updatedAt, versions, renewalSchema, controls. Required: workspace_id, name. When attaching an artifact source (file, base64File, url, or ticketUrl), filedAt, renewalScheduleType, and ownerId are also required.
- **Get single Drata evidence library by ID** (Get). Get a specific evidence library item by ID in Drata. Returns: id, name, description, implementationGuidance, evidenceTemplateCode, createdAt, updatedAt, user, versions, renewalSchema, controls. Required: workspace_id, id.
- **Update a Drata evidence library by ID** (Update). Update an existing evidence library item in Drata. Returns: id, name, description, evidenceTemplateCode, createdAt, updatedAt, user, versions, renewalSchema, controls. Required: workspace_id, id. When adding a new artifact source (file, base64File, url, or ticketUrl), filedAt and renewalScheduleType are also required.
- **Delete a Drata evidence library by ID** (Delete). Delete an evidence library item by ID in Drata. Returns an empty 204 response on success. Required: workspace_id, id.
- **Drata evidence library get version** (Get). Get a specific version of a Drata Evidence Library item by version ID. Returns: id, name, version, current, filedAt, createdAt, updatedAt, and optionally downloadUrl when expanded. Required: workspace_id, evidence_library_id, id.
- **List all Drata frameworks** (List). List Frameworks in a Drata workspace matching optional filters. Returns: id, name, description, slug, tag, pill, isReady, isEnabled, numInScopeControls, numInScopeRequirements, numReadyInScopeRequirements, color, bgColor, activeLogo, inactiveLogo, createdAt, updatedAt. Required: workspace_id.
- **Create a Drata framework** (Create). Create a new custom compliance Framework in a Drata workspace. Returns: id, name, description, slug, tag, pill, isReady, isEnabled, numInScopeControls, numInScopeRequirements, numReadyInScopeRequirements, color, bgColor, activeLogo, inactiveLogo, createdAt, updatedAt. Required: workspace_id, name, shortName, description.
- **Update a Drata framework by ID** (Update). Update an existing custom compliance Framework in a Drata workspace. Returns: id, name, description, slug, tag, pill, isReady, isEnabled, numInScopeControls, numInScopeRequirements, numReadyInScopeRequirements, color, bgColor, activeLogo, inactiveLogo, createdAt, updatedAt. Required: workspace_id, id.
- **Drata framework requirements list legacy** (List). (Deprecated) List drata framework requirements across all frameworks matching provided filters. Returns: id, name, description, frameworkName, frameworkTag, category, createdAt, updatedAt. Required: workspace_id. Prefer the list method instead.
- **Drata framework requirements update legacy** (Update). (Deprecated) Update custom field values on a drata framework requirement. Returns: id, name, description, frameworkName, frameworkTag, category, createdAt, updatedAt, customFields. Required: workspace_id, id. Prefer the update method which also supports structural-field changes.
- **List all Drata framework requirements** (List). List requirements scoped to a specific framework in drata. Returns: id, code, name, description, category, createdAt, updatedAt. Required: workspace_id, framework_id.
- **Create a Drata framework requirement** (Create). Create or update one or more requirements on a custom drata framework. Returns: data (array of created requirements each with id, code, name, description, category, createdAt, updatedAt). Required: workspace_id, framework_id, data. Duplicate codes or unknown control IDs fail the entire batch.
- **Update a Drata framework requirement by ID** (Update). Update a custom drata framework requirement including core fields, control mappings, and custom field values. Returns: id, code, name, description, category, controls, createdAt, updatedAt. Required: workspace_id, framework_id, id.
- **List all Drata hris user identities** (List). List all active HRIS user identities for a Drata custom HRIS connection. Returns: id, identityId, email, firstName, lastName, jobTitle, managerId, managerName, startedAt, separatedAt, isContractor, createdAt, updatedAt. Required: connection_id.
- **Drata hris user identities upsert** (Upsert). Create or update one or more HRIS user identities in a Drata custom HRIS connection. Each record is keyed by identityId — existing records are updated, new ones are created; partial updates are supported. Returns an array of per-item results including statusCode, data (id, identityId, email, firstName, isContractor, createdAt, updatedAt), and error. Required: connection_id, identityId (per item). Accepts 1–1000 items per batch.
- **Get single Drata hris user identity by ID** (Get). Get a single HRIS user identity from a Drata custom HRIS connection by id. Returns: id, identityId, email, firstName, lastName, jobTitle, managerId, managerName, startedAt, separatedAt, isContractor, createdAt, updatedAt. Required: connection_id, id.
- **Delete a Drata hris user identity by ID** (Delete). Soft-delete a Drata HRIS user identity by id. Intended for records submitted in error (e.g. test data or duplicates), not for offboarding — use the upsert endpoint with separatedAt to reflect an employee departure. Returns an empty 204 response on success. Required: connection_id, id.
- **List all Drata monitoring tests** (List). List Drata monitoring tests within a workspace, optionally filtered by result status, system status, check type, or test source. Returns: id, name, checkResultStatus, checkStatus, testSource, testId, createdAt, updatedAt, lastPassedAt, failedSince. Required: workspace_id.
- **Get single Drata monitoring test by ID** (Get). Get a specific Drata monitoring test by its workspace-scoped testId. Returns: id, name, checkResultStatus, checkStatus, testSource, testId, createdAt, updatedAt, lastPassedAt, failedSince, monitorInstances, controls. Required: workspace_id, id (pass the testId value from the list response, not the internal id field).
- **Update a Drata monitoring test by ID** (Update). Update a Drata monitoring test's name, description, and/or enabled state. Returns: id, name, description, checkResultStatus, checkStatus, testSource, testId, createdAt, updatedAt, lastPassedAt, failedSince, monitorInstances, controls. Required: workspace_id, id (pass the testId value from the list response, not the internal id field).
- **Drata monitoring tests list exclusions** (List). List exclusions for a specific Drata monitoring test. Returns: id, targetId, targetName, exclusionReason, createdAt, updatedAt, connection, exclusionDesignator. Required: workspace_id, test_id.
- **Drata monitoring tests list failures** (List). List resources currently failing a specific Drata monitoring test; manually excluded failures are omitted by default unless includeExclusions is set to true. Returns: id, providerName, resourceName, accountName, clientId, resourceArn, organizationalUnitId, region, tags, cause. Required: workspace_id, test_id.
- **Drata monitoring tests list passes** (List). List resources currently passing a specific Monitoring Test in drata. Returns an empty page for tests that do not emit passing-resource data. Returns: id, providerName, resourceName, accountName, clientId, resourceArn, organizationalUnitId, region, tags, cause. Required: workspace_id, test_id.
- **List all Drata personnel** (List). List Drata personnel records with optional filtering by employmentStatus and complianceStatus. Returns: id, userId, employmentStatus, startedAt, separatedAt, createdAt, updatedAt, user, complianceChecks, and customFields per record.
- **Get single Drata personnel by ID** (Get). Get a single Drata personnel record by id. Returns: id, userId, employmentStatus, startedAt, separatedAt, statusUpdatedAt, createdAt, updatedAt, user, reasonProvider, complianceChecks, and customFields. Required: id.
- **Update a Drata personnel by ID** (Update). Update a single Drata personnel record by id. Returns the updated record including id, userId, employmentStatus, startedAt, separatedAt, statusUpdatedAt, createdAt, updatedAt, user, reasonProvider, complianceChecks, and customFields. Required: id. Manually updated fields no longer receive automatic IdP/HRIS sync.
- **Drata personnel perform action** (Action). Perform a sync-reset action on Drata personnel records. Use reset-sync for specific personnel IDs or reset-sync-all to reset all personnel. Returns: count of affected records. Required: action.
- **List all Drata policies** (List). List published drata policies matching the provided filters. Returns: id, name, status, createdAt, renewalDate, version, subVersion, owner, and groups.
- **Create a Drata policy** (Create). Create a new drata policy with an initial draft version using file upload (UPLOADED) or an existing external file reference (EXTERNAL). Returns: id, name, status, ownerId, renewalDate, createdAt, and latestVersion. Required: name, ownerId, sourceType, renewalDate, description.
- **Get single Drata policy by ID** (Get). Get a specific published drata policy by id. Returns: id, name, status, description, createdAt, renewalDate, publishedAt, approvedAt, version, owner, groups, and controls. Required: id.
- **Update a Drata policy by ID** (Update). Modify an existing drata policy by id. Returns: id, name, description, status, createdAt, renewalDate, publishedAt, approvedAt, owner, groups, and controls. Required: id.
- **Drata policies assign owner** (Assign). Assign an owner to a drata policy by policy_id. Returns an empty 204 response on success. Required: policy_id, userId.
- **Drata policies get approval configuration** (Get). Get the approval configuration for a specific policy in Drata. Returns: reviewGroups, each containing name, tier, consensusRule, timeline, and approvers. Required: policy_id.
- **Drata policies add approval configuration** (Add). Append a new review group tier to the end of a policy's approval sequence in Drata. Returns: name, tier, consensusRule, timeline, approvers. Required: policy_id, name, userIds, consensusRule, timeline. Maximum of 6 tiers per policy.
- **Drata policies update approval configuration** (Update). Update a single review group tier by its 1-based tier position within a policy's approval sequence in Drata. Other tiers are not affected. Returns: name, tier, consensusRule, timeline, approvers. Required: policy_id, id, name, userIds, consensusRule, timeline.
- **Drata policies remove approval configuration** (Delete). Remove a single review group tier by its 1-based tier position from a policy's approval sequence in Drata. Remaining tiers are renumbered to stay contiguous. Returns an empty 204 response on success. Required: policy_id, id.
- **Drata policies list actions** (List). List available actions the authenticated user can perform on a specific policy in Drata based on its current state. Returns: action, label, description, payloadSchema. Required: policy_id.
- **Drata policies perform action** (Action). Execute an action on a drata policy such as submit for approval, approve, request changes, override approve, publish, discard, or reset to template. Returns: success, newStatus, message. Required: policy_id, action.
- **Drata policies list versions** (List). List policy versions for a specific drata policy with optional filters by status, version number, and current flag. Returns: id, policyVersionStatus, version, current, createdAt, renewalDate, subVersion, updatedAt, policy, requiresAcknowledgment. Required: policy_id.
- **Drata policies get version** (Get). Get a specific drata policy version by its ID with optional expansion of owner, SLA configurations, and download URLs. Returns: id, policyVersionStatus, version, current, createdAt, updatedAt, renewalDate, subVersion, type, policy, requiresAcknowledgment. Required: policy_id, id.
- **List all Drata risk documents** (List). List all documents associated with a specific risk in drata. Returns: id, name, downloadUrl, createdAt. Required: risk_register_id, risk_id.
- **Drata risk documents upload** (Upload). Upload one or more documents for a specific risk in drata. Returns a documents array where each entry includes id, name, downloadUrl, and createdAt. Required: risk_register_id, risk_id, files. Max 10 files, 25MB each.
- **Get single Drata risk document by ID** (Get). Get a specific risk document in drata by its ID. Returns: id, name, downloadUrl, createdAt. Required: risk_register_id, risk_id, id.
- **Delete a Drata risk document by ID** (Delete). Delete a specific risk document in drata by its ID. Returns an empty 204 response on success. Required: risk_register_id, risk_id, id.
- **List all Drata risk library** (List). List risk library items within a Drata risk register, filterable by riskId, title, or description. Returns: id, riskId, title, description, controls, and categories per item. Required: risk_register_id.
- **Get single Drata risk library by ID** (Get). Get a single Drata risk library item by id within a risk register. Returns: id, riskId, title, description, controls, and categories. Required: risk_register_id, id.
- **Drata risk library copy to register** (Copy). Copy risk library items from the Drata risk library to a risk register by specific IDs or predefined groups. Returns data containing an array of copied risk items with id, riskId, title, description, and registerId per record. Required: bulkActionType, riskIds, riskGroups, registerId.
- **List all Drata risk notes** (List). List risk notes for a specific risk in drata. Returns: id, comment, createdAt, updatedAt, owner. Required: risk_register_id, risk_id.
- **Create a Drata risk note** (Create). Create a new note for a specific risk in drata. Returns: id, comment, createdAt, updatedAt, owner. Required: risk_register_id, risk_id, comment.
- **Get single Drata risk note by ID** (Get). Get a single risk note by id for a specific risk in drata. Returns: id, comment, createdAt, updatedAt, owner. Required: risk_register_id, risk_id, id.
- **Update a Drata risk note by ID** (Update). Update a specific risk note by id in drata. Returns: id, comment, createdAt, updatedAt, owner. Required: risk_register_id, risk_id, id, comment.
- **Delete a Drata risk note by ID** (Delete). Delete a specific risk note by id in drata. Returns an empty 204 response on success. Required: risk_register_id, risk_id, id.
- **List all Drata risk registers** (List). List all drata Risk Registers associated with the account. Returns: id, name, description, owners, workspaces, createdAt, updatedAt. Supports filtering by name, ownerIds, and workspaceIds, and expanding the workspaces sub-object.
- **Create a Drata risk register** (Create). Create a new drata Risk Register. Returns: id, name, description, owners, workspaces, createdAt, updatedAt. Required: name.
- **Get single Drata risk register by ID** (Get). Get a single drata Risk Register by id. Returns: id, name, description, owners, workspaces, createdAt, updatedAt. Required: id.
- **Update a Drata risk register by ID** (Update). Update a drata Risk Register by id. Returns: id, name, description, owners, workspaces, createdAt, updatedAt. Required: id.
- **Delete a Drata risk register by ID** (Delete). Delete a drata Risk Register by id. Returns an empty 204 response on success. Required: id.
- **List all Drata risks** (List). List risks in a drata Risk Register matching optional filters. Returns: id, riskId, title, status, treatmentPlan, impact, likelihood, score, residualScore, createdAt, updatedAt; expanded sub-collections (controls, categories, owners, reviewers, documents, notes, tickets, tasks, customFields) available via expand[]. Required: risk_register_id.
- **Create a Drata risk** (Create). Create a new custom risk in a drata Risk Register. Returns: id, riskId, title, status, treatmentPlan, impact, likelihood, score, residualScore, createdAt, updatedAt, riskRegister, and associated sub-collections (controls, categories, owners, reviewers, documents, notes, tickets, tasks, customFields). Required: risk_register_id, title, description.
- **Get single Drata risk by ID** (Get). Get detail for a single drata risk by id. Returns: id, riskId, title, status, treatmentPlan, impact, likelihood, score, residualScore, createdAt, updatedAt, controls, categories, owners, reviewers, documents, notes, tickets, tasks, riskRegister, and customFields. Required: risk_register_id, id.
- **Update a Drata risk by ID** (Update). Update an existing risk in a drata Risk Register by id. Returns: id, riskId, title, status, treatmentPlan, impact, likelihood, score, residualScore, createdAt, updatedAt, and associated sub-collections (controls, categories, owners, reviewers, documents, notes, tickets, tasks, riskRegister, customFields). Required: risk_register_id, id.
- **Drata risks get insights** (Get). Retrieve comprehensive analytics for a drata Risk Register including posture distribution, treatment overview, heatmap, and historical trends. Returns: riskPosture, treatmentOverview, riskHeatmap, categoryBreakdown, scored, remaining, riskOverTime. Required: risk_register_id. Requires Risk Management Pro.
- **List all Drata tasks** (List). List Drata tasks in a workspace matching the provided filters. Returns: id, title, status, taskType, dueDate, assigneeId, createdAt, updatedAt, controls, risks, policies. Required: workspace_id.
- **Create a Drata task** (Create). Create a new Drata task in a workspace. Returns the created task including id, title, status, taskType, dueDate, assigneeId, createdById, createdAt, updatedAt, controls, risks, and policies. Required: workspace_id, title, dueDate.
- **Get single Drata task by ID** (Get). Get details for a specific Drata task by id. Returns: id, title, description, status, taskType, dueDate, completedAt, createdAt, updatedAt, assigneeId, createdById, assignee, createdBy, controls, risks, policies. Required: workspace_id, id.
- **Update a Drata task by ID** (Update). Update an existing Drata task by id. Returns the updated task including id, title, status, taskType, dueDate, assigneeId, createdById, createdAt, updatedAt, controls, risks, and policies. Required: workspace_id, id.
- **Drata tasks perform action** (Action). Perform a complete or uncomplete action on a Drata task. Returns the updated task including id, title, status, taskType, dueDate, completedAt, assigneeId, createdById, createdAt, and updatedAt. Required: workspace_id, task_id, action.
- **Drata tasks list upcoming** (List). List upcoming tasks in a Drata workspace, sourced from policy renewals, vendor reviews, external evidence due dates, library document renewals, control approvals, and custom tasks. Returns: sourceId, name, taskType, dueDate, status, completedAt, assigneeIds. Required: workspace_id.
- **List all Drata user documents** (List). List user documents in drata for a specific user, with optional filters by name and type. Returns: id, userId, name, type, fileUrl, renewalDate, createdAt, updatedAt. Required: user_id.
- **Drata user documents upload** (Upload). Upload a user document to drata as manual compliance evidence for a specific user. Returns: id, userId, name, type, fileUrl, renewalDate, createdAt, updatedAt. Required: user_id, type.
- **Get single Drata user document by ID** (Get). Get the full detail of a drata user document by id. Returns: id, userId, name, type, fileUrl, renewalDate, createdAt, updatedAt. Required: user_id, id.
- **Delete a Drata user document by ID** (Delete). Delete a drata user document by id. Returns an empty 204 response on success. Required: user_id, id.
- **List all Drata user assigned policies** (List). List assigned policies for a Drata user, tracking acknowledgement of policy versions. Returns: id, acceptedAt, sourceType, policyId, policyVersionId, policy, and policyVersion. Required: user_id.
- **Drata user assigned policies acknowledge** (Action). Acknowledge a Drata user's assigned policy version, recording the date of acceptance. Returns: id, acceptedAt, createdAt, updatedAt, sourceType, policyId, policyVersionId, policy, and policyVersion. Required: user_id, policy_id, and acceptedAt. acceptedAt must be within the last year.
- **List all Drata roles** (List). List drata roles matching the provided filters. Returns: id, role, createdAt, updatedAt, and permissions (when expanded via expand[]).
- **Get single Drata role by ID** (Get). Get the full detail of a single drata role by id. Returns: id, role, createdAt, updatedAt, permissions. Required: id.
- **Drata roles list users** (List). List all drata users assigned to a specific role. Returns: id, email, firstName, lastName, jobTitle, createdAt, updatedAt, roles, and optionally backgroundChecks, documents, identities when expanded. Required: role_id.
- **List all Drata vendor documents** (List). List compliance-related vendor documents for a given vendor in drata. Returns: id, name, type, createdAt, updatedAt, and optionally downloadUrl. Required: vendor_id.
- **Drata vendor documents upload** (Upload). Upload a compliance-related vendor document (such as a SOC report, bridge letter, or questionnaire) to a vendor in drata. Returns the created document including id, name, type, createdAt, and updatedAt. Required: vendor_id, file.
- **Get single Drata vendor document by ID** (Get). Get a single vendor document by id in drata. Returns: id, name, type, createdAt, updatedAt, and downloadUrl. Required: vendor_id, id.
- **List all Drata vendor types** (List). List all vendor types configured in Drata. Returns: id, name. Supports optional sorting via sort and sortDir, and total-count inclusion via includeTotalCount.
- **Create a Drata vendor type** (Create). Create a new vendor type in Drata. Returns: id, name. Required: name.
- **Update a Drata vendor type by ID** (Update). Update an existing vendor type in Drata by id. Returns: id, name. Required: id, name.
- **Delete a Drata vendor type by ID** (Delete). Soft delete a vendor type in Drata by id. Returns an empty 204 response on success. Required: id.
- **List all Drata vendor security reviews** (List). List all security reviews for a given vendor in drata, cursor-paginated. Returns: id, status, type, decision, title, requestedAt, reviewDeadlineAt, userId, requesterUserId, user, requesterUser, socReviewForm. Required: vendor_id.
- **Create a Drata vendor security review** (Create). Create a new security review for a given vendor in drata. Returns: id, status, type, decision, title, note, requestedAt, reviewDeadlineAt, userId, requesterUserId, user, requesterUser, socReviewForm. Required: vendor_id, reviewDeadlineAt, securityReviewStatus, securityReviewType.
- **Drata vendor security reviews create with file** (Create). Create a new vendor security review in drata with an attached file in a single atomic operation. Returns: id, status, type, decision, title, note, requestedAt, reviewDeadlineAt, userId, requesterUserId, socReviewForm. Required: vendor_id, title, reviewDeadlineAt, securityReviewStatus, securityReviewType, file.
- **Get single Drata vendor security review by ID** (Get). Get a specific vendor security review by id in drata. For SOC_REPORT reviews the response includes full socReviewForm data. Returns: id, status, type, decision, title, note, requestedAt, reviewDeadlineAt, userId, requesterUserId, user, requesterUser, socReviewForm. Required: vendor_id, id.
- **Update a Drata vendor security review by ID** (Update). Update a vendor security review in drata. The title field applies to all review types; socForm is only processed when the review type is SOC_REPORT. Returns: id, status, type, decision, title, note, requestedAt, reviewDeadlineAt, userId, requesterUserId, socReviewForm. Required: vendor_id, id.
- **Drata vendor security reviews upload questionnaire** (Upload). Upload one or more security questionnaire files to a vendor in drata. Returns: id, completedBy, recipientEmail, isCompleted, dateSent, isManualUpload, responseId, title. Required: vendor_id, files.
- **Drata vendor security reviews list questionnaires** (List). List security questionnaires belonging to a vendor security review in drata. Returns: id, completedBy, recipientEmail, isCompleted, dateSent, isManualUpload, responseId, title. Archived or soft-deleted questionnaires are excluded. Required: vendor_id, security_review_id.
- **Drata vendor security reviews upload questionnaire for review** (Upload). Upload one or more security questionnaire files to a vendor for a specific security review in drata. Returns: id, completedBy, recipientEmail, isCompleted, dateSent, isManualUpload, responseId, title. Required: vendor_id, security_review_id, files.
- **Drata vendor security reviews list actions** (List). List available actions for a vendor security review in drata based on its current state (e.g. Finalize, Reopen). Returns: action. Required: vendor_id, security_review_id. Currently only SOC report type security reviews are supported.
- **Drata vendor security reviews perform action** (Action). Execute an action on a vendor security review in drata. Finalize marks the review as complete; reopen returns a completed review to in-progress. Returns: success, newStatus, message. Required: vendor_id, security_review_id, action. Currently only SOC report type security reviews are supported.
- **List all Drata vendors** (List). List Drata vendors matching provided filters. Returns vendor records including id, name, category, risk, status, type, location, hasPii, createdAt, and updatedAt. Supports filtering by category, status, risk, type, impactLevel, and renewalDate.
- **Create a Drata vendor** (Create). Create a new vendor in Drata. Returns the created vendor object including id, name, category, risk, status, type, hasPii, createdAt, and updatedAt. Required: name.
- **Drata vendors get stats** (Get). Retrieve vendor statistics for specified scopes in Drata. Returns aggregated key-count breakdowns including reminder, hasPii, businessUnits, passwordPolicy, status, risk, and impactLevel. Required: expand.
- **Get single Drata vendor by ID** (Get). Get a single Drata vendor by id. Returns the full vendor record including id, name, category, risk, status, type, location, hasPii, passwordPolicy, createdAt, and updatedAt. Required: id.
- **Update a Drata vendor by ID** (Update). Update Drata vendor details by id. Returns the updated vendor object including id, name, category, risk, status, type, location, cost, createdAt, and updatedAt. Required: id.
- **Delete a Drata vendor by ID** (Delete). Delete a drata vendor by id. Returns an empty 204 response on success. Required: id.
- **Drata vendors list questionnaires** (List). List questionnaires sent to a drata vendor. Returns: vendorId, sendAt, sentEmail, file, respondedAt, responseId, isManualUpload, completedBy. Required: vendor_id.
- **Drata vendors send questionnaire** (Send). Send a questionnaire to a drata vendor contact. Returns: vendorId, sendAt, sentEmail, file, respondedAt, responseId, isManualUpload, completedBy. Required: vendor_id.
- **Drata vendors get questionnaire** (Get). Get a specific questionnaire for a drata vendor by id. Returns: vendorId, sendAt, sentEmail, file, respondedAt, responseId, isManualUpload, completedBy. Required: vendor_id, id.
