GetthreadsPLAIN_MCP_GET_THREADS
Fetch threads with flexible filtering options.
Use this to find first 10 threads by status, status details, assignee, customer, tenant, labels, priority, or date ranges.
Set isAssigned: false to get unassigned threads.
Set isAssigned: true to get assigned threads.
Pass null for isAssigned to get all threads regardless of assignment.
statusDetails filters by specific status detail types like CREATED, IN_PROGRESS, NEW_REPLY, WAITING_FOR_CUSTOMER, etc.
Use the `cursor` variable with the endCursor from the previous
response's pageInfo to fetch the next page. The cursor is an opaque
token: pass it back unchanged and do not construct, modify, or alter it. Set
`first` to control page size (default 10).
threadFields filters by custom thread field values. Call `getThreadFieldSchemas`
first to discover the available field keys and their types. Every entry must include
`key`, `stringValue`, and `booleanValue`, then set exactly one value family to match
on and leave the others as null:
- STRING/ENUM: stringValue: "some value", booleanValue: null
- BOOLEAN: stringValue: null, booleanValue: true
- NUMBER: stringValue: null, booleanValue: null,
number: { value: 5, gte: null, lte: null } # equality
number: { value: null, gte: 1, lte: 10 } # range
- DATE: stringValue: null, booleanValue: null,
date: { after: "2024-01-01T00:00:00Z", before: null }
For number/date, every sub-field must be present; null out the ones you are not
matching on. Multiple entries are combined with OR; thread-field filtering is combined
with the other filters above using AND. Example:
threadFields: [{ key: "plan_tier", stringValue: "enterprise", booleanValue: null }]
tenantIdentifiers filters by the tenant stamped on the thread. Call `getTenants`
or `searchTenants` first to discover tenant `id` (starts with `te_`) and
`externalId`. Each entry must set exactly one of `tenantId` or `externalId`;
omit the unused field or set it to null. Multiple entries are combined with
OR. Example:
tenantIdentifiers: [{ tenantId: "te_01..." }]
tenantIdentifiers: [{ tenantId: "te_01...", externalId: null }]
tenantIdentifiers: [{ externalId: "acme-prod" }]
Threads created before the customer was added to the tenant may be missing.
For a complete membership-based list, call `getCustomers` with
`tenantIdentifiers`, then `getThreads` with those customer `id`s.
Thread URL format: https://app.plain.com/workspace/{workspaceId}/thread/{threadId}/
where {threadId} is the thread `id` field on each result (starts with `th_`)
and {workspaceId} is fetched via `getMyWorkspace` (starts with `w_`). Do not
invent IDs — only use values returned by the MCP tools.