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
| 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.searchIssues
server.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 text
async ({ 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 endpoint
async searchIssues( filter: object, params?: PaginationParams, ): Promise<PaginatedResponse<Issue>> { return this.request<PaginatedResponse<Issue>>('POST', '/issues/search', { filter, limit: params?.limit, cursor: params?.cursor, }); }