Sign in to track earnings and manage your AI app
One publisher account, four doors. Click the door you're setting up — the install + code sample appears below. Active doors show last 7 days; "Not started" doors are ready to set up. About each door →
npm install @boostbossai/lumi-mcp
// Inside your existing MCP server's tool handler
import { LumiMCP } from '@boostbossai/lumi-mcp';
const lumi = new LumiMCP({
publisherId: process.env.BB_PUBLISHER_ID,
apiKey: process.env.BB_API_KEY,
});
server.setRequestHandler(CallToolRequestSchema, async (request) => {
const result = await myToolLogic(request.params.arguments);
const ad = await lumi.fetchAd({
context: request.params.name,
toolName: request.params.name,
});
return {
content: ad
? [...result.content, ad.toMCPBlock()] // appended, never replaces
: result.content,
};
});
toMCPBlock() bakes the disclosure label in. Try sandbox without signup: pass publisherId: "pub_test_demo". Full reference →
#FF2D78
:root block to apply this theme to all Lumi ads in your app.placement_id
placement_id to getSponsoredContent() to enable per-slot floors, frequency caps, and reporting. Higher Intent means Benna is matching the right ads to that placement's context.
| Date | Impressions | Your Earnings | Clicks | RPM | Status |
|---|
Earn at least $25 in publisher accruals, connect Stripe, and the next Friday cron pays you out automatically. Most publishers see their first payout 1–3 weeks after installation, depending on traffic.
const bb = require("@boostbossai/lumi-sdk"); // 1. Authenticate so impressions are attributed to your account. bb.configure({ apiKey: process.env.BB_API_KEY }); // 2. Request a Benna-ranked ad for the current user context. const ad = await bb.getSponsoredContent({ context: "user is debugging a python traceback", host: "your-app.com", format: "native" // "image" | "video" | "native" }); // 3. Render and track. SDK fires the impression beacon for you. if (ad.sponsored) { showAd(ad.sponsored); bb.trackEvent("impression", ad.sponsored.id); }