Skip to content

src/smoke-test.ts

53 lines · 1.0 KB · TypeScript
Raw
import {
	STRIPE_MCP_NAME,
	STRIPE_MCP_URL,
	stripeMcpSetupMessage,
	callStripeMcp,
	isStripeMcpConnected,
} from './mcp.ts'

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

	const probe = await callStripeMcp([
  "list_customers",
  "listCustomers",
  "list_products"
])
	return {
		ok: true,
		live: true,
		via: 'mcp',
		tool: probe?.tool ?? null,
		mcp: {
			name: STRIPE_MCP_NAME,
			url: STRIPE_MCP_URL,
			connected: true,
			setup: stripeMcpSetupMessage(),
		},
	}
}