# Internal controls, tasks, and evidence MCP tools

This page documents **36 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#L2652-L2696)
- **Output:** [`ListInternalControlsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2698-L2709)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18077–L18088 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18077-L18088)

### `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#L2984-L2991)
- **Output:** [`GetInternalControlOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2993-L2999)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18089–L18100 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18089-L18100)

### `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#L3001-L3046)
- **Output:** [`AddInternalControlOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L3048-L3054)
- **Behavior:** Writes data · Non-destructive · Non-idempotent · Closed world
- **Source:** [specification.yaml · L18101–L18112 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18101-L18112)

### `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#L3056-L3127)
- **Output:** [`UpdateInternalControlOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L3129-L3135)
- **Behavior:** Writes data · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18113–L18124 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18113-L18124)

### `deleteInternalControl` — Delete Internal control

Delete an internal control.

- **Input:** [`DeleteInternalControlInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L3137-L3144)
- **Output:** [`DeleteInternalControlOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L3146-L3153)
- **Behavior:** Writes data · Destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18125–L18136 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18125-L18136)

### `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#L2711-L2727)
- **Output:** [`ListInternalControlRisksOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2729-L2740)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18137–L18148 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18137-L18148)

### `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#L2742-L2758)
- **Output:** [`ListInternalControlControlsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2760-L2771)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18149–L18160 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18149-L18160)

### `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#L2804-L2834)
- **Output:** [`ListInternalControlTasksOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2836-L2847)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18161–L18172 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18161-L18172)

### `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#L2849-L2862)
- **Output:** [`ListInternalControlEvidencesOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2864-L2875)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18173–L18184 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18173-L18184)

### `deleteEvidence` — Delete Evidence

Delete an evidence.

- **Input:** [`DeleteEvidenceInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2934-L2941)
- **Output:** [`DeleteEvidenceOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2943-L2950)
- **Behavior:** Writes data · Destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18185–L18196 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18185-L18196)

### `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#L2952-L2963)
- **Output:** [`LinkInternalControlOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2965-L2966)
- **Behavior:** Writes data · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18197–L18208 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18197-L18208)

### `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#L2968-L2979)
- **Output:** [`UnlinkInternalControlOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2981-L2982)
- **Behavior:** Writes data · Destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18209–L18220 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18209-L18220)

### `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#L2773-L2789)
- **Output:** [`ListInternalControlDocumentsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L2791-L2802)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18221–L18232 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18221-L18232)

### `downloadDeviceEvidence` — Download Device Evidence

Render one A4 PDF page per device, with identity fields and current posture checks, and return a presigned download URL valid for 15 minutes. device_ids keeps page order. At most 100 ids, with no duplicates.

- **Input:** [`DownloadDeviceEvidenceInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L3935-L3946)
- **Output:** [`DownloadDeviceEvidenceOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L3948-L3955)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L18425–L18436 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L18425-L18436)

### `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#L7055-L7071)
- **Output:** [`ListControlInternalControlsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7073-L7084)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19157–L19168 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19157-L19168)

### `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#L7179-L7195)
- **Output:** [`ListRiskInternalControlsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7197-L7208)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19205–L19216 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19205-L19216)

### `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#L7617-L7650)
- **Output:** [`ListTasksOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7652-L7666)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19241–L19252 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19241-L19252)

### `getTask` — Get Task

Get a task by ID.

- **Input:** [`GetTaskInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7668-L7675)
- **Output:** [`GetTaskOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7677-L7683)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19253–L19264 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19253-L19264)

### `addTask` — Add Task

Add a new task to the organization. Omit linear_team_id to publish the task to the organization's default Linear team when one is set. Pass null to create the task with no Linear team. If the Linear publish attempt fails after the task is created, linear_publish_error explains why. Publish that task again instead of creating another one.

- **Input:** [`AddTaskInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7685-L7737)
- **Output:** [`AddTaskOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7739-L7748)
- **Behavior:** Writes data · Non-destructive · Non-idempotent · Closed world
- **Source:** [specification.yaml · L19265–L19276 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19265-L19276)

### `updateTask` — Update Task

Update an existing task.

- **Input:** [`UpdateTaskInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7750-L7820)
- **Output:** [`UpdateTaskOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7822-L7828)
- **Behavior:** Writes data · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19277–L19288 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19277-L19288)

### `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#L7830-L7841)
- **Output:** [`AssignTaskOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7843-L7849)
- **Behavior:** Writes data · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19289–L19300 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19289-L19300)

### `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#L7851-L7858)
- **Output:** [`UnassignTaskOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7860-L7866)
- **Behavior:** Writes data · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19301–L19312 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19301-L19312)

### `deleteTask` — Delete Task

Delete a task.

- **Input:** [`DeleteTaskInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7868-L7875)
- **Output:** [`DeleteTaskOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7877-L7884)
- **Behavior:** Writes data · Destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19313–L19324 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19313-L19324)

### `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#L7434-L7450)
- **Output:** [`ListLinearTeamsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7452-L7466)
- **Behavior:** Read only · Non-destructive · Idempotent · Open world
- **Source:** [specification.yaml · L19325–L19336 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19325-L19336)

### `updateLinearSettings` — Update Linear Settings

Update the organization's Linear settings. Omit a field to leave it unchanged. Null default_team_id clears the default team and turns issue import off.

- **Input:** [`UpdateLinearSettingsInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7488-L7505)
- **Output:** [`UpdateLinearSettingsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7507-L7514)
- **Behavior:** Writes data · Non-destructive · Idempotent · Open world
- **Source:** [specification.yaml · L19337–L19348 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19337-L19348)

### `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#L7516-L7536)
- **Output:** [`ListLinearIssuesOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7538-L7552)
- **Behavior:** Read only · Non-destructive · Idempotent · Open world
- **Source:** [specification.yaml · L19349–L19360 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19349-L19360)

### `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#L7554-L7565)
- **Output:** [`PublishTaskToLinearOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7567-L7573)
- **Behavior:** Writes data · Non-destructive · Non-idempotent · Open world
- **Source:** [specification.yaml · L19361–L19372 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19361-L19372)

### `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#L7575-L7590)
- **Output:** [`LinkTaskToLinearOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7592-L7598)
- **Behavior:** Writes data · Destructive · Non-idempotent · Open world
- **Source:** [specification.yaml · L19373–L19384 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19373-L19384)

### `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#L7600-L7607)
- **Output:** [`UnlinkTaskExternalOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7609-L7615)
- **Behavior:** Writes data · Destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19385–L19396 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19385-L19396)

### `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#L7940-L7956)
- **Output:** [`ListTaskCommentsOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7958-L7972)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19397–L19408 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19397-L19408)

### `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#L7974-L7981)
- **Output:** [`GetTaskCommentOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L7983-L7989)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19409–L19420 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19409-L19420)

### `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#L7991-L8005)
- **Output:** [`AddTaskCommentOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8007-L8013)
- **Behavior:** Writes data · Non-destructive · Non-idempotent · Closed world
- **Source:** [specification.yaml · L19421–L19432 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19421-L19432)

### `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#L8015-L8029)
- **Output:** [`UpdateTaskCommentOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8031-L8037)
- **Behavior:** Writes data · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19433–L19444 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19433-L19444)

### `deleteTaskComment` — Delete Task Comment

Delete a task comment.

- **Input:** [`DeleteTaskCommentInput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8039-L8046)
- **Output:** [`DeleteTaskCommentOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8048-L8055)
- **Behavior:** Writes data · Destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19445–L19456 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19445-L19456)

### `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#L8150-L8166)
- **Output:** [`ListTaskActivitiesOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8168-L8182)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19457–L19468 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19457-L19468)

### `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#L8184-L8191)
- **Output:** [`GetTaskActivityOutput`](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L8193-L8199)
- **Behavior:** Read only · Non-destructive · Idempotent · Closed world
- **Source:** [specification.yaml · L19469–L19480 ↗](https://github.com/getprobo/probo/blob/main/pkg/server/api/mcp/v1/specification.yaml#L19469-L19480)
