pylon_search_issues
Search and filter customer support issues in Pylon using criteria like status, assignee, tags, or creation date to find specific tickets.
Instructions
Search issues with filters
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| filter | Yes | Filter object for searching issues | |
| limit | No | Results limit | |
| cursor | No | Pagination cursor |
Implementation Reference
- src/index.ts:395-422 (registration)Registration of the 'pylon_search_issues' MCP tool, including inline schema and thin handler wrapper around PylonClient.searchIssuesserver.tool( 'pylon_search_issues', 'Search issues with filters', { filter: z .object({ created_at: z.object({}).optional(), account_id: z.object({}).optional(), requester_id: z.object({}).optional(), state: z.object({}).optional(), tags: z.object({}).optional(), title: z.object({}).optional(), assignee_id: z.object({}).optional(), team_id: z.object({}).optional(), issue_type: z.object({}).optional(), }) .passthrough() .describe('Filter object for searching issues'), limit: z.number().min(1).max(1000).optional().describe('Results limit'), cursor: z.string().optional().describe('Pagination cursor'), }, async ({ filter, limit, cursor }) => { const result = await client.searchIssues(filter, { limit, cursor }); return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }], }; }, );
- src/index.ts:398-415 (schema)Zod input schema definition for the pylon_search_issues tool{ filter: z .object({ created_at: z.object({}).optional(), account_id: z.object({}).optional(), requester_id: z.object({}).optional(), state: z.object({}).optional(), tags: z.object({}).optional(), title: z.object({}).optional(), assignee_id: z.object({}).optional(), team_id: z.object({}).optional(), issue_type: z.object({}).optional(), }) .passthrough() .describe('Filter object for searching issues'), limit: z.number().min(1).max(1000).optional().describe('Results limit'), cursor: z.string().optional().describe('Pagination cursor'), },
- src/index.ts:416-422 (handler)MCP tool handler: wraps PylonClient.searchIssues and formats response as textasync ({ filter, limit, cursor }) => { const result = await client.searchIssues(filter, { limit, cursor }); return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }], }; }, );
- src/pylon-client.ts:330-339 (helper)PylonClient.searchIssues method: core implementation that POSTs filter params to /issues/search API endpointasync searchIssues( filter: object, params?: PaginationParams, ): Promise<PaginatedResponse<Issue>> { return this.request<PaginatedResponse<Issue>>('POST', '/issues/search', { filter, limit: params?.limit, cursor: params?.cursor, }); }