UNPKG

@aashari/mcp-server-atlassian-jira

Version:

Node.js/TypeScript MCP server for Atlassian Jira. Equips AI systems (LLMs) with tools to list/get projects, search/get issues (using JQL/ID), and view dev info (commits, PRs). Connects AI capabilities directly into Jira project management and issue tracki

53 lines (52 loc) 2.16 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const logger_util_js_1 = require("../utils/logger.util.js"); const error_handler_util_js_1 = require("../utils/error-handler.util.js"); const defaults_util_js_1 = require("../utils/defaults.util.js"); const atlassian_issues_controller_js_1 = __importDefault(require("./atlassian.issues.controller.js")); /** * Search for Jira issues using JQL * * @param {SearchOptions} options - Options for the search * @returns {Promise<ControllerResponse>} Formatted search results in Markdown */ async function search(options = {}) { const controllerLogger = logger_util_js_1.Logger.forContext('controllers/atlassian.search.controller.ts', 'search'); controllerLogger.debug('Searching Jira content with options:', options); try { // Apply defaults to options const mergedOptions = (0, defaults_util_js_1.applyDefaults)(options, { limit: defaults_util_js_1.DEFAULT_PAGE_SIZE, jql: '', }); // Search issues using the issues controller const result = await atlassian_issues_controller_js_1.default.list({ jql: mergedOptions.jql, limit: mergedOptions.limit, cursor: mergedOptions.cursor, }); // Format the search results const formattedContent = `# Jira Search Results\n\n${mergedOptions.jql ? `**JQL Query:** \`${mergedOptions.jql}\`\n\n` : ''}${result.content}`; controllerLogger.debug('Successfully retrieved and formatted search results', { count: result.pagination?.count, hasMore: result.pagination?.hasMore, }); return { content: formattedContent, pagination: result.pagination, }; } catch (error) { return (0, error_handler_util_js_1.handleControllerError)(error, { source: 'Jira', operation: 'search', entityType: 'issues', }); } } exports.default = { search, };