# Lulu > Lulu Ads is the monetization and distribution layer for MCP servers and AI agents: a supply-side SDK that adds one disclosed, labeled sponsored line to tool responses, mediated demand behind it, quality-gated by Dali. 70% rev share, CPA only, fail-open by design. ## Lulu Ads Lulu Ads attaches a disclosed, labeled data field — `{"sponsored": {"label": "Sponsored", "text": ..., "url": ...}}` — to your own tool's result. The host model decides on its own judgment whether to surface it; the SDK never instructs it to. In production tests, Claude rendered the field natively on its own judgment, with zero display directives anywhere in the pipeline — that's the whole design bet: ship a data field, not an instruction. **Guarantees, enforced in code, not just promised:** - A tool call can never break because of ads — every failure path (missing creds, network error, non-200/204, malformed body, timeout) returns `None`/`null`; nothing raises. - Always disclosed — `label: "Sponsored"` is set by the SDK, never sourced from the response body's own framing. - No prompt injection, ever — a plain data object, no field anywhere in the contract that tells a model how to render or phrase anything. - No PII leaves your server — `context` is filtered against a six-key allowlist (`tool`, `category`, `query`, `route`, `locale`, `country`) client-side, before any request is built. - Quality-gated — every creative passes Dali scoring (≥70) before it's eligible to fill a slot. - Intent, not identity — targeting uses this call's stated context only; no user profiles, no cross-session identifier. - Misconfigured is still safe — a publisher with no valid `api_key` never reaches `/slot`; the client short-circuits to `None`/`null` with zero network calls. Docs: https://getlulu.dev/docs · Agent-readable: https://getlulu.dev/docs.md · Coding-agent install file: https://getlulu.dev/install.md · Become a publisher: https://getlulu.dev/publishers · Advertise: https://getlulu.dev/advertisers · Source: https://github.com/Lulu-The-Narwhal/lulu-ads ## Integration in one line Zero-friction (recommended) — add the MCP server and let an agent do the rest: ```bash claude mcp add --transport http lulu-ads https://ads.getlulu.dev/mcp ``` Then say "monetize my server." Manual path: ```bash pip install lulu-ads # Python npm install lulu-ads # TypeScript ``` ```python mcp.add_middleware(LuluAdsMiddleware()) # FastMCP, credentials from env vars ``` ## Dali (open source) Dali by Lulu (dali.getlulu.dev) scores and rewrites generation prompts for 7 AI models (Imagen, Veo, Seedance, Kling, Higgsfield and more). It's an MCP server — plug it into any agent. Dali is also the quality gate behind Lulu Ads: every advertiser creative must clear a Dali score of 70+ before it's eligible to fill a sponsored slot, so publishers never carry low-quality or off-brand ads. ## Lulu for Brands Lulu also runs as an autonomous growth team for DTC brands — paste your store's URL and meet a crew of specialist AI agents (a marketing optimizer, a creative director, a research analyst) that read your ad account, propose guardrailed optimizations, and generate on-brand creative, all gated on your one-tap approval. See https://getlulu.dev/growth for the full pitch, or go straight to the platform at https://app.getlulu.dev. ## Links - Docs: https://getlulu.dev/docs - Docs (markdown): https://getlulu.dev/docs.md - Install (for coding agents): https://getlulu.dev/install.md - Publishers: https://getlulu.dev/publishers - Advertisers: https://getlulu.dev/advertisers - Growth (Lulu for Brands): https://getlulu.dev/growth - Platform app: https://app.getlulu.dev - Ads API: https://ads.getlulu.dev - Ads MCP server: https://ads.getlulu.dev/mcp - Dali: https://dali.getlulu.dev - GitHub: https://github.com/Lulu-The-Narwhal/lulu-ads