Adsmcp

io.github.AdgentekPublished by GitHub account Adgentekv1.0.0Updated Oct 24, 2026

MCP-native ad server. Monetize AI chatbots and agents with conversational ads.

The publisher's own server: Ads MCP

VerifiedStreamable HTTPWeb executableData & AnalyticsBusiness & Commerce

Overview

AI-generated overview

Adgentek's hosted ad server MCP that lets an AI assistant serve contextually targeted ads inside conversations and track impressions and clicks.

What you can do
Serve a contextual ad for a conversation, returning the highest-yield match or none, with markdown, plain and HTML renderings plus signed click and impression URLs to embed for tracking and billing of impressions and clicks, and batch-prefetch up to ten ad contexts in one call, and read the server's read-only documentation resources on creative formats, integration and tracking.
When to use it
For publishers and developers running AI chat, search or voice apps who want to monetize conversations with ads without building ad infrastructure, using Adgentek's demand, their own direct-sold campaigns, or both.
Requirements
A remote streamable HTTP endpoint at mcp.adgentek.ai, authenticated with OAuth or a Bearer API key in the Authorization header. An Adgentek publisher account, an API key prefixed adgt_, and at least one active AI Surface are needed before ads serve; live demand activation requires contacting Adgentek.
Before you install
Requires an Adgentek publisher account and API key, which must be kept secret. Serving ads and loading the impression pixel or click link sends derived signals such as content category, intent and keyword themes to advertisers and demand partners, and generates tracked impressions and clicks; the signed tracking URLs must not be modified or bypassed.

Installation

In SourceWeft

  1. Open Adsmcp in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.Adgentek%2Fadsmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "adsmcp": {
      "type": "http",
      "url": "https://mcp.adgentek.ai/mcp"
    }
  }
}

README

AdsMCP

The ad monetization MCP server for AI applications.

AdsMCP is Adgentek's hosted Model Context Protocol server that enables AI agents and conversational interfaces to serve contextually relevant ads automatically — based on conversation context, user intent, and placement opportunity.

Built on a full ad server stack. Bring live demand from Adgentek, bring your own direct-sold campaigns, or both. No ad tech expertise required.


Before You Start

You need an Adgentek publisher account, an API key, and at least one active AI Surface before ads will serve.

Create your publisher account →

Setup checklist

  1. Create your account at app.adgentek.ai/publishers/auth
  2. Create an AI Surface — in the publisher dashboard, go to Inventory → Surfaces and add at least one surface (e.g. conversational, search, voice). A surface defines where ads can appear and sets your floor eCPM.
  3. Generate an API key — in the publisher dashboard, go to Settings → API Keys and create a key (prefixed adgt_). This key authenticates all MCP requests.

Your account is considered Active once at least one surface is enabled.


Connect

json
{  "mcpServers": {    "adgentek-ads": {      "url": "https://mcp.adgentek.ai/mcp",      "headers": {        "Authorization": "Bearer YOUR_API_KEY_HERE"      }    }  }}

This is the only configuration needed. All MCP-compatible clients support this URL + Headers pattern — no local packages or environment variables required.


Platform-Specific Configuration

The connection config is identical across platforms. Only the file location and wrapper key differ.

Claude Desktop
json
// ~/Library/Application Support/Claude/claude_desktop_config.json  (macOS)// %APPDATA%\Claude\claude_desktop_config.json  (Windows){  "mcpServers": {    "adgentek-ads": {      "url": "https://mcp.adgentek.ai/mcp",      "headers": {        "Authorization": "Bearer YOUR_API_KEY_HERE"      }    }  }}
Claude Code
json
// ~/.claude/settings.json{  "mcpServers": {    "adgentek-ads": {      "url": "https://mcp.adgentek.ai/mcp",      "headers": {        "Authorization": "Bearer YOUR_API_KEY_HERE"      }    }  }}
Cursor
json
// .cursor/mcp.json{  "mcpServers": {    "adgentek-ads": {      "url": "https://mcp.adgentek.ai/mcp",      "headers": {        "Authorization": "Bearer YOUR_API_KEY_HERE"      }    }  }}
VS Code (Copilot MCP)
json
// .vscode/mcp.json{  "servers": {    "adgentek-ads": {      "url": "https://mcp.adgentek.ai/mcp",      "headers": {        "Authorization": "Bearer YOUR_API_KEY_HERE"      }    }  }}
OpenAI Codex
json
{  "mcpServers": {    "adgentek-ads": {      "url": "https://mcp.adgentek.ai/mcp",      "headers": {        "Authorization": "Bearer YOUR_API_KEY_HERE"      }    }  }}

Available Tools

ads.serve

Serves a contextual ad based on the current conversation. Returns the highest-yield ad available for the given context, or null if no ad matched.

Required parameters: conversationId, userKey, surface

Optional parameters: messages, intent, sentiment, depth, language, geo, preferHtml, extras

