Skip to content
Agentmart
Submit a tool

affset

Run affset from chat: stats, campaigns, zones, payouts, targeting, and team.

Connector by affset · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)Remote (HTTP)
Write a review

Install

Works with Claude Code, VS Code, Codex, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/affset-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Remote endpoint

  • https://mcp.affset.com/mcp Remote (HTTP)

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Run affset from chat: stats, campaigns, zones, payouts, targeting, and team.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
15 read · 4 write · 12 delete
Secrets
1 (API keys, tokens or passwords)
Install scripts
Not scanned yet
Runs as
Node.js package

Tools by what they do 31

Read from the source code; the running server may list different tools.

Read 15 · Look things up without changing anything.

  • get_campaign
  • get_stats
  • get_tracking_link
  • get_zone_url
  • list_campaigns
  • list_conversions
  • list_payout_rules
  • list_source_bids
  • list_sub_labels
  • list_targeting_rules
  • list_targeting_types
  • list_team
Show 3 more tools
  • list_traffic_sources
  • list_zones
  • whoami

Write 4 · Create, change, send or run things.

  • create_campaign
  • create_team_member
  • create_traffic_source
  • create_zone

Delete 12 · Delete, drop, revoke or wipe things.

  • cut_zones
  • delete_payout_rule
  • remove_targeting_rule
  • set_campaign_status
  • set_payout_goal
  • set_payout_rule
  • set_source_bid
  • set_sub_labels
  • set_targeting_rule
  • update_campaign
  • update_traffic_source
  • update_zone

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • AFFSET_API_KEY

Other settings (environment variables or headers).

  • AFFSET_BASE_URL
  • AFFSET_NAMESPACE
  • AFFSET_READ_ONLY
  • AFFSET_REQUEST_TIMEOUT_MS

Network hosts it talks to 1

  • mcp.affset.com · found in remote endpoint, install command

