Skip to main content
Glama
nicofains1

Agentic Ads

by nicofains1

Agentic Ads

Google AdSense для AI-агентов. Добавьте 3 строки кода в ваш MCP-сервер. Зарабатывайте 70% с каждого клика по рекламе.

npm version Tests License: MIT MCP Node

Живое демо · Быстрый старт · MCP-инструменты · Собственный хостинг


Быстрый старт

Шаг 1 — Зарегистрируйтесь и получите API-ключ (30 секунд):

Посетите веб-форму: https://agentic-ads-production.up.railway.app/dev/register

Или используйте API напрямую:

curl -X POST https://agentic-ads-production.up.railway.app/api/register \
  -H "Content-Type: application/json" \
  -d '{"name": "My MCP Bot", "email": "me@example.com", "project_description": "A coding assistant that recommends dev tools"}'
# Returns: { "api_key": "aa_dev_...", "mcp_url": "https://agentic-ads-production.up.railway.app/mcp" }

Шаг 2 — Добавьте в конфигурацию вашего MCP-клиента:

{
  "mcpServers": {
    "agentic-ads": {
      "url": "https://agentic-ads-production.up.railway.app/mcp",
      "transport": "http"
    }
  }
}

Шаг 3 — Вызовите search_ads в вашем агенте и зарабатывайте на каждом клике:

// In your agent logic — when context is relevant
const ads = await mcp.callTool({
  name: 'search_ads',
  arguments: { query: 'best running shoes for marathon', max_results: 1 }
});

// Report events to get paid
await mcp.callTool({
  name: 'report_event',
  arguments: { ad_id: ads[0].ad_id, event_type: 'impression' }
});
// User clicks → report 'click' → you earn $0.35 on a $0.50 CPC ad

Вот и всё. Вы начали монетизировать.


Related MCP server: AdKit MCP Server

Зачем это нужно

Вы создали отличный MCP-сервер. Пользователи его обожают. Но вы не зарабатываете денег.

agentic-ads — это недостающий слой монетизации для экосистемы MCP. Это как Google AdSense, но для AI-агентов вместо веб-сайтов.

Проблема

  • Существует более 16 000 MCP-серверов. Почти ни один не монетизируется.

  • Разработчики тратят недели на создание полезных инструментов, зарабатывая $0.

  • Пользователи просят агентов порекомендовать товары → агенты скрапят веб → бренды не могут до них добраться.

Решение

Контекстная реклама, уважающая конфиденциальность, предоставляемая через MCP-инструменты. Разработчики получают 70% доли дохода (лучший показатель в отрасли). Рекламодатели достигают пользователей AI-агентов. Все в выигрыше.


Калькулятор дохода

Пример: Ваш MCP-сервер получает 10 000 запросов/месяц, где уместна реклама.

Сценарий

Показов/мес

CTR

Кликов/мес

CPC

Ваш доход

Консервативный

10 000

2%

200

$0.50

$70/мес

Реалистичный

10 000

5%

500

$0.50

$175/мес

Высокий

10 000

8%

800

$0.75

$420/мес

При 100 000 запросов/месяц с CTR 5%: $1 750/месяц пассивного дохода.

Это $21 000/год за добавление 3 строк кода в ваш MCP-сервер.


Подробное руководство по интеграции

Для разработчиков MCP (Зарабатывайте деньги)

Подключите живой сервер и начинайте вызывать инструменты — без процесса утверждения, без минимальных сумм.

// 1. When user asks about products/services
const ads = await mcp.callTool({
  name: 'search_ads',
  arguments: {
    query: 'best running shoes for marathon',
    max_results: 2
  }
});

// 2. Show relevant ad in your response (if it adds value)
// 3. Report impression
await mcp.callTool({
  name: 'report_event',
  arguments: { ad_id: 'ad_xyz', event_type: 'impression' }
});

// 4. If user clicks → report 'click' event
// You earn $0.35 on a $0.50 CPC click (70% revenue share)

Для рекламодателей (Достигайте пользователей AI)

