# 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`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2613-L2629)
- **Output:** [`ListMeasureControlsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2631-L2642)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L15991–L16002 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L15991-L16002)

### `listFrameworks` — List Frameworks

List all frameworks for the organization.

- **Input:** [`ListFrameworksInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2982-L2998)
- **Output:** [`ListFrameworksOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L3000-L3011)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L16075–L16086 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L16075-L16086)

### `getFramework` — Get Framework

Get a framework by ID.

- **Input:** [`GetFrameworkInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L3013-L3020)
- **Output:** [`GetFrameworkOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L3022-L3028)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L16087–L16098 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L16087-L16098)

### `addFramework` — Add Framework

Add a new framework to the organization.

- **Input:** [`AddFrameworkInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L3030-L3044)
- **Output:** [`AddFrameworkOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L3046-L3052)
- **Behavior:** Writes data · Non-destructive · Non-idempotent · Closed world
- **Source:** [specification.yaml · L16099–L16110 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L16099-L16110)

### `updateFramework` — Update Framework

Update an existing framework.

- **Input:** [`UpdateFrameworkInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L3054-L3068)
- **Output:** [`UpdateFrameworkOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L3070-L3076)
- **Behavior:** Writes data · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L16111–L16122 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L16111-L16122)

### `deleteFramework` — Delete Framework

Delete a framework.

- **Input:** [`DeleteFrameworkInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L3078-L3085)
- **Output:** [`DeleteFrameworkOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L3087-L3094)
- **Behavior:** Writes data · Destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L16123–L16134 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L16123-L16134)

### `listControls` — List Controls

List all controls for the organization or framework.

- **Input:** [`ListControlsInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L6489-L6514)
- **Output:** [`ListControlsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L6516-L6527)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L16867–L16878 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L16867-L16878)

### `getControl` — Get Control

Get a control by ID.

- **Input:** [`GetControlInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L6529-L6536)
- **Output:** [`GetControlOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L6538-L6544)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L16879–L16890 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L16879-L16890)

### `addControl` — Add Control

Add a new control to a framework.

- **Input:** [`AddControlInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L6546-L6583)
- **Output:** [`AddControlOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L6585-L6591)
- **Behavior:** Writes data · Non-destructive · Non-idempotent · Closed world
- **Source:** [specification.yaml · L16891–L16902 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L16891-L16902)

### `updateControl` — Update Control

Update an existing control.

- **Input:** [`UpdateControlInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L6593-L6622)
- **Output:** [`UpdateControlOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L6624-L6630)
- **Behavior:** Writes data · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L16903–L16914 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L16903-L16914)

### `deleteControl` — Delete Control

Delete a control.

- **Input:** [`DeleteControlInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L6632-L6639)
- **Output:** [`DeleteControlOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L6641-L6648)
- **Behavior:** Writes data · Destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L16915–L16926 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L16915-L16926)

### `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`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L6650-L6661)
- **Output:** [`LinkControlOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L6663-L6664)
- **Behavior:** Writes data · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L16927–L16938 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L16927-L16938)

### `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`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L6666-L6677)
- **Output:** [`UnlinkControlOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L6679-L6680)
- **Behavior:** Writes data · Destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L16939–L16950 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L16939-L16950)

### `listControlObligations` — List Control Obligations

List obligations linked to a control.

- **Input:** [`ListControlObligationsInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L6682-L6698)
- **Output:** [`ListControlObligationsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L6700-L6711)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L16951–L16962 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L16951-L16962)

### `listControlMeasures` — List Control Measures

List measures linked to a control.

- **Input:** [`ListControlMeasuresInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L6713-L6729)
- **Output:** [`ListControlMeasuresOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L6731-L6742)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L16963–L16974 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L16963-L16974)

### `listControlAudits` — List Control Audits

List audits linked to a control.

- **Input:** [`ListControlAuditsInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L6775-L6791)
- **Output:** [`ListControlAuditsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L6793-L6804)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L16987–L16998 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L16987-L16998)
