# Internal controls, tasks, and evidence MCP tools

This page documents **34 tools** in the internal controls, tasks, and evidence 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.

### `listInternalControls` — List Internal controls

List all internal controls for the organization.

- **Input:** [`ListInternalControlsInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2694-L2722)
- **Output:** [`ListInternalControlsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2724-L2735)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L17500–L17511 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L17500-L17511)

### `getInternalControl` — Get Internal control

Get an internal control by ID.

- **Input:** [`GetInternalControlInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L3007-L3014)
- **Output:** [`GetInternalControlOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L3016-L3022)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L17512–L17523 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L17512-L17523)

### `addInternalControl` — Add Internal control

Add a new internal control to the organization.

- **Input:** [`AddInternalControlInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L3024-L3069)
- **Output:** [`AddInternalControlOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L3071-L3077)
- **Behavior:** Writes data · Non-destructive · Non-idempotent · Closed world
- **Source:** [specification.yaml · L17524–L17535 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L17524-L17535)

### `updateInternalControl` — Update Internal control

Update an existing internal control.

- **Input:** [`UpdateInternalControlInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L3079-L3150)
- **Output:** [`UpdateInternalControlOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L3152-L3158)
- **Behavior:** Writes data · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L17536–L17547 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L17536-L17547)

### `deleteInternalControl` — Delete Internal control

Delete an internal control.

- **Input:** [`DeleteInternalControlInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L3160-L3167)
- **Output:** [`DeleteInternalControlOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L3169-L3176)
- **Behavior:** Writes data · Destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L17548–L17559 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L17548-L17559)

### `listInternalControlRisks` — List Internal control Risks

List risks linked to an internal control.

- **Input:** [`ListInternalControlRisksInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2737-L2753)
- **Output:** [`ListInternalControlRisksOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2755-L2766)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L17560–L17571 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L17560-L17571)

### `listInternalControlControls` — List Internal control Controls

List controls linked to an internal control.

- **Input:** [`ListInternalControlControlsInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2768-L2784)
- **Output:** [`ListInternalControlControlsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2786-L2797)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L17572–L17583 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L17572-L17583)

### `listInternalControlTasks` — List Internal control Tasks

List tasks linked to an internal control.

- **Input:** [`ListInternalControlTasksInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2830-L2860)
- **Output:** [`ListInternalControlTasksOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2862-L2873)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L17584–L17595 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L17584-L17595)

### `listInternalControlEvidences` — List Internal control Evidences

List evidences linked to an internal control.

- **Input:** [`ListInternalControlEvidencesInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2875-L2888)
- **Output:** [`ListInternalControlEvidencesOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2890-L2901)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L17596–L17607 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L17596-L17607)

### `deleteEvidence` — Delete Evidence

Delete an evidence.

- **Input:** [`DeleteEvidenceInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2957-L2964)
- **Output:** [`DeleteEvidenceOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2966-L2973)
- **Behavior:** Writes data · Destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L17608–L17619 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L17608-L17619)

### `linkInternalControl` — Link Internal control

Link an internal control to a resource (control, risk, document, third party, or treatment plan). The resource type is determined from the resource_id GID.

- **Input:** [`LinkInternalControlInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2975-L2986)
- **Output:** [`LinkInternalControlOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2988-L2989)
- **Behavior:** Writes data · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L17620–L17631 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L17620-L17631)

### `unlinkInternalControl` — Unlink Internal control

Unlink an internal control from a resource (control, risk, document, third party, or treatment plan). The resource type is determined from the resource_id GID.

- **Input:** [`UnlinkInternalControlInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2991-L3002)
- **Output:** [`UnlinkInternalControlOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L3004-L3005)
- **Behavior:** Writes data · Destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L17632–L17643 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L17632-L17643)

### `listInternalControlDocuments` — List Internal control Documents

List documents linked to an internal control.

- **Input:** [`ListInternalControlDocumentsInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2799-L2815)
- **Output:** [`ListInternalControlDocumentsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2817-L2828)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L17644–L17655 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L17644-L17655)

### `listControlInternalControls` — List Control Internal controls

List internal controls linked to a control.

- **Input:** [`ListControlInternalControlsInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L6964-L6980)
- **Output:** [`ListControlInternalControlsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L6982-L6993)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18544–L18555 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18544-L18555)

### `listRiskInternalControls` — List Risk Internal controls

List internal controls linked to a risk.

- **Input:** [`ListRiskInternalControlsInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7088-L7104)
- **Output:** [`ListRiskInternalControlsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7106-L7117)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18592–L18603 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18592-L18603)

### `listTasks` — List Tasks

List all tasks for the organization or internal control.

- **Input:** [`ListTasksInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7478-L7511)
- **Output:** [`ListTasksOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7513-L7527)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18628–L18639 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18628-L18639)

### `getTask` — Get Task

Get a task by ID.

- **Input:** [`GetTaskInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7529-L7536)
- **Output:** [`GetTaskOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7538-L7544)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18640–L18651 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18640-L18651)

### `addTask` — Add Task

Add a new task to the organization.

