Skip to main content
Glama

search_issues

Find Jira issues using JQL queries to locate specific tickets by project, status, assignee, or custom criteria. Returns issue keys and titles for quick identification.

Instructions

Search for Jira issues using JQL (Jira Query Language). Returns issue keys and titles. Use get_issue for full details.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
jqlYesJQL query string (e.g., "project = PROJ AND status = Open")
maxResultsNoMaximum number of results to return (default: 50)

Implementation Reference

  • The handleSearchIssues method in SearchHandlers class executes the tool logic: parses JQL and maxResults, calls Jira API /search/jql endpoint, formats markdown response with issue keys and summaries, handles errors.
    async handleSearchIssues(args: any) { try { const { jql, maxResults = 50 } = args; if (!jql) { throw new Error('jql query is required'); } // Use POST with fields parameter to get key and summary const requestBody = { jql, maxResults, fields: ['summary'], // Only get summary, key is always included }; const result = await this.apiClient.post('/search/jql', requestBody); // Format response with key and title let response = `# Search Results\n\n**JQL**: ${jql}\n\n`; response += `Found ${result.issues.length} issue(s)${result.isLast ? '' : ' (more available)'}\n\n`; if (result.issues && result.issues.length > 0) { result.issues.forEach((issue: any) => { const key = issue.key; const summary = issue.fields?.summary || 'No summary'; response += `- **${key}**: ${summary}\n`; }); response += `\n💡 Use \`get_issue\` with issue key to get full details.`; // Add pagination info if (!result.isLast && result.nextPageToken) { response += `\n\n**More results available** - ${result.issues.length} shown.`; } } else { response += `No issues found matching the query.`; } return { content: [ { type: 'text', text: response, }, ], }; } catch (error: any) { return { content: [ { type: 'text', text: JiraFormatters.formatError(error), }, ], isError: true, }; } }
  • Defines the tool name, description, and input schema (JQL required, maxResults optional) used for tool listing and validation.
    name: 'search_issues', description: 'Search for Jira issues using JQL (Jira Query Language). Returns issue keys and titles. Use get_issue for full details.', inputSchema: { type: 'object', properties: { jql: { type: 'string', description: 'JQL query string (e.g., "project = PROJ AND status = Open")', }, maxResults: { type: 'number', description: 'Maximum number of results to return (default: 50)', }, }, required: ['jql'], }, },
  • src/index.ts:108-109 (registration)
    Registers the tool call dispatch in the MCP server request handler switch statement, routing 'search_issues' calls to the SearchHandlers.handleSearchIssues method.
    case 'search_issues': return this.searchHandlers.handleSearchIssues(request.params.arguments);

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pdogra1299/jira-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server