jira_search_issues
Search Jira issues using JQL queries to find specific tickets, filter results by criteria, and retrieve relevant issue data for project tracking and management.
Instructions
Search for Jira issues using JQL
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| jql | Yes | JQL query string | |
| startAt | No | Starting index | |
| maxResults | No | Maximum results to return | |
| fields | No | Fields to include |
Implementation Reference
- src/index.ts:935-947 (handler)MCP tool handler for 'jira_search_issues': validates arguments using schema, invokes JiraClient.searchIssues method, and serializes results as JSON.case "jira_search_issues": { const { jql, startAt, maxResults, fields } = SearchIssuesSchema.parse(args); const results = await jiraClient.searchIssues( jql, startAt, maxResults, fields ); return { content: [{ type: "text", text: JSON.stringify(results, null, 2) }], }; }
- src/index.ts:41-50 (schema)Zod schema defining input parameters for the jira_search_issues tool.const SearchIssuesSchema = z.object({ jql: z.string().describe("JQL query string"), startAt: z.number().optional().default(0).describe("Starting index"), maxResults: z .number() .optional() .default(50) .describe("Maximum results to return"), fields: z.array(z.string()).optional().describe("Fields to include"), });
- src/index.ts:230-250 (registration)Tool registration metadata exposed via ListToolsRequestHandler, including name, description, and input schema.{ name: "jira_search_issues", description: "Search for Jira issues using JQL", inputSchema: { type: "object", properties: { jql: { type: "string", description: "JQL query string" }, startAt: { type: "number", description: "Starting index" }, maxResults: { type: "number", description: "Maximum results to return", }, fields: { type: "array", items: { type: "string" }, description: "Fields to include", }, }, required: ["jql"], }, },
- src/jira-client.ts:88-116 (helper)JiraClient method implementing the core search logic: POST request to Jira REST API /search endpoint with JQL query and pagination.async searchIssues( jql: string, startAt = 0, maxResults = 50, fields?: string[] ): Promise<JiraSearchResult> { return this.request<JiraSearchResult>("/search", { method: "POST", body: JSON.stringify({ jql, startAt, maxResults, fields: fields || [ "summary", "status", "assignee", "reporter", "priority", "created", "updated", "issuetype", "project", "description", "labels", "components", ], }), }); }