UNPKG

@aashari/mcp-server-atlassian-confluence

Version:

Node.js/TypeScript MCP server for Atlassian Confluence. Provides tools enabling AI systems (LLMs) to list/get spaces & pages (content formatted as Markdown) and search via CQL. Connects AI seamlessly to Confluence knowledge bases using the standard MCP in

39 lines (38 loc) 1.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const error_util_js_1 = require("../utils/error.util.js"); const logger_util_js_1 = require("../utils/logger.util.js"); const transport_util_js_1 = require("../utils/transport.util.js"); const API_PATH = '/wiki/rest/api/search'; /** * Search Confluence content using CQL * @param params Search parameters * @returns Search results */ async function search(params) { const serviceLogger = logger_util_js_1.Logger.forContext('services/vendor.atlassian.search.service.ts', 'search'); serviceLogger.debug('Searching Confluence with params:', params); const credentials = (0, transport_util_js_1.getAtlassianCredentials)(); if (!credentials) { throw (0, error_util_js_1.createAuthMissingError)('Atlassian credentials are required for this operation'); } const queryParams = new URLSearchParams({ cql: params.cql }); if (params.cqlcontext) queryParams.set('cqlcontext', params.cqlcontext); if (params.cursor) queryParams.set('cursor', params.cursor); if (params.limit !== undefined) queryParams.set('limit', params.limit.toString()); if (params.start !== undefined) queryParams.set('start', params.start.toString()); if (params.includeArchivedSpaces !== undefined) queryParams.set('includeArchivedSpaces', params.includeArchivedSpaces.toString()); if (params.excludeCurrentSpaces !== undefined) queryParams.set('excludeCurrentSpaces', params.excludeCurrentSpaces.toString()); if (params.excerpt) queryParams.set('excerpt', params.excerpt); const path = `${API_PATH}?${queryParams.toString()}`; serviceLogger.debug('Sending request to:', path); return (0, transport_util_js_1.fetchAtlassian)(credentials, path); } exports.default = { search };