# Create campaign + ad via MCP tools
mcp.callTool({
  name: 'create_campaign',
  arguments: {
    name: 'Q1 Running Shoes',
    total_budget: 500,
    pricing_model: 'cpc',
    bid_amount: 0.50
  }
});

mcp.callTool({
  name: 'create_ad',
  arguments: {
    campaign_id: 1,
    creative_text: 'Ultraboost 24 — 30% off! Free shipping.',
    link_url: 'https://adidas.com/ultraboost',
    keywords: ['running shoes', 'sneakers', 'marathon'],
    category: 'footwear'
  }
});

# Monitor analytics
mcp.callTool({ name: 'get_campaign_analytics', arguments: { campaign_id: 1 } });

Как это работает

┌─────────────┐                    ┌──────────────────┐                    ┌──────────────┐
│  Advertiser  │────────────────────│  Agentic Ads MCP │────────────────────│  Your MCP     │
│  (Brand/API) │  create_campaign   │     Server       │  search_ads        │  Server       │
│              │  create_ad         │                  │  report_event      │               │
│              │  get_analytics     │  - Matching      │  get_guidelines    │  Shows ads    │
└─────────────┘                    │  - Billing       │                    │  to users     │
                                   │  - Auth & Rate   │                    └──────────────┘
                                   │  - Analytics     │
                                   └──────────────────┘

Пример потока:

  1. Пользователь спрашивает вашего агента: "лучшие кроссовки для марафона"

  2. Ваш агент вызывает search_ads → получает релевантные объявления, ранжированные по ставке × релевантности

  3. Агент естественно показывает рекламу: "Ultraboost 24 — $126 (скидка 30%) на Adidas.com (Реклама)"

  4. Пользователь кликает → вы сообщаете о событии click → вы зарабатываете $0.35 (70% от $0.50 CPC)

Конфиденциальность: Никакого отслеживания пользователей, профилирования или куки. Только контекстное сопоставление ключевых слов.


Почему разработчики MCP это любят

1. Лучшая в отрасли доля дохода

70% вам, 30% платформе. Сравните:

Платформа

Доля разработчика

agentic-ads

70%

Google AdSense

68%

Amazon Associates

1-10%

Партнерские сети

5-30%

2. Никаких сложностей с настройкой

  • Никаких контрактов, минимальных сумм или задержек с утверждением

  • Регистрация за секунды через POST /api/register → получите ваш API-ключ

  • Добавьте 1 MCP-сервер в вашу конфигурацию → начните зарабатывать через 5 минут

3. С уважением к конфиденциальности

  • Никакого отслеживания или профилирования пользователей

  • Никаких куки, никакой цифровой идентификации браузера

  • Только контекстное сопоставление ключевых слов (как ранний Google AdWords)

  • Конфиденциальность ваших пользователей остается нетронутой

4. Вы контролируете, какая реклама показывается

  • Агент решает, какую рекламу (если вообще) показывать

  • Полный контекст пользователя остается локальным (никогда не отправляется на рекламный сервер)

  • Порог релевантности в ваших руках

  • Пользователи могут отказаться ("без рекламы, пожалуйста")

5. Прозрачная аналитика

  • Отслеживание дохода в реальном времени

  • Видите точно, сколько вы заработали, когда и почему

  • Никаких алгоритмов "черного ящика" или скрытых комиссий


MCP-инструменты (всего 8)

Для разработчиков (Сторона потребителя) — 3 инструмента

Инструмент

Аутентификация

Описание

search_ads

Публичный

Поиск рекламы по запросу/ключевым словам/категории/гео. Возвращает ранжированные результаты с оценками релевантности.

report_event

Ключ разработчика

Сообщение о событиях показов/кликов/конверсий. Запускает расчет дохода.

get_ad_guidelines

Публичный

Получение рекомендаций по форматированию для естественного показа рекламы пользователям.

Для рекламодателей (Сторона издателя) — 5 инструментов

Инструмент

Аутентификация

Описание

create_campaign

Ключ рекламодателя

Создание кампании с бюджетом, целью, моделью ценообразования (CPC/CPM/CPA).

create_ad

Ключ рекламодателя

