
List assets with cursor pagination.
Create an asset. Use list_users to find owner (ownerId) user ids.
Get a single asset by ID. Use list_assets to find asset id.
Update an existing asset. Use list_assets to find asset id.
Delete an asset by ID. Use list_assets to find asset id.
Get the current Drata company account details.
List controls with cursor pagination. Use list_workspaces to find workspace id.
Inline file uploads are not supported; use URLs or pre-uploaded file keys where available. Create a control. Use listworkspaces to find workspace id; listusers for owner (ownersIds) user ids; list_policies for policyIds.
Get a single control by ID. Use listworkspaces to find workspace id. Use listcontrols to find control id.
Update an existing control. Use listworkspaces to find workspace id. Use listcontrols to find control id.
List the framework requirements mapped to a control. Use listworkspaces to find workspace id. Use listcontrols to find control id.
List custom field definitions with cursor pagination.
Get a single custom field definition by ID. Use listcustomfield_definitions to find custom field id.
List devices with cursor pagination.
List the devices assigned to a person, with cursor pagination. Use list_personnel to find personnel id.
Get a single device by ID. Use list_devices to find device id.
List the apps installed on a device, with cursor pagination. Use list_devices to find device id.
List events with cursor pagination.
Get a single event by ID. Use list_events to find event id.
List evidence library items with cursor pagination. Use list_workspaces to find workspace id.
Inline file uploads are not supported; use URLs or pre-uploaded file keys where available. Create an evidence library item. Use list_workspaces to find workspace id.
Get a single evidence library item by ID. Use listworkspaces to find workspace id. Use listevidence_library to find evidence library item id.
Inline file uploads are not supported; use URLs or pre-uploaded file keys where available. Update an existing evidence library item. Use listworkspaces to find workspace id. Use listevidence_library to find evidence library item id.
Delete an evidence library item by ID. Use listworkspaces to find workspace id. Use listevidence_library to find evidence library item id.
List evidence with cursor pagination. Use list_workspaces to find workspace id.
Create an evidence item. Use list_workspaces to find workspace id.
Get a single evidence item by ID. Use listworkspaces to find workspace id. Use listevidence to find evidence id.
Update an existing evidence item. Use listworkspaces to find workspace id. Use listevidence to find evidence id.
Delete an evidence item by ID. Use listworkspaces to find workspace id. Use listevidence to find evidence id.
List the artifacts attached to an evidence item, with cursor pagination. Use listworkspaces to find workspace id. Use listevidence to find evidence id.
List frameworks with cursor pagination. Use list_workspaces to find workspace id.
List all framework requirements in a workspace with cursor pagination, across every framework. Use listrequirementsforframework for one framework. Use listworkspaces to find workspace id.
List the requirements belonging to one framework, with cursor pagination. Use listworkspaces to find workspace id. Use listframeworks to find framework id.
List groups with cursor pagination.
List monitoring tests with cursor pagination. Use list_workspaces to find workspace id.
Create a monitoring test. Use list_workspaces to find workspace id.
Get a single monitoring test by ID. Use listworkspaces to find workspace id. Use listmonitoring_tests to find test id.
Update an existing monitoring test. Use listworkspaces to find workspace id. Use listmonitoring_tests to find test id.
List the failing resources of a monitoring test, with cursor pagination. Use listworkspaces to find workspace id. Use listmonitoring_tests to find test id.
List the passing resources of a monitoring test, with cursor pagination. Use listworkspaces to find workspace id. Use listmonitoring_tests to find test id.
Trigger a re-run of a monitoring test by ID. Use listworkspaces to find workspace id. Use listmonitoring_tests to find test id.
List personnel with cursor pagination.
Search personnel with filters and an optional free-text query.
Get a single person by ID. Use list_personnel to find personnel id.
Update an existing person record. Use list_personnel to find personnel id.
List policies with cursor pagination.
Create a policy. Use listusers to find owner (ownerId) user ids; use listgroups to find acknowledgement group ids.
List the versions of a policy, with cursor pagination. Use list_policies to find policy id.
Get a single policy by ID. Use list_policies to find policy id.
Update an existing policy. Use list_policies to find policy id.
Get a single policy version by ID. Use listpolicies to find policy id. Use listpolicy_versions to find policy version id.
List risk registers with cursor pagination.
Create a risk register.
Get a single risk register by ID. Use listriskregisters to find risk register id.
Update an existing risk register. Use listriskregisters to find risk register id.
Delete a risk register by ID. Use listriskregisters to find risk register id.
List risks with cursor pagination. Use listriskregisters to find risk register id.
Create a risk. Use listriskregisters to find risk register id; listusers for owners/reviewers; listcontrols for controls; list_vendors for vendorId.
Search risks with filters and an optional free-text query.
Get a single risk by ID. Use listriskregisters to find risk register id. Use list_risks to find risk id.
Update an existing risk. Use listriskregisters to find risk register id. Use list_risks to find risk id.
Delete a risk by ID. Use listriskregisters to find risk register id. Use list_risks to find risk id.
List tasks in a workspace, with cursor pagination. Use list_workspaces to find workspace id.
Create a task. Use listworkspaces to find workspace id; listusers for assigneeId; listcontrols, listrisks, list_policies for the ids to link.
Get a single task by ID. Use listworkspaces to find workspace id. Use listtasks to find task id.
Update an existing task. Use listworkspaces to find workspace id. Use listtasks to find task id.
List upcoming tasks in a workspace, with cursor pagination. Use list_workspaces to find workspace id.
List user documents with cursor pagination. Use list_users to find user id.
Get a single user document by ID. Use list_users to find user id.
List roles and their permissions, with cursor pagination.
Get a single role and its permissions by ID. Use list_roles to find role id.
List the users assigned a given role, with cursor pagination. Use list_roles to find role id.
List users and the roles they hold, with cursor pagination.
Get a single user and their roles by ID. Use list_users to find user id.
Validate Drata credentials by listing workspaces. Returns success and a message.
List vendor documents with cursor pagination. Use list_vendors to find vendor id.
Get a single vendor document by ID. Use list_vendors to find vendor id.
Create a vendor security review. Use list_vendors to find vendor id.
List vendor security reviews with cursor pagination.
List vendors with cursor pagination.
Create a vendor. Use list_users to find the compliance owner (userId) user id.
Search vendors with filters and an optional free-text query.
Get aggregate vendor statistics. Requires at least one expand facet.
Get a single vendor by ID. Use list_vendors to find vendor id.
Update an existing vendor. Use list_vendors to find vendor id.
Delete a vendor by ID. Use list_vendors to find vendor id.
List vendor types with cursor pagination.
Create a vendor type.
Update an existing vendor type. Use listvendortypes to find vendor type id.
Delete a vendor type by ID. Use listvendortypes to find vendor type id.
List workspaces with cursor pagination.

In an mcp.json file, add the configuration below, and restart Cursor.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5 "headers": {
6 "Authorization": "Bearer yMt*****"
7 }
8 }
9 }
10}
11Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.
Make sure Claude is using the Node v20+.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "yMt*****"
14 }
15 }
16 }
17}Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "<ah-production-access-key>"
14 }
15 }
16 }
17 }In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".
You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.
Learn more in the official documentation ↗
1{
2 "inputs": [
3 {
4 "type": "promptString",
5 "id": "agent-handler-auth",
6 "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7 "password": true
8 }
9 ],
10 "servers": {
11 "agent-handler": {
12 "type": "stdio",
13 "command": "npx",
14 "args": [
15 "-y",
16 "mcp-remote@latest",
17 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18 "--header",
19 "Authorization: Bearer ${input:agent-handler-auth}"
20 ]
21 }
22 }
23}Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now