# Search Issues — Linear

> Searches Linear issues by team, project, assignee, labels, state, or text query. Supports pagination, ordering, and archived issues. Returns array of matching issues. Uses OAuth authentication. See Linear docs for additional info here.

- Key: `linear-search-issues`
- Type: Action (Read-only)
- Version: 0.2.17
- App: Linear (`linear`) — https://pipedream.com/apps/linear.md
- This page (HTML): https://pipedream.com/apps/linear/actions/search-issues
- Hints: read-only · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/linear/actions/search-issues/search-issues.mjs

## Description

Searches Linear issues by team, project, assignee, labels, state, or text query. Supports pagination, ordering, and archived issues. Returns array of matching issues. Uses OAuth authentication. See Linear docs for additional info [here](https://linear.app/developers/graphql).

## 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. |
| `projectId` | `string` | No | The identifier or key of the project associated with the issue Options are loaded from the connected account. |
| `query` | `string` | No | Search string to look for in issue titles. The query is used to filter issues where the title contains the query text (case insensitive). |
| `stateId` | `string` | No | Filter issues by their workflow state (status). States are scoped to the selected team. Options are loaded from the connected account. |
| `assigneeId` | `string` | No | The user to assign to the issue Options are loaded from the connected account. |
| `issueLabels` | `string[]` | No | The labels in the issue Options are loaded from the connected account. |
| `orderBy` | `string` | No | By which field should the pagination order by. Available options are createdAt (default) and updatedAt. |
| `includeArchived` | `boolean` | No | Should archived resources be included? (default: false) |
| `limit` | `integer` | No | Maximum number of issues to return. If no query is provided, this defaults to 20 to avoid returning too many results. |

## 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-search-issues",
  arguments: {
    teamId: "Team",
    projectId: "Project",
  },
})
```

**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-search-issues",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    linear: { authProvisionId: "apn_xxxxxxx" },
    teamId: "Team",
    projectId: "Project",
  },
})

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-search-issues",
    "configured_props": {
      "linear": { "authProvisionId": "apn_xxxxxxx" },
      "teamId": "Team",
      "projectId": "Project"
    }
  }'
```

---

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