Tools (31)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • create_campaignCreate a campaign

    Create a campaign (offer) in the current namespace from a compact spec: advertiser email, offer URL, geo whitelist, payout, name. The advertiser (user_email) is required — it must already exist as a team member (same as the Advertiser dropdown in the dashboard); create one first with create_team_member if needed. Everything else gets media-buying defaults: CPA model, rate 0 (no internal advertiser billing), created paused, a global payout rule when payout is given, and a ready-to-use tracking link. A zone linked to a traffic source uses that source's tracking template; otherwise the link is pr…

  • create_team_memberInvite a team member

    Invite a team member: create a user API key with an email in the current namespace — the same operation as the dashboard's "Add Team Member". Requires owner/manager, or a scoped manager role (publisher_manager / advertiser_manager), which can only create its own managed role (publisher / advertiser respectively) assigned to itself — the API enforces this, not this tool, so a scoped manager's role/manager_email args may be overridden. Returns the new member's plaintext API key ONCE, in the confirmed response — it is not shown again by list_team, which deliberately never echoes tokens, so copy i…

  • create_traffic_sourceCreate a traffic source

    Create a traffic source — an ad network account bought from. Creating from a preset (exoclick, trafficstars, propellerads, adsterra, richads) copies the network's verified tracking + postback templates into an editable row; [BRACKETED] pieces in a postback template are account-specific values to fill in. Link zones to the source via create_zone/update_zone traffic_source_id, and get_zone_url renders its template. The api_token is stored write-only for upcoming cost sync. DRY-RUN by default; pass confirm=true to apply.

  • create_zoneCreate a zone

    Create a traffic-source zone in the current namespace. Requires a name; optional postback_url (where conversions are reported back — include {source_click_id}), site_url, traffic_back_url, user_email (publisher owner), and traffic_source_id (get_zone_url then renders that source's tracking template). Status is always active on create. Counts against the plan's zone limit (402 if exceeded). DRY-RUN by default; pass confirm=true to apply.

  • cut_zonesCut underperforming zonescan change or delete data

    Blacklist underperforming zones on a campaign based on thresholds (CR, spend, ROI). Evaluates zone stats over the given window and adds matching zones to the campaign's zone blacklist. DRY-RUN by default: it shows which zones would be cut and how the blacklist changes. Pass confirm=true to actually apply. `spend` means media_cost (your traffic cost). A zone is cut only if it matches ALL provided thresholds.

  • delete_payout_ruleDelete a payout rulecan change or delete data

    Delete a campaign payout rule (global or per-zone). Omit zone_id to delete the global rule; pass a zone UUID to delete that zone's override. DRY-RUN by default; pass confirm=true to apply. Without a global rule, conversions resolve to $0.

  • get_campaignGet a campaign's full recordread-only

    Get one campaign's full record: every field (including the untruncated offer URL, exact schedule, budgets/pacing, silent-conversions flag, payout goal type) plus its targeting rules and payout rules in one call. `list_campaigns` renders a summary table (offer URL truncated, no dates/pacing/silent) meant for scanning many campaigns; use this when you need one campaign's complete data — e.g. before recreating it as a new campaign, or before editing it with `update_campaign`.

  • get_statsGet affset statsread-only

    Pull affset traffic stats grouped by a single dimension. Returns impressions, clicks, conversions, CR, payout, media cost and ROI as a table. Drill down by calling repeatedly: first group_by=date or campaign_id, then narrow with filters (campaign_ids, zone_ids, sub1..sub5, conversion_type, advertiser_email, publisher_email, paid_only) and change group_by (zone_id, sub1, ...). Sub columns are titled with the tenant's configured labels (e.g. "Zone (sub1)") when set; group_by/filters always take the raw subN key. conversion_type only matches conversion rows, so filtering by it zeroes impressions,…

  • get_tracking_linkGet a campaign's tracking linkread-only

    Get the tracking link for an existing campaign + zone — the /track/click link that goes straight to that one campaign with no rotation or targeting checks. Both the campaign and zone must be active for the public link to work. Same link create_campaign echoes on create; this re-derives it later, for any campaign, with whatever sub values you want. A zone linked to a traffic source renders that source's tracking template instead. Uses the tenant's custom API domain when one is set. Read-only: builds the URL, changes nothing.

  • get_zone_urlGet the zone URL for a traffic sourceread-only

    Get the zone URL to paste into a traffic source's campaign settings — the /serve link that rotates across the zone's active campaigns. A zone linked to a traffic source renders that source's tracking template; otherwise the URL is prefilled with the sub convention (source_click_id + sub1..sub5) and optionally the network's cost macro. Uses the tenant's custom API domain when one is set. Read-only: builds the URL, changes nothing. For a link straight to one active campaign without targeting checks, use get_tracking_link instead.

  • list_campaignsList campaignsread-only

    List campaigns in the current namespace. Filter by status and optionally by name (client-side contains match — the API has no search). Returns id, name, status, offer URL, model/rate, advertiser, budgets. Paginated (default 20, max 100).

  • list_conversionsList conversionsread-only

    List recent conversion records (audit trail) for debugging payouts and pixel params. Shows payout, spend, pixel `type`, source_click_id, click_id, subs, postback outcome, and the raw payload. `paid_only: true` drops informative conversions server-side — rows recorded with postback_skipped=non_goal_type because the pixel type missed the campaign's payout_goal_type. Silent conversions and other skip reasons still come back (not a payout>0 filter). Default false, all rows. Beyond pagination/sort/paid_only, the optional click_id / source_click_id / type / payload_contains / zero_payout filters run…

  • list_payout_rulesList payout rulesread-only

    List a campaign's payout rules (global + per-zone) and its payout_goal_type. Global rule applies to all zones; a zone-specific rule overrides it for that zone. When payout_goal_type is set, spend/payout apply only on conversions whose pixel `type=` exactly matches (others still record, but with $0).

  • list_source_bidsList a traffic source's network campaign bidsread-only

    List the network campaigns of one traffic source with their CURRENT bids, read live from the network account (ExoClick, TrafficStars or RichAds preset with an API token). Shows status, pricing model (CPC/CPM/…), the bid in USD, and the last bid change that entered Affset's mutation stage. Use before set_source_bid to see what a campaign bids today. Read-only.

  • list_sub_labelsList sub labelsread-only

    List the tenant's display names for sub1–sub5 (traffic-source breakdown slots). Unlabeled slots show as the raw key. Used by get_stats column titles and tracking-link / zone-URL query params.

Show 16 more tools
  • list_targeting_rulesList campaign targeting rulesread-only

    List a campaign's targeting rules (type, method whitelist/blacklist, rule values). Rules gate /serve rotation; the direct tracking link does not enforce them. Call `list_targeting_types` for type ids/names.

  • list_targeting_typesList targeting rule typesread-only

    List targeting rule types available in this tenant (id, name, description), flagging the seeded types the /serve path does not actually evaluate. Use the id (or name) when setting campaign targeting rules. Enforced types: geo, device_type, zone_id, os, browser, unique_users.

  • list_teamList team membersread-only

    List team members (user API keys) in the current namespace: email, role, manager, created/expiry. Never returns API tokens. Requires owner/manager (or a scoped manager role).

  • list_traffic_sourcesList traffic sourcesread-only

    List the tenant's traffic sources — the ad networks bought from, each with the tracking template its linked zones render in get_zone_url/get_tracking_link and an optional postback template. The stored network API token is write-only and shown only as set/none. Read-only.

  • list_zonesList zonesread-only

    List traffic-source zones in the current namespace. Filter by status and optionally by name (client-side contains match). Returns id, name, linked traffic source, status, postback_url, site_url, publisher. Paginated (default 20, max 100).

  • remove_targeting_ruleRemove a targeting rulecan change or delete data

    Remove one targeting rule from a campaign (safe merge — other rules are kept). Identify by rule_id, or by type + method. DRY-RUN by default; pass confirm=true to apply.

  • set_campaign_statusRun or pause a campaigncan change or delete data

    Run (activate) or pause a campaign. 'run' enters /serve zone rotation and counts against the plan's active-campaign limit (402 if exceeded). 'pause' removes the campaign from active serving, so both /serve selection and direct tracking links stop. DRY-RUN by default; pass confirm=true to apply. For name/offer/budget edits use update_campaign.

  • set_payout_goalSet payout goal typecan change or delete data

    Set or clear a campaign's payout_goal_type (goal-based conversions). When set, spend and payout apply only when the conversion pixel's `type=` exactly matches; other types are still recorded with $0. Pass null (or empty string) to clear. DRY-RUN by default; pass confirm=true to apply.

  • set_payout_ruleSet a payout rulecan change or delete data

    Set a campaign payout rule (global or per-zone). Upserts: if a rule already exists for that scope it is replaced (delete + create, with the old payout restored if the create fails). Omit zone_id for the global rule; pass a zone UUID for a zone override. DRY-RUN by default; pass confirm=true to apply.

  • set_source_bidSet a network campaign's bidcan change or delete data

    Description is built at runtime.

  • set_sub_labelsSet sub labelscan change or delete data

    Set or clear tenant display names for sub1–sub5. Partial update — only provided keys change; pass null or "" to clear a label. Max 40 chars each. DRY-RUN by default; pass confirm=true to apply. Affects stats column titles and link helpers.

  • set_targeting_ruleSet a targeting rulecan change or delete data

    Upsert one targeting rule on a campaign (safe merge — other rules are kept). Identify the type by id or name (e.g. geo, zone_id, device_type, os, browser, unique_users). If a rule with the same type + method already exists it is updated; otherwise a new one is added. `rule` is comma-separated values (geo: BR,MX; unique_users: visits/hours). Values are normalised to what /serve matches — an unmatched whitelist stops delivery. DRY-RUN by default; pass confirm=true to apply.

  • update_campaignUpdate a campaigncan change or delete data

    Update a campaign (partial): name, offer URL (redirect_url), status, rate, payment_model, start/end dates, daily/total budget, pacing. DRY-RUN by default; pass confirm=true to apply. For run/pause prefer set_campaign_status. Activating a paused campaign can hit the plan's active-campaign limit (402). Targeting rules and payout rules are separate tools.

  • update_traffic_sourceUpdate a traffic sourcecan change or delete data

    Update a traffic source (name, tracking_template, postback_template, api_token, status). Partial update — only provided fields change; pass null (or "") to clear a template or the stored api_token. Zones linked to the source pick the new tracking template up immediately in get_zone_url/get_tracking_link. DRY-RUN by default; pass confirm=true to apply.

  • update_zoneUpdate a zonecan change or delete data

    Update a traffic-source zone (name, status, postback_url, site_url, traffic_back_url, traffic_source_id). Partial update — only provided fields change. Pass null for a URL field or traffic_source_id to clear it. Linking a traffic source makes get_zone_url/get_tracking_link render its tracking template. DRY-RUN by default; pass confirm=true to apply.

  • whoamiShow the tenant this MCP is bound toread-only

    Return the tenant this MCP server is bound to: namespace, API base URL, and the derived dashboard URL (https://{namespace}.affset.com) — everything you need to hand the operator a working deep link, or to pick the right host for a URL you were about to guess. Also reports the tenant's company name, timezone and custom API domain when the /api/tenant read succeeds. Read-only, no side effects. Call this once at the start of a session instead of guessing the namespace from the owner's email — one MCP instance = exactly one tenant, and that binding is already fixed at startup.

Signals

Stars
0
Forks
0
Open issues
0
Weekly downloads
31
Last commit
Sep 13, 2026 (1 month ago)
Last release
Sep 13, 2026 (1 month ago)
Last package publish
Sep 13, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.affset/mcp
Version
0.4.0
Auth
Auth not stated, API key
Packages
npm @affset/mcp
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 25, 2026
Cite this page

affset MCP server. Agent Mart. https://agentmart.dev/connectors/affset-mcp (last updated 2026-10-25)