javascript
const result = await callTool('ads.serve', {  conversationId: 'conv_abc123',  userKey:        'user_456',  surface:        'conversational',  messages: [    { role: "user",      content: "What CRM works best for a small sales team?" },    { role: "assistant", content: "For small teams, a few options stand out..." },    { role: "user",      content: "Which ones integrate with Google Workspace?" }  ],  intent:    'research',  sentiment: 65,  depth:     3,  language:  'en',  geo:       'US'});
if (result.ad) {  displayAd(result.ad.render.markdown);  // Impressions: embed ad.impression_url as a 1x1 pixel in the browser  // Clicks: use ad.click_url as the CTA link href}

Surface types: conversational, search, voice, creative, web

Intent values: purchase, research, support, informational


ads.prefetch

Batch-request up to 10 ad contexts in a single call. Each item in the batch uses the same parameters as ads.serve.

Required: batch (array, max 10 items — each requiring conversationId, userKey, surface)

javascript
const results = await callTool('ads.prefetch', {  batch: [    { conversationId: 'conv_1', userKey: 'user_456', surface: 'conversational', messages: [...] },    { conversationId: 'conv_2', userKey: 'user_456', surface: 'search',         messages: [...] }  ]});
// results.ads            — array of ad objects (null where no ad matched)// results.prefetched_count — number of ads returned// results.truncated       — true if your batch exceeded the 10-item limit

Ad Response Format

When ads.serve returns a matched ad:

json
{  "ad": {    "id": "ad_abc123",    "title": "Product Title",    "content": "Description text",    "cta": "Learn More",    "click_url": "https://api.adgentek.ai/.../click?...",    "impression_url": "https://api.adgentek.ai/.../pixel.gif?...",    "render": {      "markdown": "## Title\n\nContent\n\n[CTA](click_url)",      "plain": "Title - Content - CTA",      "html": "<div>...</div>"    }  },  "targeting_scores": { ... }}

When no ad matched:

json
{  "ad": null,  "reason": "no_eligible_ads",  "targeting_scores": { ... }}

Tracking

Impression and click tracking is handled via the URLs provided in every ad response. These work in any rendering context — browser, in-app webview, or embedded UI.

  • Impressions: Load ad.impression_url as a 1×1 pixel image when the ad is displayed
  • Clicks: Use ad.click_url as the CTA link href (signed redirect to advertiser destination)
html
<!-- Impression pixel --><img src="{ad.impression_url}" width="1" height="1" style="display:none" alt="" />
<!-- Click link --><a href="{ad.click_url}" target="_blank" rel="noopener noreferrer">{ad.cta}</a>

Do not modify or bypass these URLs — they are signed and time-limited.


MCP Resources

The server exposes read-only documentation as MCP resources:

URIDescription
resource://adgentek/creative-guideCreative format guidelines and JS creative structure
resource://adgentek/integration-guidePlatform setup and response format reference
resource://adgentek/tracking-specBrowser tracking requirements and fraud prevention

Full Ad Server — Bring Your Own Ads

AdsMCP is not a demand source with an MCP interface bolted on. It is a full ad server.

Publishers can:

  • Use Adgentek's live demand — we have established relationships across programmatic, performance, and direct demand channels, with more being added continuously
  • Bring your own campaigns — upload direct-sold advertiser deals and serve them through the same ads.serve call
  • Layer in additional ad sources — connect your own demand partners alongside Adgentek's, with automatic yield optimization across all of them

Your inventory. Your demand relationships. One unified server.


Privacy Architecture

User conversations are private. Raw conversation content is never shared with advertisers, demand partners, or third parties.

AdsMCP transmits only derived signals to ad buyers — the minimum information required to match a relevant ad:

What advertisers receiveWhat stays in your app
IAB content categoryFull conversation content
Intent classificationUser messages
Keyword themesSession context

Go Live

  1. Create your publisher account and generate an API key
  2. Create at least one AI Surface in the publisher dashboard (Inventory → Surfaces)
  3. Add the MCP config to your AI application using the connection snippet above
  4. Contact [email protected] to verify your integration and activate live demand

About Adgentek

AdsMCP is built and operated by Adgentek.

Adgentek exists because AI apps are a fundamentally different kind of publisher — and they deserve ad infrastructure built for them, not retrofitted from the display web. Conversational interfaces have richer intent signals, longer engagement sessions, and none of the legacy constraints that shaped how traditional ad tech was built.

Adgentek builds the ad monetization layer that is native to this environment: context-aware, privacy-safe, MCP-native, and designed to serve AI apps of any size — from a single-developer GPT to a multi-surface conversational platform. Our demand relationships span programmatic, direct, and performance channels, and publishers can layer in their own ad sources alongside ours.

If you are building an AI app and want ad revenue without building ad infrastructure, AdsMCP is what you are looking for.

[email protected] — adgentek.ai

Source: README.md at commit 070f04e

Tools

0
This server asks for a credential such as an API key, so SourceWeft could not read its tools without one and has not indexed them.

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

75% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.

Other Adsmcp integrations