Создание объявления с креативным текстом, ключевыми словами, таргетингом, ссылкой.

get_campaign_analytics

Ключ рекламодателя

Получение метрик эффективности (показы, клики, конверсии, расходы, ROI).

update_campaign

Ключ рекламодателя

Обновление кампании (пауза/возобновление, корректировка бюджета, изменение таргетинга).

list_campaigns

Ключ рекламодателя

Список всех кампаний со сводной статистикой, опциональный фильтр по статусу.


Модели ценообразования

Выберите, как вы хотите платить (рекламодатели) или зарабатывать (разработчики):

Модель

Рекламодатель платит

Разработчик зарабатывает (70%)

Когда списывается

CPC (Клик)

$0.50 за клик

$0.35

Пользователь кликает по ссылке объявления

CPM (Показ)

$5.00 за 1000 показов

$3.50

Реклама показана пользователю

CPA (Конверсия)

$10.00 за конверсию

$7.00

Пользователь совершает действие (покупка, регистрация и т.д.)

Контроль бюджета: Установите общий бюджет + дневные лимиты. Автоматическая пауза при исчерпании бюджета.


Получение вашего API-ключа

Для вызова report_event или инструментов рекламодателя вам нужен API-ключ.

Вариант A — Веб-форма (самый простой):

Посетите https://agentic-ads-production.up.railway.app/dev/register и заполните свои данные. Ваш API-ключ отобразится немедленно.

Вариант B — API:

curl -X POST https://agentic-ads-production.up.railway.app/api/register \
  -H "Content-Type: application/json" \
  -d '{"name": "My MCP Bot", "email": "me@example.com", "project_description": "A coding assistant"}'

Ответ:

{
  "developer_id": "...",
  "api_key": "aa_dev_...",
  "mcp_url": "https://agentic-ads-production.up.railway.app/mcp"
}

Поле

Обязательно

Описание

name

Да

Название вашего проекта или бота

email

Да

Контактный email

project_description

Нет

Краткое описание вашего MCP-сервера (макс. 500 символов)

Используйте api_key в заголовке Authorization: Authorization: Bearer aa_dev_...

Развернуто на Railway с постоянным хранилищем: Живой сервер на agentic-ads-production.up.railway.app работает на Railway с постоянным томом — данные сохраняются между развертываниями и перезапусками. Для самостоятельного хостинга используйте DATABASE_PATH=/data/ads.db, указывая на смонтированный том.


Установка

Вариант 1: Подключение к живому серверу (Самый простой)

Добавьте в конфигурацию вашего MCP-клиента (Claude Desktop, Cursor, Windsurf и т.д.):

{
  "mcpServers": {
    "agentic-ads": {
      "url": "https://agentic-ads-production.up.railway.app/mcp",
      "transport": "http"
    }
  }
}

Проверка работоспособности: https://agentic-ads-production.up.railway.app/health

Вариант 2: Локальный stdio (Разработка)

npm install -g agentic-ads

# Add to MCP config
{
  "mcpServers": {
    "agentic-ads": {
      "command": "npx",
      "args": ["agentic-ads", "--stdio"]
    }
  }
}

Вариант 3: Собственный хостинг (Продакшн)

git clone https://github.com/nicofains1/agentic-ads.git
cd agentic-ads
npm install && npm run build

# Start HTTP server
PORT=19877 npm run start:http

# Or stdio
npm run start:stdio

Флаги:

node dist/server.js --http --port 19877 --db ./ads.db

Флаг

По умолчанию

Описание

--http

Запуск HTTP-сервера (по умолчанию stdio)

--port N

3000

HTTP-порт

--db PATH

agentic-ads.db

Путь к базе данных SQLite

--api-key KEY

Предварительная аутентификация сессий stdio

Переменные окружения:

PORT=19877                     # HTTP server port (alternative to --port)
DATABASE_PATH=/data/ads.db     # SQLite database path (default: agentic-ads.db)
AGENTIC_ADS_API_KEY=aa_dev_... # Developer API key for stdio mode

