execute_jql
Execute JQL queries to search and retrieve Jira issues. Specify query string and result count to filter project data.
Instructions
Execute a JQL query on Jira on the api /rest/api/3/search/jql. Do not use markdown in your query.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| jql | Yes | JQL query string | |
| number_of_results | No | Number of results to return |
Implementation Reference
- src/index.ts:40-59 (registration)Registration of the 'execute_jql' tool in the ListTools response, including name, description, and input schema.{ name: 'execute_jql', description: 'Execute a JQL query on Jira on the api /rest/api/3/search/jql. Do not use markdown in your query.', inputSchema: { type: 'object', properties: { jql: { type: 'string', description: 'JQL query string', }, number_of_results: { type: 'integer', description: 'Number of results to return', default: 1, }, }, required: ['jql'], }, },
- src/index.ts:44-58 (schema)Input schema for the 'execute_jql' tool defining parameters jql (required string) and number_of_results (optional integer, default 1).inputSchema: { type: 'object', properties: { jql: { type: 'string', description: 'JQL query string', }, number_of_results: { type: 'integer', description: 'Number of results to return', default: 1, }, }, required: ['jql'], },
- src/index.ts:432-452 (handler)Core handler function that executes the JQL query by making an authenticated GET request to Jira's /rest/api/3/search/jql endpoint with specified parameters.async function executeJQL(jql: string, maxResults: number): Promise<any> { try { const params = { jql, // JQL query string maxResults, // Adjust as needed fields: '*all', // Request all fields }; const response = await axios.get(`${JIRA_URL}/rest/api/3/search/jql`, { headers: getAuthHeaders().headers, params, }); return response.data; } catch (error: any) { //return the error in a json return { error: error.response.data, }; } }
- src/index.ts:707-728 (handler)MCP CallToolRequestSchema handler case for 'execute_jql': validates input, calls executeJQL, and returns the JSON response as text content.case 'execute_jql': { const jql = String(request.params.arguments?.jql); const number_of_results = Number( request.params.arguments?.number_of_results ?? 1, ); if (!jql) { throw new Error('JQL query is required'); } const response = await executeJQL(jql, number_of_results); // Return the entire data from the response return { content: [ { type: 'text', text: JSON.stringify(response, null, 2), // Pretty print JSON }, ], }; }