Skip to content

src/smoke-test.ts

53 lines · 1.0 KB · TypeScript
Raw
import {
	SENTRY_MCP_NAME,
	SENTRY_MCP_URL,
	sentryMcpSetupMessage,
	callSentryMcp,
	isSentryMcpConnected,
} from './mcp.ts'

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

	const probe = await callSentryMcp([
  "list_organizations",
  "listOrganizations",
  "whoami"
])
	return {
		ok: true,
		live: true,
		via: 'mcp',
		tool: probe?.tool ?? null,
		mcp: {
			name: SENTRY_MCP_NAME,
			url: SENTRY_MCP_URL,
			connected: true,
			setup: sentryMcpSetupMessage(),
		},
	}
}