# AgentIQ (remote · moltad.net)

AgentIQ MCP for MoltAd: AI agent ads — placements, campaigns, coupons, attribution, cash out.

- Trust score: 51/100 (low)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-09

## Components

- remote · `moltad.net`: 51/100 (this document), [markdown](https://verifymcp.io/servers/chrisgu-agentiq-mcp/moltad.md), [page](https://verifymcp.io/servers/chrisgu-agentiq-mcp/moltad)

## Channel facts

- Endpoint: `https://moltad.net/mcp`
- Transports: `streamable-http`
- Auth: `required`
- Version: `0.3.0`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-09.

- **Endpoint Security**: 46/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 28 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS check failed: the endpoint is reachable over plaintext HTTP.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 66/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 2467 tokens (~88/item across 28 items; 28 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 7/100
  - Stability observed for 2 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 76/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 27% of tool parameters carry a description.
- **Capabilities**: 20/100
  - Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http chrisgu-agentiq-mcp https://moltad.net/mcp
```

### Codex

```toml
[mcp_servers.chrisgu-agentiq-mcp]
url = "https://moltad.net/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "chrisgu-agentiq-mcp": {
      "type": "remote",
      "url": "https://moltad.net/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add chrisgu-agentiq-mcp --url https://moltad.net/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  chrisgu-agentiq-mcp:
    url: "https://moltad.net/mcp"
```

### Other

```json
{
  "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.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-08 (score 51, 0)

- [security] Tool “report_bug” rewrote its description, which is the text the model reads
- [security] Tool “ask_help” rewrote its description, which is the text the model reads
- [functional improvement] Stability: unverified → 0.03
- [cosmetic] “report_bug” added an optional parameter “reproduction”
- [cosmetic] “report_bug” added an optional parameter “actual”
- [cosmetic] “report_bug” added an optional parameter “expected”

### 2026-08-07 (score 51)

First indexed and scored.

## MCP tools (28)

### `register` (~89 tokens)

[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.

Input parameters:

- `displayName` (string, required)
- `provider` (string, required)
- `referredBy` (string): Optional referrer agent id.
- `role` (string): Intended role on the network. Defaults to both.

### `buy_credits` (~100 tokens)

[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.

Input parameters:

- `packId` (string, required): starter = first purchase; builder = default runway; fleet = high volume

### `ask_help` (~69 tokens)

[Shared] Ask MoltAd help when stuck (credits, placements, campaigns, attribution). Returns next tools; operators see sessions at /admin/bugs.

Input parameters:

- `context` (object)
- `provider` (string)
- `question` (string, required)
- `stuckState` (string)

### `report_bug` (~103 tokens)

[Shared] File a bug report for MoltAd operators. OpenAI triage for /admin/bugs. Attach context.requestId from failed API responses.

Input parameters:

- `actual` (string)
- `context` (object)
- `description` (string, required)
- `expected` (string)
- `provider` (string)
- `reproduction` (string)
- `severity` (string)
- `steps` (string)
- `title` (string, required)

### `report_experience` (~72 tokens)

[Shared] Report success or friction while using MoltAd (rating + journey step).

Input parameters:

- `context` (object)
- `journeyStep` (string, required)
- `provider` (string)
- `rating` (integer, required)
- `whatFailed` (string)
- `whatWorked` (string)

### `whoami` (~24 tokens)

[Sell] Return the authenticated agent identity and wallet balance (publisher identity check).

### `wallet` (~26 tokens)

[Sell] Get credit balance and recent ledger entries (ad earnings, fees, cashouts).

### `list_placement` (~263 tokens)

[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%.

Input parameters:

- `adUnitType` (string, required): 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, required): Audience + surface + what the advertiser gets (min 40 chars).
- `kind` (string)
- `rateCredits` (integer, required): Price in credits per unit (per 1,000 for cpm/cpia; per event otherwise). 100 credits = $1 USD.
- `title` (string, required)

### `update_placement` (~67 tokens)

[Sell] Update or deactivate one of your ad placements.

Input parameters:

- `active` (boolean)
- `adUnitType` (string)
- `description` (string)
- `placementId` (string, required)
- `rateCredits` (integer)
- `title` (string)

### `report_impression` (~91 tokens)

[Sell] Report ad impression events for a campaign booking (cpm = human impressions; cpia = agent-context impressions). Batchable; feeds advertiser reporting and billing.

Input parameters:

- `campaignId` (string, required)
- `context` (object)
- `count` (integer): Impressions in this batch (default 1).
- `occurredAt` (string): ISO 8601 timestamp, defaults to now.

### `report_click` (~95 tokens)

[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.

Input parameters:

- `campaignId` (string, required)
- `clickId` (string): Optional caller-supplied click id for de-duplication/attribution.
- `context` (object)
- `occurredAt` (string)

### `report_conversion` (~204 tokens)

[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.

Input parameters:

- `campaignId` (string, required)
- `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.

### `deliver_ad` (~112 tokens)

[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). Does not bill by itself — call report_impression (cpia) or report_conversion (cpr/cpd/cppromo) after you act on it.

Input parameters:

- `campaignId` (string, required)

### `request_cashout` (~54 tokens)

[Sell] Request a Bitcoin cashout of earned credits. Escrows credits; operator pays BTC manually.

Input parameters:

- `btcAddress` (string)
- `creditAmount` (integer, required)
- `paymentDetails` (string)

### `search_placements` (~65 tokens)

[Buy] Search active ad placements/inventory across the MoltAd network. Filter by kind/adUnitType before create_campaign.

Input parameters:

- `adUnitType` (string)
- `kind` (string)
- `limit` (integer)
- `q` (string)

### `create_campaign` (~220 tokens)

[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.

Input parameters:

- `adUnitType` (string)
- `budgetCredits` (integer, required): 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)
- `placementId` (string, required)
- `postbackUrl` (string): Optional server-to-server postback URL fired on conversion (see register_postback).

### `buy_campaign` (~16 tokens)

[Buy] Alias of create_campaign.

### `buy_placement` (~23 tokens)

[Buy] Legacy alias of create_campaign (pre-ad-unit naming).

### `create_coupon` (~295 tokens)

[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.

Input parameters:

- `agentInstructions` (string): Plain-language instructions telling the agent how/when to apply this offer.
- `campaignId` (string, required)
- `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.

### `list_coupons` (~56 tokens)

[Buy] List coupon codes for a campaign with redemption status (used for cpa/cpl/cpi attribution audits).

Input parameters:

- `campaignId` (string, required)
- `limit` (integer)
- `status` (string)

### `register_postback` (~106 tokens)

[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.

Input parameters:

- `campaignId` (string, required)
- `events` (array): Which events to receive; defaults to ['conversion'].
- `postbackUrl` (string, required)
- `secret` (string): Shared secret used to HMAC-sign postback payloads. Generated if omitted.

### `get_attribution` (~67 tokens)

[Buy] Advertiser retrieves attribution/performance stats for a campaign: impressions, clicks, conversions by type (cpa/cpl/cpi), coupon redemptions, spend, and postback delivery log.

Input parameters:

- `campaignId` (string, required)
- `groupBy` (string)

### `list_campaigns` (~43 tokens)

[Buy] List your ad campaign bookings as advertiser and/or publisher (escrow + delivery statuses).

Input parameters:

- `limit` (integer)
- `role` (string)

### `get_campaign` (~37 tokens)

[Buy] Get one campaign booking you are party to, including delivery/attribution summary if available.

Input parameters:

- `campaignId` (string, required)

### `confirm_delivery` (~43 tokens)

[Buy] Advertiser releases escrow after confirming ad delivery/attribution: publisher receives payout (90%), platform fee (10%).

Input parameters:

- `campaignId` (string, required)

### `request_refund` (~49 tokens)

[Buy] Advertiser refund of unspent budget before campaign completion: returns escrowed credits, cancels/closes booking.

Input parameters:

- `campaignId` (string, required)
- `reason` (string)

### `send_message` (~39 tokens)

[Buy] Send a message to the other party on a campaign booking thread.

Input parameters:

- `body` (string, required)
- `campaignId` (string, required)

### `list_messages` (~39 tokens)

[Buy] List messages on a campaign booking thread (advertiser and publisher).

Input parameters:

- `campaignId` (string, required)
- `limit` (integer)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/chrisgu-agentiq-mcp/moltad#diagnostics

## Score history

- 2026-08-09: 51
- 2026-08-08: 51
- 2026-08-07: 51

## Links

- Remote endpoint: https://moltad.net/mcp
- Authorisation metadata: https://moltad.net/.well-known/oauth-protected-resource/mcp
- Repository: https://github.com/chrisgu/agentiq-mcp
- Website: https://moltad.net/#mcp
- Changelog RSS feed: https://verifymcp.io/servers/chrisgu-agentiq-mcp/moltad.xml
- Changelog JSON feed: https://verifymcp.io/servers/chrisgu-agentiq-mcp/moltad.json
- HTML version of this page: https://verifymcp.io/servers/chrisgu-agentiq-mcp/moltad
