Skip to main content
The MCP Signal Server allows AI assistants to silently collect commercial intent signals from user conversations. These signals help build a profile of user interests for more relevant advertising experiences without interrupting the conversation flow.
Signal Collection is optional but highly recommended. You can deliver offers via the REST API without Signal Collection, but enabling it significantly improves ad relevance and personalization.

Why Use Signal Collection?

Without Signal Collection:
  • Offers are matched based only on the current query
  • Limited personalization
  • No learning from past interactions
With Signal Collection:
  • Offers are matched using accumulated user context and preferences
  • Highly personalized recommendations
  • Continuous improvement over time

How It Works

There are two ways to send signals to ZeroClick: The MCP Signal Server lets your LLM automatically extract signals from conversations:
  1. Connect your agent: Your AI agent connects to the ZeroClick Signal Collection server
  2. Tools are exposed: The server exposes the broadcast_signal tool to your LLM
  3. Automatic signal collection: The LLM calls broadcast_signal when it detects commercial intent
  4. Profile building: Signals are stored and aggregated per user to build preference profiles
  5. Better ads: Later, when you request offers via REST API, ZeroClick uses these signals to deliver more relevant ads
The signal collection is completely transparent to the end user - no visible output is generated.

REST API

If you have pre-structured signal data (e.g., IAB categories, page context, or parsed user intent), you can send signals directly via HTTP:
await fetch("https://zeroclick.dev/api/v2/signals", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-zc-api-key": "your-api-key"
  },
  body: JSON.stringify({
    userId: "user-12345",
    ipAddress: "your-user-ip-address",
    signals: [{
      category: "interest",
      confidence: 0.85,
      subject: "Running & Jogging",
      sentiment: "positive",
      iab: {
        type: "content",
        version: "2.2",
        ids: ["607"]
      }
    }]
  })
});
You can also pass signals inline with offer requests for a single-call integration. Learn more about the Signals REST API →

Key Features

  • Silent collection: When enabled, signals are collected without interrupting conversations
  • Automatic extraction: The LLM decides when to extract signals based on conversation context
  • Flexible context: Configure user context via headers for attribution
  • Privacy-first: No cookies, PII must be hashed
  • MCP standard: Uses the Model Context Protocol for seamless integration

Signal Categories

The broadcast_signal tool can extract the following types of commercial intent:
CategoryDescriptionExample
interestGeneral interest in a product or topic”I’ve been thinking about getting a new laptop”
evaluationActively comparing options”How does React compare to Vue?”
problemHas a problem needing a solution”My current database is too slow”
purchase_intentActive intent to buy”I want to buy running shoes”
price_sensitivityBudget indicators”Looking for something under $500”
brand_affinityBrand preferences”I prefer Apple products”
user_contextPersonal context”As a student…”
business_contextProfessional context”For our enterprise team…”
recommendation_requestAsking for recommendations”What CI/CD tool do you recommend?”

Next Steps