# LinkJolt (remote · www.linkjolt.io)

For businesses that pay affiliates: set up and run your affiliate program from your AI assistant.

- Trust score: 69/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `www.linkjolt.io`: 69/100 (this document), [markdown](https://verifymcp.io/servers/io-linkjolt-linkjolt/api-mcp.md), [page](https://verifymcp.io/servers/io-linkjolt-linkjolt/api-mcp)

## Channel facts

- Endpoint: `https://www.linkjolt.io/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.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-11-05.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (update_business).
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - 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**: 79/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 4692 tokens (~161/item across 29 items; 28 tools + 1 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 10/100
  - Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (11% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 28 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 30 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).
  - Supports UI / widget rendering.

## Install

### How do I install the LinkJolt MCP server?

LinkJolt is a hosted endpoint at https://www.linkjolt.io/api/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.

### Claude

```bash
claude mcp add --transport http io-linkjolt-linkjolt 'https://www.linkjolt.io/api/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "io-linkjolt-linkjolt": {
      "url": "https://www.linkjolt.io/api/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "io-linkjolt-linkjolt": {
      "type": "http",
      "url": "https://www.linkjolt.io/api/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.io-linkjolt-linkjolt]
url = "https://www.linkjolt.io/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-linkjolt-linkjolt": {
      "type": "remote",
      "url": "https://www.linkjolt.io/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-linkjolt-linkjolt --url 'https://www.linkjolt.io/api/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-linkjolt-linkjolt:
    url: "https://www.linkjolt.io/api/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "io-linkjolt-linkjolt": {
      "Transport": "http",
      "Url": "https://www.linkjolt.io/api/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add io-linkjolt-linkjolt -t streamable-http -u 'https://www.linkjolt.io/api/mcp'
```

### Other

```json
{
  "mcpServers": {
    "io-linkjolt-linkjolt": {
      "type": "http",
      "url": "https://www.linkjolt.io/api/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-11-05 (score 69, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-04 (score 68, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [functional] New tool “switch_from_another_tool”

### 2026-11-03 (score 68, +1)

- [functional improvement] Stability: unverified → 0.03

### 2026-11-02 (score 67)

First indexed and scored.

## MCP tools (28)

### `plan_affiliate_program` (~159 tokens)

Plan an affiliate program

Plan an affiliate program for a product before launching it: a commission rate, whether to pay on renewals, and how to approve affiliates, from LinkJolt's published benchmarks of real SaaS programs, plus what an affiliate would earn per sale at typical rates. Needs no LinkJolt account. Use it when someone asks what commission to offer or how to structure a program.

Input parameters:

- `billing` (string): How the price is billed (default monthly)
- `commissionPercent` (number): A commission rate the person is considering, e.g. 25
- `currency` (string): Three-letter currency code of the price (default USD)
- `price` (number, required): What a customer pays per billing period, e.g. 49

### `get_linkjolt_plans` (~67 tokens)

Get LinkJolt plans

LinkJolt's plans and prices, each plan's monthly tracked-sales limit, what this connector can do on each plan, and how the free trial works. Needs no LinkJolt account. Use it when someone asks what LinkJolt costs or which plan they need.

### `switch_from_another_tool` (~145 tokens)

Switch from another affiliate tool

How to move an affiliate program to LinkJolt from Rewardful, Tolt, FirstPromoter or Affonso, or from anything else by CSV: the page where the person pastes their old tool's API key, and what happens after (LinkJolt fills in the campaign, imports the affiliates with their old links still working, gives one prompt for their coding tool, and emails the affiliates). Never ask for or accept an API key in the chat: the person pastes it on that page. Needs no LinkJolt account to call.

Input parameters:

- `from` (string, required): The affiliate tool the program runs on today; other for anything else (a CSV).

### `get_setup_status` (~176 tokens)

Get setup status

Where this LinkJolt account is in setting up its affiliate program: the business name and website, the launch steps (business details, campaign, payment connection, first affiliate, first sale) with the next one to do, the tracking script tag for the site and whether it has been seen, and each campaign's join link. Call it first when helping someone set up or launch. When business.needsDetails is true the name is a placeholder LinkJolt made at sign-up (from the email domain, or the person's first name): ask for the real one. Connecting Stripe or another payment platform can only be done by the person in the browser; connectLinks gives Stripe's one-click link for this account and the page for the others. Requires Pro plan or higher, or a new account that has not picked a plan yet.

### `update_business` (~110 tokens)

Update business details

Set the business name and website for this LinkJolt account (the brand the connection belongs to). Affiliates see the name on the join page and in emails. Send either or both. Requires Pro plan or higher, or a new account that has not picked a plan yet; live keys only.

Input parameters:

- `businessName` (string): The business or product name, at least 2 characters
- `website` (string): The website, e.g. acme.com (https:// is added when missing)

### `create_campaign` (~391 tokens)

Create campaign

Create an affiliate campaign: what affiliates earn per sale and where their links send people. Returns the campaign and its joinUrl, the link to share with affiliates so they can sign up. Confirm the commission with the user before calling. A new campaign is active at once and, unless isPublic is false, listed in LinkJolt's Discovery marketplace where affiliates browse programs. Recurring commissions pay on renewals too. The plan's campaign limit applies. Requires Pro plan or higher; live keys only.

Input parameters:

- `autoApproveAffiliates` (boolean): Approve affiliates who join through the join link without review (default false)
- `commissionType` (string, required): Percentage of the sale, or a fixed amount per sale
- `commissionValue` (number, required): The percent (e.g. 20) or the fixed amount in the brand currency (e.g. 30)
- `description` (string): What the program offers, shown to affiliates
- `enableRecurringCommissions` (boolean): Also pay commission on subscription renewals (default false)
- `isPublic` (boolean): List the campaign in the Discovery marketplace (default true)
- `name` (string, required): Campaign name affiliates see, at least 2 characters
- `recurringCommissionCount` (number): Payments that pay commission, including the first; omit for no limit
- `recurringCommissionDurationMonths` (number): Months of renewals that pay commission; omit for no limit
- `recurringCommissionMode` (string): Limit renewals by months since the first sale, or by number of payments (default duration)
- `recurringCommissionType` (string): Renewals pay the same rate as the first sale, or a custom rate (default same)
- `recurringCommissionValue` (number): The renewal rate when recurringCommissionType is custom
- `targetUrl` (string): Where affiliate links send people, usually the business's website or pricing page

### `update_campaign` (~393 tokens)

Change campaign

Change an existing campaign: its name, description, where links send people, status (active, or inactive to pause it), the commission, whether it is listed in the Discovery marketplace, whether new affiliates are approved automatically, or the recurring commission terms. Send only what changes; everything else stays as it is. Confirm the exact change with the user before calling, because affiliates see the new terms at once. Commission tiers, coupon codes, files and prices are changed on the dashboard. Returns the campaign and `changed`, the fields that actually changed. Requires Pro plan or higher; live keys only.

Input parameters:

- `autoApproveAffiliates` (boolean): Approve affiliates who join through the join link without review
- `campaignId` (string, required): The campaign to change
- `commissionType` (string): Percentage of the sale, or a fixed amount per sale
- `commissionValue` (number): The percent (e.g. 25) or the fixed amount in the campaign currency
- `description` (string): New description shown to affiliates
- `enableRecurringCommissions` (boolean): Also pay commission on subscription renewals
- `isPublic` (boolean): List the campaign in the Discovery marketplace
- `name` (string): New campaign name, at least 2 characters
- `recurringCommissionCount` (number): Payments that pay commission, including the first
- `recurringCommissionDurationMonths` (number): Months of renewals that pay commission
- `recurringCommissionMode` (string): Limit renewals by months since the first sale, or by number of payments
- `recurringCommissionType` (string): Renewals pay the same rate as the first sale, or a custom rate
- `recurringCommissionValue` (number): The renewal rate when recurringCommissionType is custom
- `status` (string): active runs the campaign; inactive pauses it
- `targetUrl` (string): Where affiliate links send people

### `invite_affiliate` (~115 tokens)

Invite affiliate

Email one person an invitation to join a campaign as an affiliate. This sends a real email in the business's name, so confirm the address and campaign with the user first. Refused when the person is already on the campaign or already has a waiting invitation. At most 10 a minute. Requires Pro plan or higher.

Input parameters:

- `campaignId` (string, required): The campaign to invite them to
- `email` (string, required): The person's email address
- `name` (string): The person's name, used in the email greeting

### `update_affiliate_status` (~159 tokens)

Approve or reject affiliate

Approve or reject an affiliate who applied to a campaign and is waiting for review (list_affiliates with status pending shows who is waiting, with each campaign they applied to). Approving lets them promote the campaign at once: they get their link by email, and a coupon code too when the campaign makes them. Rejecting is final from here: they cannot apply again, and only the dashboard can let them back in. Confirm each decision with the user before calling. This never approves sales or commissions. Requires Pro plan or higher.

Input parameters:

- `action` (string, required): approve lets them in; reject turns them down
- `affiliateId` (string, required): The affiliate who applied
- `campaignId` (string, required): The campaign they applied to

### `get_tracking_instructions` (~171 tokens)

Get tracking instructions

The steps to track affiliate sales on one payment platform, filled in with this account's own tracking script and webhook address: the same text the Integrations page gives to AI assistants. Use it to help add the tracking script to the site and pass the referral to checkout, then check_tracking to confirm it works. Connecting the platform itself happens in the browser (connectLinks: Stripe in one click, the others on the Integrations page), and for Stripe, Paddle, Polar and Creem connecting there sets up the webhook, so a manual webhook step is only needed without that connection. Requires Pro plan or higher, or a new account that has not picked a plan yet.

Input parameters:

- `platform` (string, required): Where the business takes payment. payment-links covers Stripe Payment Links, Gumroad and Lemon Squeezy.

### `check_tracking` (~172 tokens)

Check tracking works

Check that affiliate tracking works, after the tracking script has been added: fetches a page of the site (the business website unless url is given) and looks for this account's tag, then says whether a browser has run the script, whether a payment platform is connected, and whether a test-mode purchase has reached LinkJolt (the one tool that shows test sales). Each check comes with a sentence and next names the first thing left to do. Run it after the script is deployed, and again after the person buys once in their payment platform's test mode through an affiliate link. Requires Pro plan or higher, or a new account that has not picked a plan yet.

Input parameters:

- `url` (string): The page to check, e.g. https://acme.com/pricing (default: the business website)

### `list_campaigns` (~93 tokens)

List campaigns

List the affiliate campaigns on this LinkJolt account (the brand the API key belongs to), with stats. Requires Pro plan or higher.

Input parameters:

- `limit` (number): Results per page, max 100 (default 25)
- `page` (number): Page number, starting at 1 (default 1)
- `sort` (string): Sort as field:direction, e.g. createdAt:desc

### `get_campaign` (~36 tokens)

Get campaign

Get one campaign with full detail, including affiliate count. Requires Pro plan or higher.

Input parameters:

- `campaignId` (string, required): The campaign id

### `list_affiliates` (~107 tokens)

List affiliates

List affiliates across your campaigns, with earnings and click counts. Requires Pro plan or higher.

Input parameters:

- `campaignId` (string): Only affiliates on this campaign
- `limit` (number): Results per page, max 100 (default 25)
- `page` (number): Page number, starting at 1 (default 1)
- `sort` (string): Sort as field:direction, e.g. joinedAt:desc
- `status` (string): Filter by status

### `list_conversions` (~156 tokens)

List conversions

List conversions (tracked sales) with filters for status, campaign, affiliate and date range. Requires Pro plan or higher.

Input parameters:

- `affiliateId` (string): Only conversions for this affiliate
- `campaignId` (string): Only conversions for this campaign
- `from` (string): Only conversions on or after this ISO date
- `limit` (number): Results per page, max 100 (default 25)
- `page` (number): Page number, starting at 1 (default 1)
- `sort` (string): Sort as field:direction, e.g. createdAt:desc
- `status` (string): Filter by payment status
- `to` (string): Only conversions on or before this ISO date

### `get_stats` (~76 tokens)

Get account stats

Get aggregate stats for the brand: revenue, commissions, conversions, clicks (optionally within a date range), with money also listed per currency in byCurrency. Requires Pro plan or higher.

Input parameters:

- `from` (string): Start of the range as an ISO date
- `to` (string): End of the range as an ISO date

### `create_conversion` (~218 tokens)

Record conversion

Manually record a conversion (a sale to credit to an affiliate). Like any tracked sale, a live one notifies the merchant's team and emails the affiliate it credits. Requires an Ultimate or Scale plan key with write access. Test keys record test data and email nobody.

Input parameters:

- `affiliateId` (string, required): The affiliate to credit
- `amount` (number, required): Sale amount (positive, major units, e.g. 49.99)
- `campaignId` (string, required): The campaign the sale belongs to
- `clickId` (string): Originating click id, when known
- `conversionType` (string): Defaults to one_time
- `currency` (string): 3-letter ISO code; defaults to the campaign currency
- `customerEmail` (string): Buyer email (enables fraud checks)
- `customerName` (string): Buyer name, shown on the commissions page
- `orderId` (string): Your order reference; duplicates are rejected
- `parentConversionId` (string): For recurring: the original conversion id

### `update_conversion` (~215 tokens)

Approve or reject conversion

Approve or reject a pending conversion. Requires an Ultimate or Scale plan key with write access. Refunded conversions are terminal and cannot be changed. Approving a conversion whose commission is more than 5 times its sale (or any commission on a zero sale) is refused with commission_above_sale and changes nothing; show the user the returned sentence and set confirmAboveSale to true only after they confirm. If automatic payouts are switched on for the brand, approving a conversion queues its commission for the next automatic payout run (at least a day later, Stripe payouts only; affiliates paid by PayPal or Wise are paid by hand), and rejecting an approved one takes it back out of that queue. This tool never sends money itself.

Input parameters:

- `confirmAboveSale` (boolean): Approve even though the commission is more than 5 times its sale. Send true only after the user has seen the commission_above_sale message and confirmed it.
- `conversionId` (string, required): The conversion id
- `status` (string, required): New status

### `list_teams` (~62 tokens)

List teams

List Affiliate Teams with rosters, targets and pending awards. Requires the Scale plan.

Input parameters:

- `limit` (number): Results per page, max 100 (default 25)
- `page` (number): Page number, starting at 1 (default 1)

### `get_team` (~35 tokens)

Get team

Get one Affiliate Team with members, campaigns and goals. Requires the Scale plan.

Input parameters:

- `teamId` (string, required): The team id

### `list_team_goals` (~35 tokens)

List team targets

List a team's targets and current-period progress. Requires the Scale plan.

Input parameters:

- `teamId` (string, required): The team id

### `list_awards` (~130 tokens)

List bonus awards

List team bonus awards across all teams, for reconciliation. Read-only: approving awards is deliberately not available to assistants. Requires the Scale plan.

Input parameters:

- `affiliateId` (string): Only awards for this affiliate
- `limit` (number): Results per page, max 100 (default 25)
- `page` (number): Page number, starting at 1 (default 1)
- `periodKey` (string): Filter by period, e.g. 2026-07
- `status` (string): Filter by award status
- `teamId` (string): Only awards for this team

### `list_coupons` (~105 tokens)

List coupons

List registered affiliate coupon codes. Requires Pro plan or higher.

Input parameters:

- `affiliateId` (string): Only coupons for this affiliate
- `campaignId` (string): Only coupons for this campaign
- `code` (string): Look up one code
- `limit` (number): Results per page, max 100 (default 25)
- `page` (number): Page number, starting at 1 (default 1)
- `provider` (string): Filter by provider

### `create_coupon` (~541 tokens)

Create or register coupon code

Give an affiliate a discount code so sales using it are credited to them. With createInProvider true, LinkJolt creates the code in the brand's connected Stripe, Polar or Creem (the one it creates codes in unless provider is given), as the dashboard's Add coupon does: set percentOff, or amountOff with currency, and duration (once, forever, or repeating with durationInMonths). Without it, the code must already exist in the payment platform and this registers it (for a Stripe code customers type, pass its promo_ id). Confirm the code, the discount and the affiliate with the person first. If no platform that creates codes is connected, the answer gives the link to connect Stripe. Requires an Ultimate or Scale plan key with write access; a test key only registers.

Input parameters:

- `affiliateId` (string, required): The affiliate the code is attributed to
- `amountOff` (number): Fixed amount off, with currency: the real discount with createInProvider, a label when registering
- `appleOfferType` (number): Apple offer type: 1 introductory, 2 promotional, 3 offer code
- `campaignId` (string, required): The campaign the coupon belongs to
- `code` (string, required): The readable code, e.g. SARAH20
- `createInProvider` (boolean): Create the code in the brand's connected Stripe, Polar or Creem instead of registering one that already exists
- `creemDiscountId` (string): Registering a Creem code: its discount id (dis_...)
- `currency` (string): 3-letter ISO code for amountOff
- `description` (string): With createInProvider: the discount's name in the payment platform (default: the code)
- `duration` (string): With createInProvider: how long the discount lasts for a customer
- `durationInMonths` (number): With duration repeating: for how many months (1-36)
- `paddleDiscountId` (string): Registering a Paddle code: its discount id (dsc_...)
- `percentOff` (number): Percent off (1-100): the real discount with createInProvider, a label when registering
- `polarDiscountId` (string): Registering a Polar code: its discount id
- `provider` (string): Where the discount lives (default stripe when registering; with createInProvider, the platform the brand creates codes in)
- `stripePromotionCodeId` (string): Registering a Stripe code: its promotion code id (promo_...). Needed for a code customers type: Stripe sends only this id with the sale, never the code text

### `list_payouts` (~127 tokens)

List payouts

List the affiliate payout queue for reconciliation. Requires Pro plan or higher.

Input parameters:

- `affiliateId` (string): Only payouts for this affiliate
- `conversionId` (string): Only payouts for this conversion
- `from` (string): Only payouts on or after this ISO date
- `limit` (number): Results per page, max 100 (default 25)
- `page` (number): Page number, starting at 1 (default 1)
- `status` (string): Filter by payout status
- `to` (string): Only payouts on or before this ISO date

### `search` (~78 tokens)

Search your program

Use this to find records in the caller's own LinkJolt affiliate program by free text: campaign names, affiliate names or emails, coupon codes, and conversion order ids or customer names. Returns result ids that the fetch tool resolves to full records. Requires Pro plan or higher.

Input parameters:

- `query` (string, required): Search text, at least 2 characters

Output parameters:

- `results` (array)

### `get_program_overview` (~70 tokens)

Program overview

This month's program snapshot in one call: revenue, conversions, commissions, top affiliates by commission, and the most recent conversions. In clients that show MCP Apps cards (Claude, ChatGPT) this renders as an interactive card; other clients get the same data as JSON. Requires Pro plan or higher.

Output parameters:

- `commissions` (number)
- `conversionsCount` (number)
- `currency` (string)
- `period` (object)
- `recentConversions` (array)
- `revenue` (number)
- `topAffiliates` (array)

### `fetch` (~58 tokens)

Fetch a record

Use this to fetch the full record behind a search result id (campaign:<id>, affiliate:<id>, coupon:<id>, or conversion:<id>). Requires Pro plan or higher.

Input parameters:

- `id` (string, required): A composite id returned by the search tool

Output parameters:

- `id` (string)
- `metadata` (object)
- `text` (string)
- `title` (string)
- `url` (string)

## Diagnostics

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

## Score history

- 2026-11-05: 69
- 2026-11-04: 68
- 2026-11-03: 68
- 2026-11-02: 67

## Common questions

### What is the LinkJolt MCP server?

LinkJolt is an MCP server listed in the public MCP registry as io.linkjolt/linkjolt. For businesses that pay affiliates: set up and run your affiliate program from your AI assistant. This page covers its hosted endpoint (https://www.linkjolt.io/api/mcp).

### Is the LinkJolt MCP server safe to use?

LinkJolt scores 69 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 LinkJolt MCP server expose?

LinkJolt exposes 28 tools: plan_affiliate_program, get_linkjolt_plans, switch_from_another_tool, get_setup_status, update_business, and 23 more. Their descriptions and schemas cost roughly 4,200 tokens of context every time the server is loaded.

### Does the LinkJolt MCP server require authentication?

No. We connected to LinkJolt without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the LinkJolt MCP server still maintained?

LinkJolt is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://www.linkjolt.io/api/mcp
- Website: https://www.linkjolt.io/developers/mcp
- Changelog RSS feed: https://verifymcp.io/servers/io-linkjolt-linkjolt/api-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-linkjolt-linkjolt/api-mcp.json
- HTML version of this page: https://verifymcp.io/servers/io-linkjolt-linkjolt/api-mcp
