import {
NOTION_MCP_NAME,
NOTION_MCP_URL,
notionMcpSetupMessage,
callNotionMcp,
isNotionMcpConnected,
} from './mcp.ts'
/**
* Probe whether the notion MCP server is connected; return setup guidance when not.
* @returns Structured helper result for agents.
* @example
* import smokeTest from 'kody:@kody/notion-mcp/smoke-test'
* const result = await smokeTest()
* // => { ... }
*/
export default async function smokeTest() {
if (!isNotionMcpConnected()) {
return {
ok: true,
live: false,
via: null,
setup: {
preferred: 'mcp',
mcp: {
name: NOTION_MCP_NAME,
url: NOTION_MCP_URL,
connected: false,
setup: notionMcpSetupMessage(),
},
oauthApiFallback: 'https://kody.codes/@kody/notion',
},
}
}
const probe = await callNotionMcp([
"search",
"API-get-user",
"get-self"
])
return {
ok: true,
live: true,
via: 'mcp',
tool: probe?.tool ?? null,
mcp: {
name: NOTION_MCP_NAME,
url: NOTION_MCP_URL,
connected: true,
setup: notionMcpSetupMessage(),
},
}
}