Постоянство БД: Установите DATABASE_PATH в путь на постоянном томе. При первом запуске с пустой БД демо-кампании автоматически заполняются. См. DEPLOY.md для полного руководства по развертыванию (Railway рекомендуется для бесплатного постоянного хранилища).


Примеры интеграции

Claude Desktop

Добавьте в ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "agentic-ads": {
      "command": "npx",
      "args": ["agentic-ads", "--stdio"]
    }
  }
}

Cursor / Windsurf

{
  "mcpServers": {
    "agentic-ads": {
      "url": "https://agentic-ads-production.up.railway.app/mcp",
      "transport": "http"
    }
  }
}

Пользовательский TypeScript-агент

import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';

const transport = new StdioClientTransport({
  command: 'npx',
  args: ['agentic-ads', '--stdio']
});

const client = new Client({ name: 'my-agent', version: '1.0.0' });
await client.connect(transport);

// Search for ads
const result = await client.callTool({
  name: 'search_ads',
  arguments: {
    query: 'best laptops for coding',
    keywords: ['laptop', 'programming'],
    category: 'electronics',
    max_results: 3
  }
});

console.log(result.content[0].text);
// Returns: { "ads": [ { "ad_id": "...", "creative_text": "...", "relevance_score": 0.87 } ] }

Управление сессиями Streamable HTTP

При вызове живого сервера через HTTP вы должны управлять MCP-сессиями вручную. Вот полный пример с использованием raw fetch:

const BASE = "https://agentic-ads-production.up.railway.app";
const API_KEY = "aa_dev_..."; // from /api/register

const headers = {
  "Content-Type": "application/json",
  "Accept": "application/json, text/event-stream",
  "Authorization": `Bearer ${API_KEY}`,
};

// 1. Initialize — get a session ID
const initRes = await fetch(`${BASE}/mcp`, {
  method: "POST",
  headers,
  body: JSON.stringify({
    jsonrpc: "2.0", id: 1, method: "initialize",
    params: {
      protocolVersion: "2024-11-05",
      capabilities: {},
      clientInfo: { name: "my-agent", version: "1.0.0" },
    },
  }),
});
const sessionId = initRes.headers.get("mcp-session-id");

// 2. Send initialized notification (required by MCP spec)
await fetch(`${BASE}/mcp`, {
  method: "POST",
  headers: { ...headers, "mcp-session-id": sessionId },
  body: JSON.stringify({
    jsonrpc: "2.0", method: "notifications/initialized", params: {},
  }),
});

// 3. Call tools — pass session ID on every request
const res = await fetch(`${BASE}/mcp`, {
  method: "POST",
  headers: { ...headers, "mcp-session-id": sessionId },
  body: JSON.stringify({
    jsonrpc: "2.0", id: 2, method: "tools/call",
    params: { name: "search_ads", arguments: { query: "running shoes", max_results: 2 } },
  }),
});

// 4. Parse response (SSE format: "event: message\ndata: {...}")
const text = await res.text();
const dataLine = text.split("\n").find((l) => l.startsWith("data:"));
const result = JSON.parse(dataLine.slice(5));
console.log(result.result.content[0].text);

Ключевые моменты:

  • Заголовок mcp-session-id возвращается при initialize и должен отправляться во всех последующих запросах

  • Аутентификация (Authorization: Bearer ...) устанавливается для каждой сессии — все вызовы инструментов в этой сессии наследуют её

  • Сервер использует формат SSE (Server-Sent Events) — парсите строку data: из ответа

  • См. examples/demo-mcp-server для полного рабочего примера


Архитектура

┌─────────────────────────────────────────────────────────────┐
│  MCP Server (Node.js 22 + TypeScript)                       │
│  ┌───────────────┐  ┌──────────────┐  ┌─────────────────┐  │
│  │ Tool Registry │  │ Auth & Rate  │  │ Matching Engine │  │
│  │ (8 tools)     │  │ Limiting     │  │ (relevance²     │  │
│  │               │  │ (SHA-256)    │  │ × bid × quality)│  │
│  └───────────────┘  └──────────────┘  └─────────────────┘  │
│  ┌───────────────┐  ┌──────────────┐  ┌─────────────────┐  │
│  │ SQLite (WAL)  │  │ Revenue      │  │ Analytics       │  │
│  │ - Campaigns   │  │ Split Engine │  │ (real-time)     │  │
│  │ - Ads         │  │ (70/30)      │  │                 │  │
│  │ - Events      │  │              │  │                 │  │
│  └───────────────┘  └──────────────┘  └─────────────────┘  │
└─────────────────────────────────────────────────────────────┘
          │                                          │
          │                                          │
  Streamable HTTP (remote)                     stdio (local)

