import { atlassianMcpSetupMessage, callAtlassianMcp, firstArray } from './mcp.ts'
type SearchConfluenceInput = {
query?: string
cql?: string
limit?: number
}
export default async function searchConfluence(input: SearchConfluenceInput = {}) {
const query = input.query?.trim() || input.cql?.trim() || ''
const mcp = await callAtlassianMcp(
[
'searchConfluenceUsingCql',
'search_confluence_using_cql',
'getConfluencePage',
'search',
],
{
cql: input.cql?.trim() || (query ? `text ~ "${query.replaceAll('"', '\\"')}"` : undefined),
query,
limit: input.limit ?? 10,
},
)
if (!mcp) {
throw new Error(atlassianMcpSetupMessage())
}
return {
via: 'mcp',
tool: mcp.tool,
pages: firstArray(mcp.result) ?? mcp.result,
}
}