Skip to content
← Public packages

@kody/atlassian

Read Jira and Confluence through the official Atlassian MCP server, with Jira OAuth or API-token fallback.

src/smoke-test.ts

57 lines · 1.2 KB · TypeScript
Raw
import {
	ATLASSIAN_MCP_NAME,
	ATLASSIAN_MCP_URL,
	atlassianMcpSetupMessage,
	callAtlassianMcp,
	isAtlassianMcpConnected,
} from './mcp.ts'

/**
 * Probe whether the atlassian MCP server is connected; return setup guidance when not.
 * @returns Structured helper result for agents.
 * @example
 * import smokeTest from 'kody:@kody/atlassian/smoke-test'
 * const result = await smokeTest()
 * // => { ... }
 */
export default async function smokeTest() {
	if (!isAtlassianMcpConnected()) {
		return {
			ok: true,
			live: false,
			via: null,
			setup: {
				preferred: 'mcp',
				mcp: {
					name: ATLASSIAN_MCP_NAME,
					url: ATLASSIAN_MCP_URL,
					connected: false,
					setup: atlassianMcpSetupMessage(),
				},
				fallback: 'https://kody.codes/@kody/jira',
			},
		}
	}

	const probe = await callAtlassianMcp(
		[
			'getAccessibleAtlassianResources',
			'getVisibleJiraProjects',
			'searchJiraIssuesUsingJql',
			'search',
		],
		{ jql: 'order by updated DESC', maxResults: 1 },
	)
	return {
		ok: true,
		live: true,
		via: 'mcp',
		tool: probe?.tool ?? null,
		mcp: {
			name: ATLASSIAN_MCP_NAME,
			url: ATLASSIAN_MCP_URL,
			connected: true,
			setup: atlassianMcpSetupMessage(),
		},
	}
}