Ключевые особенности:

  • Конфиденциальность: Никакого отслеживания пользователей, только контекстное сопоставление

  • Релевантность: score = relevance² × bidFactor × quality_score (релевантность доминирует)

  • Атомарность: Вставка события + обновление статистики + разделение дохода в одной транзакции SQLite

  • Ограничение скорости: Скользящее окно для каждого ключа (60-120 запросов/мин в зависимости от инструмента)

  • Аутентификация: API-ключи, хэшированные SHA-256, контроль доступа на основе ролей

  • Тестирование: 270 тестов в 13 файлах, все проходят


Демо: Полный поток

# Clone repo
git clone https://github.com/nicofains1/agentic-ads.git
cd agentic-ads

# Install + build
npm install && npm run build

# Seed a local DB with demo data (generates real API keys)
tsx scripts/seed.ts --db test.db
# Note: seed.ts prints the generated dev/adv keys — use them below

# Run smoke test with real keys from seed output
tsx scripts/smoke-test.ts --db test.db --dev-key aa_dev_... --adv-key aa_adv_...

Вывод:

✅ Created advertiser: Adidas
✅ Created campaign: Q1 Running Shoes ($500 budget, CPC $0.50)
✅ Created ad: "Ultraboost 24 — 30% off!"
✅ Created developer: TestBot
✅ Searched ads for "running shoes" → 1 result (relevance 0.95)
✅ Reported impression → $0.00 charged (CPC model)
✅ Reported click → $0.50 charged, developer earned $0.35
✅ Analytics: 1 impression, 1 click, $0.50 spent, $0.35 developer revenue

Как разработчики получают оплату

Когда ваш MCP-сервер сообщает о событии клика по CPC-объявлению, 70% ставки переходит к вам — отслеживается атомарно в нашей базе данных. Как только ваш баланс достигает $10, отправьте email на payouts@agentic-ads.com с вашим developer_id и предпочтительным способом оплаты (PayPal или USDC на Polygon). Мы проверяем ваш баланс и отправляем платеж в течение 5 рабочих дней. Автоматические выплаты через Stripe запланированы на будущее, когда сеть масштабируется.


Часто задаваемые вопросы

Для разработчиков

В: Как мне получить API-ключ? О: Зарегистрируйтесь через REST-эндпоинт:

curl -X POST https://agentic-ads-production.up.railway.app/api/register \
  -H "Content-Type: application/json" \
  -d '{"name": "Your Name", "email": "you@example.com"}'
# Returns: { "developer_id": "...", "api_key": "aa_dev_...", "mcp_url": "..." }

Используйте полученный api_key как Authorization: Bearer aa_dev_... в ваших MCP-запросах.

В: ОБЯЗАН ли я показывать рекламу? О: Нет. Вы контролируете, какую рекламу показывать. Показывайте рекламу, только если она действительно добавляет ценность для пользователя. Автономия агента — это особенность.

В: Что, если мои пользователи ненавидят рекламу? О: Следуйте рекомендациям из get_ad_guidelines: максимум 1-2 объявления на ответ, всегда указывайте "спонсировано", уважайте отказ ("без рекламы, пожалуйста").

В: Готово ли это к продакшну? О: Да. 270 проходящих тестов, работает на https://agentic-ads-production.up.railway.app, лицензия MIT.

В: Какие MCP-клиенты поддерживаются? О: Любой MCP-клиент, поддерживающий stdio или Streamable HTTP. Протестировано с Claude Desktop, Cursor, Windsurf, пользовательскими агентами.

Для рекламодателей

