import {
CANVA_MCP_NAME,
CANVA_MCP_URL,
canvaMcpSetupMessage,
callCanvaMcp,
isCanvaMcpConnected,
} from './mcp.ts'
/**
* Probe whether the canva MCP server is connected; return setup guidance when not.
* @returns Structured helper result for agents.
* @example
* import smokeTest from 'kody:@kody/canva-mcp/smoke-test'
* const result = await smokeTest()
* // => { ... }
*/
export default async function smokeTest() {
if (!isCanvaMcpConnected()) {
return {
ok: true,
live: false,
via: null,
setup: {
preferred: 'mcp',
mcp: {
name: CANVA_MCP_NAME,
url: CANVA_MCP_URL,
connected: false,
setup: canvaMcpSetupMessage(),
},
oauthApiFallback: 'https://kody.codes/@kody/canva',
},
}
}
const probe = await callCanvaMcp([
"list_designs",
"listDesigns",
"list_folders"
])
return {
ok: true,
live: true,
via: 'mcp',
tool: probe?.tool ?? null,
mcp: {
name: CANVA_MCP_NAME,
url: CANVA_MCP_URL,
connected: true,
setup: canvaMcpSetupMessage(),
},
}
}