Server data from the Official MCP Registry
MCP-native ad server. Monetize AI chatbots and agents with conversational ads.
MCP-native ad server. Monetize AI chatbots and agents with conversational ads.
Remote endpoints: streamable-http: https://mcp.adgentek.ai/mcp
Valid MCP server (1 strong, 1 medium validity signals). No known CVEs in dependencies. Imported from the Official MCP Registry.
Endpoint verified · Requires authentication · 1 issue found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Remote Plugin
No local installation needed. Your AI client connects to the remote endpoint directly.
Add this to your MCP configuration to connect:
{
"mcpServers": {
"io-github-adgentek-adsmcp": {
"url": "https://mcp.adgentek.ai/mcp"
}
}
}From the project's GitHub README.
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.
You need an Adgentek publisher account, an API key, and at least one active AI Surface before ads will serve.
Create your publisher account →
conversational, search, voice). A surface defines where ads can appear and sets your floor eCPM.adgt_). This key authenticates all MCP requests.Your account is considered Active once at least one surface is enabled.
{
"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.
The connection config is identical across platforms. Only the file location and wrapper key differ.
// ~/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/settings.json
{
"mcpServers": {
"adgentek-ads": {
"url": "https://mcp.adgentek.ai/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY_HERE"
}
}
}
}
// .cursor/mcp.json
{
"mcpServers": {
"adgentek-ads": {
"url": "https://mcp.adgentek.ai/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY_HERE"
}
}
}
}
// .vscode/mcp.json
{
"servers": {
"adgentek-ads": {
"url": "https://mcp.adgentek.ai/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY_HERE"
}
}
}
}
{
"mcpServers": {
"adgentek-ads": {
"url": "https://mcp.adgentek.ai/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY_HERE"
}
}
}
}
ads.serveServes 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
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.prefetchBatch-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)
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
ads.configReturns your publisher configuration. Takes no parameters — your identity is derived from the API key in the Authorization header.
const config = await callTool('ads.config', {});
// Returns: { publisher_id, org_id, ...upstream config }
ads.diagnosticsRuns the full ad auction with debug output enabled. Uses the same parameters as ads.serve (same required fields: conversationId, userKey, surface).
Returns the raw auction debug data including eligibility checks and match details.
const diag = await callTool('ads.diagnostics', {
conversationId: 'debug_abc123',
userKey: 'user_456',
surface: 'conversational',
messages: [
{ role: "user", content: "Tell me about electric vehicles" }
]
});
console.log(diag); // Full debug output from the auction engine
When ads.serve returns a matched ad:
{
"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:
{
"ad": null,
"reason": "no_eligible_ads",
"targeting_scores": { ... }
}
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.
ad.impression_url as a 1×1 pixel image when the ad is displayedad.click_url as the CTA link href (signed redirect to advertiser destination)
<img src="{ad.impression_url}" width="1" height="1" style="display:none" alt="" />
<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.
The server exposes read-only documentation as MCP resources:
| URI | Description |
|---|---|
resource://adgentek/creative-guide | Creative format guidelines and JS creative structure |
resource://adgentek/integration-guide | Platform setup and response format reference |
resource://adgentek/tracking-spec | Browser tracking requirements and fraud prevention |
AdsMCP is not a demand source with an MCP interface bolted on. It is a full ad server.
Publishers can:
ads.serve callYour inventory. Your demand relationships. One unified server.
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 receive | What stays in your app |
|---|---|
| IAB content category | Full conversation content |
| Intent classification | User messages |
| Keyword themes | Session context |
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.
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
by Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
by mcp-marketplace · Developer Tools
Scaffold, build, and publish TypeScript MCP servers to npm — conversationally
by Taylorwilsdon · Productivity
Control Gmail, Calendar, Docs, Sheets, Drive, and more from your AI