# Frameworks and controls MCP tools

This page documents **16 tools** in the frameworks and controls group. Return to the [complete MCP tool reference](/docs/developers/api/mcp/tools) to browse another group.

Select a tool to inspect its schemas and behavior. Schema links open the exact definition in GitHub.

### `listMeasureControls` — List Measure Controls

List controls linked to a measure.

- **Input:** [`ListMeasureControlsInput`](/docs)
- **Output:** [`ListMeasureControlsOutput`](/docs)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L14725–L14736 ↗](/docs)

### `listFrameworks` — List Frameworks

List all frameworks for the organization.

- **Input:** [`ListFrameworksInput`](/docs)
- **Output:** [`ListFrameworksOutput`](/docs)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L14809–L14820 ↗](/docs)

### `getFramework` — Get Framework

Get a framework by ID.

- **Input:** [`GetFrameworkInput`](/docs)
- **Output:** [`GetFrameworkOutput`](/docs)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L14821–L14832 ↗](/docs)

### `addFramework` — Add Framework

Add a new framework to the organization.

- **Input:** [`AddFrameworkInput`](/docs)
- **Output:** [`AddFrameworkOutput`](/docs)
- **Behavior:** Writes data · Non-destructive · Non-idempotent · Closed world
- **Source:** [specification.yaml · L14833–L14844 ↗](/docs)

### `updateFramework` — Update Framework

Update an existing framework.

- **Input:** [`UpdateFrameworkInput`](/docs)
- **Output:** [`UpdateFrameworkOutput`](/docs)
- **Behavior:** Writes data · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L14845–L14856 ↗](/docs)

### `deleteFramework` — Delete Framework

Delete a framework.

- **Input:** [`DeleteFrameworkInput`](/docs)
- **Output:** [`DeleteFrameworkOutput`](/docs)
- **Behavior:** Writes data · Destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L14857–L14868 ↗](/docs)

### `listControls` — List Controls

List all controls for the organization or framework.

- **Input:** [`ListControlsInput`](/docs)
- **Output:** [`ListControlsOutput`](/docs)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L15541–L15552 ↗](/docs)

### `getControl` — Get Control

Get a control by ID.

- **Input:** [`GetControlInput`](/docs)
- **Output:** [`GetControlOutput`](/docs)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L15553–L15564 ↗](/docs)

### `addControl` — Add Control

Add a new control to a framework.

- **Input:** [`AddControlInput`](/docs)
- **Output:** [`AddControlOutput`](/docs)
- **Behavior:** Writes data · Non-destructive · Non-idempotent · Closed world
- **Source:** [specification.yaml · L15565–L15576 ↗](/docs)

### `updateControl` — Update Control

Update an existing control.

- **Input:** [`UpdateControlInput`](/docs)
- **Output:** [`UpdateControlOutput`](/docs)
- **Behavior:** Writes data · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L15577–L15588 ↗](/docs)

### `deleteControl` — Delete Control

Delete a control.

- **Input:** [`DeleteControlInput`](/docs)
- **Output:** [`DeleteControlOutput`](/docs)
- **Behavior:** Writes data · Destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L15589–L15600 ↗](/docs)

### `linkControl` — Link Control

Link a resource to a control (measure, document, audit, or obligation). The resource type is determined from the resource_id GID.

- **Input:** [`LinkControlInput`](/docs)
- **Output:** [`LinkControlOutput`](/docs)
- **Behavior:** Writes data · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L15601–L15612 ↗](/docs)

### `unlinkControl` — Unlink Control

Unlink a resource from a control (measure, document, audit, or obligation). The resource type is determined from the resource_id GID.

- **Input:** [`UnlinkControlInput`](/docs)
- **Output:** [`UnlinkControlOutput`](/docs)
- **Behavior:** Writes data · Destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L15613–L15624 ↗](/docs)

### `listControlObligations` — List Control Obligations

List obligations linked to a control.

- **Input:** [`ListControlObligationsInput`](/docs)
- **Output:** [`ListControlObligationsOutput`](/docs)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L15625–L15636 ↗](/docs)

### `listControlMeasures` — List Control Measures

List measures linked to a control.

- **Input:** [`ListControlMeasuresInput`](/docs)
- **Output:** [`ListControlMeasuresOutput`](/docs)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L15637–L15648 ↗](/docs)

### `listControlAudits` — List Control Audits

List audits linked to a control.

- **Input:** [`ListControlAuditsInput`](/docs)
- **Output:** [`ListControlAuditsOutput`](/docs)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L15661–L15672 ↗](/docs)
