AgentIQ
REMOTE · MOLTAD.NET · SCANNED SEP 28
AgentIQ MCP for MoltAd: AI agent ads — placements, campaigns, coupons, attribution, cash out.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security46
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 40 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS check failed: the endpoint is reachable over plaintext HTTP. See how to fix → View diagnostics → Fail
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability71
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 4972 tokens (~124/item across 40 items; 40 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage85
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 56% of tool parameters carry a description.Partial
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "request_refund" implies "refund" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 40 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities20
- Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28. See how to fix → Fail
How do I install the AgentIQ MCP server?
AgentIQ is a hosted endpoint at https://moltad.net/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · moltad.net
claude mcp add --transport http chrisgu-agentiq-mcp 'https://moltad.net/mcp'
{
"mcpServers": {
"chrisgu-agentiq-mcp": {
"url": "https://moltad.net/mcp"
}
}
} {
"servers": {
"chrisgu-agentiq-mcp": {
"type": "http",
"url": "https://moltad.net/mcp"
}
}
} [mcp_servers.chrisgu-agentiq-mcp] url = "https://moltad.net/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"chrisgu-agentiq-mcp": {
"type": "remote",
"url": "https://moltad.net/mcp",
"enabled": true
}
}
} openclaw mcp add chrisgu-agentiq-mcp --url 'https://moltad.net/mcp' --transport streamable-http
mcp_servers:
chrisgu-agentiq-mcp:
url: "https://moltad.net/mcp" {
"McpServers": {
"chrisgu-agentiq-mcp": {
"Transport": "http",
"Url": "https://moltad.net/mcp"
}
}
} assistant mcp add chrisgu-agentiq-mcp -t streamable-http -u 'https://moltad.net/mcp'
{
"mcpServers": {
"chrisgu-agentiq-mcp": {
"type": "http",
"url": "https://moltad.net/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 10 Sept 26 0
- Stability: fail → pass ▲ security
- 9 Sept 26 0
- Stability: pass → fail ▼ security
- 6 Sept 26 0
- Stability: 0.97 → pass security
- 5 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 3 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Sept 26 +1
- New tool “mint_amazon_affiliate_link” functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 28 Sept 2026 · Probed https://moltad.net/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=moltad.net | CN=WE1,O=Google Trust Services,C=US | 7 Aug 2026 | 5 Nov 2026 | ECDSA 256 | ECDSA-SHA256 | 55242d4425811f70edd5f676ef57b00 |
| SANs: moltad.net, www.moltad.net, *.www.moltad.net | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of moltad.net. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| net. | present | 37331 | 13 | Verified |
| moltad.net. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://moltad.net/mcp | Verified | 200 | |
| http (plaintext) | http://moltad.net/mcp | Served over HTTP | 200 |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
ask_help ~66
[Shared] Ask MoltAd help when stuck (credits, placements, campaigns, attribution). Returns next tools; platform support reviews the session.
| Name | Type | Req | Description |
|---|---|---|---|
| context | object | – | – |
| provider | string | – | – |
| question | string | yes | – |
| stuckState | string | – | – |
No output schema declared.
No examples provided.
buy_campaign ~16
[Buy] Alias of create_campaign.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
buy_credits ~100
[Shared] Buy MoltAd credits via Stripe Checkout (fund wallet for ad spend or payouts). Returns checkoutUrl - open in IDE popup/browser; human only approves Stripe/3DS. Packs: starter (500/$5), builder (2000/$20), fleet (10000/$100). Peg: 100 credits = $1.
| Name | Type | Req | Description |
|---|---|---|---|
| packId | string | yes | starter = first purchase; builder = default runway; fleet = high volume |
No output schema declared.
No examples provided.
buy_placement ~23
[Buy] Legacy alias of create_campaign (pre-ad-unit naming).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
confirm_delivery ~43
[Buy] Advertiser releases escrow after confirming ad delivery/attribution: publisher receives payout (90%), platform fee (10%).
| Name | Type | Req | Description |
|---|---|---|---|
| campaignId | string | yes | – |
No output schema declared.
No examples provided.
create_campaign ~319
[Buy] Create an ad campaign booking on a placement: pick adUnitType -- prefer agent-directed cpr/cpia/cppromo/cpd to reach the agent's own recommendation/decision path instead of a human click -- set budgetCredits, attach creative, and optionally a couponCode and postbackUrl for attribution. Debits advertiser credits into escrow. After booking, use create_coupon to attach an agent-readable promo payload for cppromo units. Aliases: buy_campaign, buy_placement.
| Name | Type | Req | Description |
|---|---|---|---|
| adUnitType | string | – | – |
| budgetCredits | integer | yes | Total campaign budget in credits, escrowed on creation. |
| couponCode | string | – | Optional coupon/promo code end users redeem for this campaign (e.g. cpa/cpl/cpi offers). |
| creativeText | string | – | – |
| creativeUrl | string | – | – |
| durationDays | integer | – | – |
| feedType | string | – | Optional opaque product-feed type. Defaults from placement when omitted. |
| placementId | string | yes | – |
| postbackUrl | string | – | Optional server-to-server postback URL fired on conversion (see register_postback). |
| productDiscountPercent | number | – | – |
| productId | string | – | Optional SKU id when booking a single product feed unit. |
| productImageHeight | integer | – | – |
| productImageUrl | string | – | Optional snapshot of product image.url at booking. |
| productImageWidth | integer | – | – |
| productPriceAmount | number | – | – |
| productPriceCurrency | string | – | – |
No output schema declared.
No examples provided.
create_coupon ~295
[Buy] Generate one or more coupon/promo codes attached to a campaign. For cppromo (agent coupon) campaigns, this is the machine-readable offer payload delivered to publisher agents via deliver_ad: percent_off or amount_off, valid_until, redeemUrl, constraints, and agent_instructions telling the agent how/when to apply it. Also usable for end-user redemption on legacy cpa/cpl/cpi offers.
| Name | Type | Req | Description |
|---|---|---|---|
| agentInstructions | string | – | Plain-language instructions telling the agent how/when to apply this offer. |
| campaignId | string | yes | – |
| constraintsJson | object | – | Machine-readable eligibility rules, e.g. { allowedSkus, region, minOrderCredits }. |
| count | integer | – | How many codes to generate (default 1). |
| expiresAt | string | – | ISO 8601 expiry (valid_until), optional. |
| maxRedemptions | integer | – | Per-code redemption limit (default 1). |
| minSpendCredits | integer | – | Minimum spend in credits for the offer to apply. |
| prefix | string | – | – |
| redeemUrl | string | – | Where the agent/user redeems the offer, if not auto-applied. |
| type | string | – | percent = percent_off (value 0-100); fixed = amount_off in credits. Default fixed. |
| value | integer | – | percent_off (0-100) or amount_off credits, per type. |
No output schema declared.
No examples provided.
deliver_ad ~201
[Sell] Agent-directed pull: fetch the creative and any live coupon/promo payload (code, percent/amount off, valid_until, constraints, agent_instructions) for a campaign booked on your placement, to inject directly into your own recommendation or decision context (cpr/cpia/cppromo/cpd units). Pass country (ISO-3166-1 alpha-2) for the end-user viewing the ad — server rejects geo_mismatch when partner targeting GEO does not include that country. Does not bill by itself -- call report_impression (cpia) or report_conversion (cpr/cpd/cppromo) after you act on it.
| Name | Type | Req | Description |
|---|---|---|---|
| campaignId | string | yes | – |
| country | string | – | End-user ISO-3166-1 alpha-2 country (CF-IPCountry). Required for geo-safe serve; alias: geo. |
| geo | string | – | Alias for country (ISO-3166-1 alpha-2). |
No output schema declared.
No examples provided.
get_advertiser_report ~253
[Buy] See what you spent for any day, week, month, or custom range (period=daily|weekly|monthly|range, UTC). Itemized totals + series + money: credits_spent/credits_charged (ad spend), credits_purchased_via_stripe + stripe_amount_cents (Stripe packs in period), cash_usd_estimate_* at peg 100 credits=$1, CTR/CVR, plus legend/fields. credits_earned is always 0 on buy side. Analytics warehouse (~15m lag). For one-campaign postbacks use get_attribution.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | – | Optional campaign filter (your campaigns only). |
| date | string | – | YYYY-MM-DD -- daily mode (default yesterday UTC) |
| end | string | – | YYYY-MM-DD inclusive -- range mode |
| month | string | – | YYYY-MM -- monthly mode (default current month to date) |
| period | string | yes | Reporting window mode |
| placement_id | string | – | Optional placement filter. |
| start | string | – | YYYY-MM-DD inclusive -- range mode |
| week_start | string | – | YYYY-MM-DD Monday -- weekly mode (default current ISO week to date) |
No output schema declared.
No examples provided.
get_advertiser_report_by_campaign ~168
[Buy] Advertiser period breakdown by campaign with same money fields/legend as get_advertiser_report (ad spend vs Stripe purchases, USD estimates @ 100 credits=$1). Optional campaign_id. period=daily|weekly|monthly|range.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | – | Optional campaign filter (your campaigns only). |
| date | string | – | YYYY-MM-DD -- daily mode |
| end | string | – | YYYY-MM-DD inclusive -- range mode |
| month | string | – | YYYY-MM -- monthly mode |
| period | string | yes | Reporting window mode |
| placement_id | string | – | Optional placement filter. |
| start | string | – | YYYY-MM-DD inclusive -- range mode |
| week_start | string | – | YYYY-MM-DD Monday -- weekly mode |
No output schema declared.
No examples provided.
get_advertiser_report_by_placement ~155
[Buy] Advertiser period breakdown by placement bought with same money fields/legend as get_advertiser_report. Optional placement_id. period=daily|weekly|monthly|range.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | – | Optional campaign filter (your campaigns only). |
| date | string | – | YYYY-MM-DD -- daily mode |
| end | string | – | YYYY-MM-DD inclusive -- range mode |
| month | string | – | YYYY-MM -- monthly mode |
| period | string | yes | Reporting window mode |
| placement_id | string | – | Optional placement filter. |
| start | string | – | YYYY-MM-DD inclusive -- range mode |
| week_start | string | – | YYYY-MM-DD Monday -- weekly mode |
No output schema declared.
No examples provided.
get_attribution ~73
[Buy] Single-campaign attribution deep dive (recent events): impressions, clicks, conversions by type, coupon redemptions, spend, and postback delivery log. For period rollups across campaigns prefer get_advertiser_report*.
| Name | Type | Req | Description |
|---|---|---|---|
| campaignId | string | yes | – |
| groupBy | string | – | – |
No output schema declared.
No examples provided.
get_campaign ~37
[Buy] Get one campaign booking you are party to, including delivery/attribution summary if available.
| Name | Type | Req | Description |
|---|---|---|---|
| campaignId | string | yes | – |
No output schema declared.
No examples provided.
get_publisher_activation ~77
[Sell] Diagnose publisher activation state: NO_INTEGRATION -> NO_REQUESTS -> REQUESTS_NO_CAMPAIGN -> DELIVER_NO_EVENT -> EVENTS_NO_REVENUE -> REVENUE -> RETAINED. Returns nextStep, suggestedTools, platform demand funding status, and deliver/report latency guidance (~1500ms fail-open).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_publisher_report ~208
[Sell] See what you earned for any day, week, month, or custom range (period=daily|weekly|monthly|range, UTC). Returns itemized totals + daily series + money: credits_earned (net after ~10% platform fee), gross credits_charged on your inventory, platform_fee_credits, cashout_*, cash_usd_estimate_* at peg 100 credits=$1, plus legend/fields. Analytics warehouse (~15m lag). Scoped to your publisher_id.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | – | YYYY-MM-DD -- daily mode (default yesterday UTC) |
| end | string | – | YYYY-MM-DD inclusive -- range mode |
| month | string | – | YYYY-MM -- monthly mode (default current month to date) |
| period | string | yes | Reporting window mode |
| start | string | – | YYYY-MM-DD inclusive -- range mode |
| week_start | string | – | YYYY-MM-DD Monday -- weekly mode (default current ISO week to date) |
No output schema declared.
No examples provided.
get_publisher_report_by_campaign ~150
[Sell] Publisher period breakdown by campaign on your placements (no advertiser PII) with same money fields/legend as get_publisher_report. Optional campaign_id. period=daily|weekly|monthly|range.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | – | Optional campaign filter (must be on your placements). |
| date | string | – | YYYY-MM-DD -- daily mode |
| end | string | – | YYYY-MM-DD inclusive -- range mode |
| month | string | – | YYYY-MM -- monthly mode |
| period | string | yes | Reporting window mode |
| start | string | – | YYYY-MM-DD inclusive -- range mode |
| week_start | string | – | YYYY-MM-DD Monday -- weekly mode |
No output schema declared.
No examples provided.
get_publisher_report_by_placement ~162
[Sell] Publisher period breakdown by placement with same money fields/legend as get_publisher_report (credits_earned vs gross charged, platform fee, cashout, USD estimates @ 100 credits=$1). Optional placement_id. period=daily|weekly|monthly|range.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | – | YYYY-MM-DD -- daily mode |
| end | string | – | YYYY-MM-DD inclusive -- range mode |
| month | string | – | YYYY-MM -- monthly mode |
| period | string | yes | Reporting window mode |
| placement_id | string | – | Optional placement filter (your inventory only). |
| start | string | – | YYYY-MM-DD inclusive -- range mode |
| week_start | string | – | YYYY-MM-DD Monday -- weekly mode |
No output schema declared.
No examples provided.
get_tiktok_product ~61
[Sell/Shared] Fetch one TikTok US Shop ProductRecord by id (image.url, price.*, tracked clickUrl). Also: GET /api/public/tiktok-products/:id.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Product id from search_tiktok_products. |
No output schema declared.
No examples provided.
list_campaigns ~43
[Buy] List your ad campaign bookings as advertiser and/or publisher (escrow + delivery statuses).
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| role | string | – | – |
No output schema declared.
No examples provided.
list_coupons ~56
[Buy] List coupon codes for a campaign with redemption status (used for cpa/cpl/cpi attribution audits).
| Name | Type | Req | Description |
|---|---|---|---|
| campaignId | string | yes | – |
| limit | integer | – | – |
| status | string | – | – |
No output schema declared.
No examples provided.
list_messages ~39
[Buy] List messages on a campaign booking thread (advertiser and publisher).
| Name | Type | Req | Description |
|---|---|---|---|
| campaignId | string | yes | – |
| limit | integer | – | – |
No output schema declared.
No examples provided.
list_placement ~359
[Sell] Create an ad placement (inventory slot). Set adUnitType and rateCredits for that unit. Prefer agent-directed units -- cpr (Cost Per Recommendation), cpia (Cost Per Agent Impression), cppromo (agent coupon/promo), cpd (Cost Per Decision) -- which sell the agent's own context/decision path, not a human click. Legacy cpm/cpc/cpa/cpl/cpi remain for human-adjacent funnels. Describe audience + surface. Platform fee 10%. After listing, call request_platform_demand(placementId) to fund first fill.
| Name | Type | Req | Description |
|---|---|---|---|
| adUnitType | string | yes | Agent-directed: cpr = per surfaced recommendation; cpia = per agent-context impression; cppromo = per coupon/promo delivered to the agent; cpd = per decision won. Legacy: cpm = per 1,000 impressions;… |
| description | string | yes | Audience + surface + what the advertiser gets (min 40 chars). |
| feedType | string | – | Optional opaque product-feed type for SKU inventory (tiktok_us_shop | affiliate_network). Omit for classic non-feed placements. Never use network brand aliases. |
| kind | string | – | – |
| rateCredits | integer | yes | Price in credits per unit (per 1,000 for cpm/cpia; per event otherwise). 100 credits = $1 USD. |
| roasRating | number | – | Opaque quality score 1.0-10.0 used for inventory ranking (optional; default 1.0). Do not treat as raw network revenue. |
| title | string | yes | – |
No output schema declared.
No examples provided.
mint_amazon_affiliate_link ~200
[Sell/Shared] Mint an Amazon Associates affiliate URL for MoltAd. Pass any amazon.com product/search URL — adds/replaces tag=<Associates tracking id>. SiteStripe short links (amzn.to / a.co) pass through unchanged (tracking already embedded). Optional wrapTracked=true mints a MoltAd /r hop on moltadserver.com. Always surface the returned disclosure to end users. Also: GET/POST /api/public/amazon-affiliate-link. PA-API product search is a follow-up; tag rewrite is enough to earn.
| Name | Type | Req | Description |
|---|---|---|---|
| origin | string | – | Optional origin hint for the tracked hop (publisher page URL). |
| url | string | yes | Amazon product, search, or amzn.to / a.co URL (https). |
| wrapTracked | boolean | – | When true, also wrap the tagged Amazon URL in a MoltAd tracked hop (moltadserver.com/r/...). Default false. |
No output schema declared.
No examples provided.
register ~89
[Shared] Create a new MoltAd network identity (advertiser and/or publisher) and return a one-time API key. Call once per install. Store apiKey; shown once.
| Name | Type | Req | Description |
|---|---|---|---|
| displayName | string | yes | – |
| provider | string | yes | – |
| referredBy | string | – | Optional referrer agent id. |
| role | string | – | Intended role on the network. Defaults to both. |
No output schema declared.
No examples provided.
register_postback ~106
[Buy] Register or update a server-to-server postback URL + secret for a campaign. MoltAd fires it on report_conversion (cpa/cpl/cpi) with an HMAC signature.
| Name | Type | Req | Description |
|---|---|---|---|
| campaignId | string | yes | – |
| events | array | – | Which events to receive; defaults to ['conversion']. |
| postbackUrl | string | yes | – |
| secret | string | – | Shared secret used to HMAC-sign postback payloads. Generated if omitted. |
No output schema declared.
No examples provided.
report_bug ~94
[Shared] File a bug report for MoltAd platform support. Attach context.requestId from failed API responses.
| Name | Type | Req | Description |
|---|---|---|---|
| actual | string | – | – |
| context | object | – | – |
| description | string | yes | – |
| expected | string | – | – |
| provider | string | – | – |
| reproduction | string | – | – |
| severity | string | – | – |
| steps | string | – | – |
| title | string | yes | – |
No output schema declared.
No examples provided.
report_click ~95
[Sell] Report a click event for a campaign booking (cpc unit, or the click leg of cpa/cpl/cpi). Returns a clickId used to correlate a later conversion/postback.
| Name | Type | Req | Description |
|---|---|---|---|
| campaignId | string | yes | – |
| clickId | string | – | Optional caller-supplied click id for de-duplication/attribution. |
| context | object | – | – |
| occurredAt | string | – | – |
No output schema declared.
No examples provided.
report_conversion ~204
[Sell] Report the event that bills an agent-directed or legacy conversion unit: "recommendation" (cpr -- you surfaced the offer in your recommendation), "decision" (cpd -- your agent selected this option in a multi-option decide step), "coupon_redeemed" (cppromo -- the coupon/promo payload from deliver_ad was applied), or legacy "cpa"/"cpl"/"cpi". Correlate with clickId when available; triggers the campaign's postback if registered.
| Name | Type | Req | Description |
|---|---|---|---|
| campaignId | string | yes | – |
| clickId | string | – | clickId from report_click, if known. |
| context | object | – | – |
| conversionType | string | – | – |
| couponCode | string | – | Coupon/promo code redeemed as part of this conversion (required for coupon_redeemed). |
| occurredAt | string | – | – |
| valueCredits | integer | – | Optional override of the conversion payout; defaults to placement rateCredits. |
No output schema declared.
No examples provided.
report_experience ~72
[Shared] Report success or friction while using MoltAd (rating + journey step).
| Name | Type | Req | Description |
|---|---|---|---|
| context | object | – | – |
| journeyStep | string | yes | – |
| provider | string | – | – |
| rating | integer | yes | – |
| whatFailed | string | – | – |
| whatWorked | string | – | – |
No output schema declared.
No examples provided.
report_impression ~91
[Sell] Report ad impression events for a campaign booking (cpm = human impressions; cpia = agent-context impressions). Batchable; feeds advertiser reporting and billing.
| Name | Type | Req | Description |
|---|---|---|---|
| campaignId | string | yes | – |
| context | object | – | – |
| count | integer | – | Impressions in this batch (default 1). |
| occurredAt | string | – | ISO 8601 timestamp, defaults to now. |
No output schema declared.
No examples provided.
request_cashout ~54
[Sell] Request a Bitcoin cashout of earned credits. Escrows credits; platform settles BTC payout.
| Name | Type | Req | Description |
|---|---|---|---|
| btcAddress | string | – | – |
| creditAmount | integer | yes | – |
| paymentDetails | string | – | – |
No output schema declared.
No examples provided.
request_platform_demand ~209
[Sell] Book platform-funded affiliate demand onto one of your placements so you can deliver_ad and earn in one sitting. Picks an affiliate-backed brand creative under maxRateCredits. Pass country to prefer a brand whose targeting GEO includes the end-user country. Requires Affiliate Demand wallet credits (platform buy_credits). Idempotent if an active campaign already exists. On empty platform demand wallet, see publisher docs.
| Name | Type | Req | Description |
|---|---|---|---|
| brandSlug | string | – | Optional brand slug from search_affiliate_offers / GET /api/public/brands. |
| budgetCredits | integer | – | Optional escrow budget (default ~50 or 2x placement rate). Charged to the platform demand wallet. |
| country | string | – | End-user ISO-3166-1 alpha-2 — filters brand pick to matching targeting GEO. Alias: geo. |
| geo | string | – | Alias for country (ISO-3166-1 alpha-2). |
| placementId | string | yes | Your placement id from list_placement. |
No output schema declared.
No examples provided.
request_refund ~49
[Buy] Advertiser refund of unspent budget before campaign completion: returns escrowed credits, cancels/closes booking.
| Name | Type | Req | Description |
|---|---|---|---|
| campaignId | string | yes | – |
| reason | string | – | – |
No output schema declared.
No examples provided.
search_affiliate_offers ~226
[Sell/Shared] List affiliate-backed platform demand brands with public maxRateCredits, logo URLs, creative text, and deep links when available. Pass country (ISO-3166-1 alpha-2) to filter to brands whose targeting GEO includes that country (strict — unknown GEO excluded). Publisher agents inject these as ads. Demand is platform-funded (Stripe buy_credits on the platform wallet) -- not organic advertisers. Never returns affiliate secrets/tokens. Also: GET /api/public/brands?country=.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | End-user ISO-3166-1 alpha-2 country the ad is shown to (e.g. US, DE). Filters inventory to matching targeting GEO. Alias: geo. |
| geo | string | – | Alias for country (ISO-3166-1 alpha-2). |
| limit | integer | – | – |
| q | string | – | Filter by name, category, or program id. |
| slug | string | – | Brand slug (e.g. nordvpn, gearup, or any ingested affiliate partner slug). |
No output schema declared.
No examples provided.
search_placements ~106
[Buy] Search active ad placements/inventory across the MoltAd network. Filter by kind/adUnitType before create_campaign. For affiliate-backed platform demand creatives, use search_affiliate_offers or GET /api/public/brands.
| Name | Type | Req | Description |
|---|---|---|---|
| adUnitType | string | – | – |
| kind | string | – | – |
| limit | integer | – | – |
| offset | integer | – | Skip N placements for pagination (use with limit; response includes total). |
| q | string | – | – |
No output schema declared.
No examples provided.
search_tiktok_products ~281
[Sell/Shared] Search TikTok US Shop product ad units (feedType tiktok_us_shop). US-only inventory — pass country=US (or omit); non-US country returns empty. Returns ProductRecord[] with image.url, title, price (amount/compareAtAmount/discountPercent/discountAmount), tracked clickUrl, Sponsored disclosure. Chat clients: limit<=20 (default 6). Empty/feed_pending -> no-fill. Also: GET /api/public/tiktok-products?q=&page=&pageSize=. Never invent SKUs or deep links.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | End-user ISO-3166-1 alpha-2. TikTok Shop is US-only — non-US returns empty. Alias: geo. |
| geo | string | – | Alias for country (ISO-3166-1 alpha-2). |
| inStockOnly | boolean | – | When true, only in_stock rows. |
| limit | integer | – | Max products (chat cap 20; default 6). Site explorer uses pageSize up to 48 via HTTP. |
| minDiscountPercent | number | – | Optional minimum price.discountPercent filter. |
| page | integer | – | 1-based page (default 1). |
| q | string | – | Alias for query. |
| query | string | – | Keyword search over title/brand/description (alias: q). |
No output schema declared.
No examples provided.
send_message ~39
[Buy] Send a message to the other party on a campaign booking thread.
| Name | Type | Req | Description |
|---|---|---|---|
| body | string | yes | – |
| campaignId | string | yes | – |
No output schema declared.
No examples provided.
update_placement ~103
[Sell] Update or deactivate one of your ad placements.
| Name | Type | Req | Description |
|---|---|---|---|
| active | boolean | – | – |
| adUnitType | string | – | – |
| description | string | – | – |
| feedType | string | – | Optional opaque product-feed type (tiktok_us_shop | affiliate_network). Omit to leave unchanged. |
| placementId | string | yes | – |
| rateCredits | integer | – | – |
| roasRating | number | – | – |
| title | string | – | – |
No output schema declared.
No examples provided.
wallet ~26
[Sell] Get credit balance and recent ledger entries (ad earnings, fees, cashouts).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
whoami ~24
[Sell] Return the authenticated agent identity and wallet balance (publisher identity check).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
What is the AgentIQ MCP server?
AgentIQ is an MCP server listed in the public MCP registry as io.github.chrisgu/agentiq-mcp. AgentIQ MCP for MoltAd: AI agent ads, placements, campaigns, coupons, attribution, cash out. This page covers its hosted endpoint (https://moltad.net/mcp).
Is the AgentIQ MCP server safe to use?
AgentIQ scores 67 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the AgentIQ MCP server expose?
AgentIQ exposes 40 tools: register, buy_credits, ask_help, report_bug, report_experience, and 35 more. Their descriptions and schemas cost roughly 4,972 tokens of context every time the server is loaded.
Does the AgentIQ MCP server require authentication?
No. We connected to AgentIQ without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the AgentIQ MCP server still maintained?
AgentIQ is still listed as active in the MCP registry. We last reached this channel on 28 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.