# Update Issue — Linear

> Updates an existing Linear issue. Can modify title, description, assignee, state, project, team, labels, priority, and dates. Returns updated issue details. Uses OAuth authentication. See Linear docs for additional info here.

- Key: `linear-update-issue`
- Type: Action (Write)
- Version: 0.1.16
- App: Linear (`linear`) — https://pipedream.com/apps/linear.md
- This page (HTML): https://pipedream.com/apps/linear/actions/update-issue
- Hints: destructive · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/linear/actions/update-issue/update-issue.mjs

## Description

Updates an existing Linear issue. Can modify title, description, assignee, state, project, team, labels, priority, and dates. Returns updated issue details. Uses OAuth authentication. See Linear docs for additional info [here](https://linear.app/developers/graphql#creating-and-editing-issues).

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `teamId` | `string` | Yes | The identifier or key of the team associated with the issue Options are loaded from the connected account. |
| `issueId` | `string` | Yes | The issue to update Options are loaded from the connected account. |
| `title` | `string` | No | The title of the issue. |
| `description` | `string` | No | The issue description in markdown format |
| `teamIdToUpdate` | `string` | No | The identifier or key of the team to update the issue to Options are loaded from the connected account. |
| `stateId` | `string` | No | The state (status) to assign to the issue Options are loaded from the connected account. |
| `assigneeId` | `string` | No | The user to assign to the issue Options are loaded from the connected account. |
| `labelIds` | `string[]` | No | The labels in the issue Options are loaded from the connected account. |
| `projectId` | `string` | No | The identifier or key of the project associated with the issue Options are loaded from the connected account. |
| `priority` | `integer` | No | The priority of the issue |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "linear",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "linear-update-issue",
  arguments: {
    teamId: "Current Team",
    issueId: "Issue",
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "linear-update-issue",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    linear: { authProvisionId: "apn_xxxxxxx" },
    teamId: "Current Team",
    issueId: "Issue",
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "linear-update-issue",
    "configured_props": {
      "linear": { "authProvisionId": "apn_xxxxxxx" },
      "teamId": "Current Team",
      "issueId": "Issue"
    }
  }'
```

---

- App: https://pipedream.com/apps/linear.md · All apps: https://pipedream.com/apps