В: Как мне создавать объявления? О: Используйте MCP-инструменты create_campaign и create_ad с API-ключом рекламодателя. См. smoke-test.ts для примеров.

В: Как защищен мой бюджет? О: Отслеживание бюджета атомарно (транзакция SQLite). Когда бюджет исчерпан → кампания автоматически ставится на паузу. Никакого перерасхода.

В: Могу ли я отслеживать конверсии? О: Да, используйте модель ценообразования CPA + report_event с event_type: 'conversion'. Добавьте UTM-метки в URL вашей ссылки для атрибуции.

В: Какие существуют опции таргетинга? О: MVP включает ключевые слова (точное + частичное совпадение), категории, гео (на уровне страны) и язык. Семантическое сопоставление появится в Фазе 2.

Общие вопросы

В: Отслеживаете ли вы пользователей? О: Нет. Мы получаем только анонимизированные запросы ключевых слов от агентов. Никаких ID пользователей, cookies или профилирования. Конфиденциальность превыше всего.

В: Как вы предотвращаете мошенничество? О: MVP использует аутентификацию по API-ключам + ограничение скорости + доверительную отчетность. Фаза 2 добавляет эвристики обнаружения аномалий (см. issue #47).

В: Это открытый исходный код? О: Да, лицензия MIT. Форкните, разместите у себя, внесите вклад.


Дорожная карта

  • MVP — 8 MCP-инструментов, сопоставление ключевых слов, биллинг, аутентификация, 270 тестов

  • Развернуто — Доступно по адресу https://agentic-ads-production.up.railway.app

  • Размещение в маркетплейсах — Подача в Anthropic Registry, Smithery, Glama, PulseMCP (1-я неделя)

  • REST API для панели управления — Веб-интерфейс для рекламодателей/разработчиков (#40)

  • Обнаружение мошенничества — Эвристики аномалий (#47)

  • Семантическое сопоставление — Релевантность на основе эмбеддингов (Фаза 2)

  • A/B-тестирование — Варианты креативов (#41)

  • Выплаты через Stripe — Автоматические платежи разработчикам (Фаза 3)


Вклад

Мы следуем рабочему процессу GitHub Issues:

  1. Проверьте, существует ли issue для вашей идеи

  2. Если нет: gh issue create --title "Ваша идея"

  3. Получите одобрение перед началом работы

  4. Ветка: feature/#N-описание

  5. Коммит: feat(#N): описание

  6. PR в main

Подробные рекомендации см. в CLAUDE.md.


Документация

  • CLAUDE.md — Рекомендации по разработке

  • bulloak.md — Поведенческая спецификация (источник истины для тестов)

  • docs/PRD.md — Полный документ с требованиями к продукту

  • scripts/smoke-test.ts — Эталонная реализация


Поддержка


Лицензия

MIT — подробности см. в LICENSE.


Почему это важно

ИИ-агенты «съедают» веб. Пользователи спрашивают агентов вместо поиска в Google. Агенты отвечают вместо веб-сайтов.

Старый интернет: Пользователи просматривают сайты → видят рекламу → рекламодатели достигают пользователей.

Новый интернет: Пользователи спрашивают агентов → агенты парсят сайты → рекламодатели не могут достичь пользователей.

agentic-ads исправляет это. Это рекламный слой для экономики агентов.

И вы — разработчик MCP — получаете 70% дохода за то, что являетесь посредником.

Возможность: 16 000+ MCP-серверов, почти ни один не монетизируется. Вы можете быть первым.


Создано с помощью Model Context Protocol (MCP) — открытого стандарта для подключения ИИ-агентов к инструментам.

Живое демо: https://agentic-ads-production.up.railway.app

Начните: Добавьте MCP-сервер в свою конфигурацию, заработайте свой первый доллар на этой неделе.

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
3hResponse time
Release cycle
1Releases (12mo)
Commit activity
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Monetize any MCP server: x402 paywall, pay-per-call billing in USDC on Base, agent marketplace.

  • MCP server connecting AI agents to non-custodial staking data across 130+ networks.

  • Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nicofains1/agentic-ads'

If you have feedback or need assistance with the MCP directory API, please join our Discord server