- **Input:** [`AddTaskInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7546-L7590)
- **Output:** [`AddTaskOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7592-L7598)
- **Behavior:** Writes data · Non-destructive · Non-idempotent · Closed world
- **Source:** [specification.yaml · L18652–L18663 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18652-L18663)

### `updateTask` — Update Task

Update an existing task.

- **Input:** [`UpdateTaskInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7600-L7670)
- **Output:** [`UpdateTaskOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7672-L7678)
- **Behavior:** Writes data · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18664–L18675 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18664-L18675)

### `assignTask` — Assign Task

Assign a task to a person.

- **Input:** [`AssignTaskInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7680-L7691)
- **Output:** [`AssignTaskOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7693-L7699)
- **Behavior:** Writes data · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18676–L18687 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18676-L18687)

### `unassignTask` — Unassign Task

Unassign a task from a person.

- **Input:** [`UnassignTaskInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7701-L7708)
- **Output:** [`UnassignTaskOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7710-L7716)
- **Behavior:** Writes data · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18688–L18699 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18688-L18699)

### `deleteTask` — Delete Task

Delete a task.

- **Input:** [`DeleteTaskInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7718-L7725)
- **Output:** [`DeleteTaskOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7727-L7734)
- **Behavior:** Writes data · Destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18700–L18711 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18700-L18711)

### `listLinearTeams` — List Linear Teams

Search Linear teams for an organization.

- **Input:** [`ListLinearTeamsInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7343-L7359)
- **Output:** [`ListLinearTeamsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7361-L7375)
- **Behavior:** Read only · Non-destructive · Idempotent · Open world
- **Source:** [specification.yaml · L18712–L18723 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18712-L18723)

### `listLinearIssues` — List Linear Issues

Search Linear issues in a team.

- **Input:** [`ListLinearIssuesInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7377-L7397)
- **Output:** [`ListLinearIssuesOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7399-L7413)
- **Behavior:** Read only · Non-destructive · Idempotent · Open world
- **Source:** [specification.yaml · L18724–L18735 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18724-L18735)

### `publishTaskToLinear` — Publish Task To Linear

Publish a Probo task as a new Linear issue.

- **Input:** [`PublishTaskToLinearInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7415-L7426)
- **Output:** [`PublishTaskToLinearOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7428-L7434)
- **Behavior:** Writes data · Non-destructive · Non-idempotent · Open world
- **Source:** [specification.yaml · L18736–L18747 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18736-L18747)

### `linkTaskToLinear` — Link Task To Linear

Link a Probo task to an existing Linear issue. This updates the Probo task with the Linear issue.

- **Input:** [`LinkTaskToLinearInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7436-L7451)
- **Output:** [`LinkTaskToLinearOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7453-L7459)
- **Behavior:** Writes data · Destructive · Non-idempotent · Open world
- **Source:** [specification.yaml · L18748–L18759 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18748-L18759)

### `unlinkTaskExternal` — Unlink Task External

Unlink a task from its external issue.

- **Input:** [`UnlinkTaskExternalInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7461-L7468)
- **Output:** [`UnlinkTaskExternalOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7470-L7476)
- **Behavior:** Writes data · Destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18760–L18771 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18760-L18771)

### `listTaskComments` — List Task Comments

List comments for a task, oldest first.

- **Input:** [`ListTaskCommentsInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7790-L7806)
- **Output:** [`ListTaskCommentsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7808-L7822)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18772–L18783 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18772-L18783)

### `getTaskComment` — Get Task Comment

Get a task comment by ID.

- **Input:** [`GetTaskCommentInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7824-L7831)
- **Output:** [`GetTaskCommentOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7833-L7839)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18784–L18795 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18784-L18795)

### `addTaskComment` — Add Task Comment

Add a comment to a task.

- **Input:** [`AddTaskCommentInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7841-L7855)
- **Output:** [`AddTaskCommentOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7857-L7863)
- **Behavior:** Writes data · Non-destructive · Non-idempotent · Closed world
- **Source:** [specification.yaml · L18796–L18807 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18796-L18807)

### `updateTaskComment` — Update Task Comment

Update an existing task comment.

- **Input:** [`UpdateTaskCommentInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7865-L7879)
- **Output:** [`UpdateTaskCommentOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7881-L7887)
- **Behavior:** Writes data · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18808–L18819 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18808-L18819)

### `deleteTaskComment` — Delete Task Comment

Delete a task comment.

- **Input:** [`DeleteTaskCommentInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7889-L7896)
- **Output:** [`DeleteTaskCommentOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7898-L7905)
- **Behavior:** Writes data · Destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18820–L18831 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18820-L18831)

### `listTaskActivities` — List Task Activities

List activities for a task, newest first.

- **Input:** [`ListTaskActivitiesInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8000-L8016)
- **Output:** [`ListTaskActivitiesOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8018-L8032)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18832–L18843 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18832-L18843)

### `getTaskActivity` — Get Task Activity

Get a task activity by ID.

- **Input:** [`GetTaskActivityInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8034-L8041)
- **Output:** [`GetTaskActivityOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8043-L8049)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18844–L18855 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18844-L18855)
