Linear ACTION
Search Issues
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.
- Action
- Read only
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Linear account once, then configure and run Search Issues from your backend or agent.
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 -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"
}
}'// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{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",
},
})SCHEMA
Inputs
Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.
| Property | Type | Description |
|---|---|---|
teamId Team | string | The identifier or key of the team associated with the issue Required Dynamic |
projectId Project | string | The identifier or key of the project associated with the issue Optional Dynamic |
query Query | string | Search string to look for in issue titles. The query is used to filter issues where the title contains the query text (case insensitive). Optional |
stateId State (Status) | string | Filter issues by their workflow state (status). States are scoped to the selected team. Optional Dynamic |
assigneeId Assignee | string | The user to assign to the issue Optional Dynamic |
issueLabels Issue Labels | string[] | The labels in the issue Optional Dynamic |
orderBy Order By | string | By which field should the pagination order by. Available options are createdAt (default) and updatedAt. Optional |
includeArchived Include archived | boolean | Should archived resources be included? (default: false) Optional |
limit Limit | integer | Maximum number of issues to return. If no query is provided, this defaults to 20 to avoid returning too many results. Optional |
REFERENCE
Tool details
Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.
- Registry key
- linear-search-issues
- Version
- 0.2.17
- App
- Linear
- Authentication
- OAuth
- Read-only
- Yes
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