Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Loyal Spark

REMOTE · API.LOYALSPARK.ONLINE · SCANNED SEP 25

Base MCP (39 tools) on Base: programs, mint, rewards. lsk_ key; plan limits enforced. /for-agents

0 this week 77 Trust /100
Trust breakdown (7 categories)

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 Security63
Transport & Reachability100
Schema Quality & AI Usability77
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 3429 tokens (~87/item across 39 items; 39 tools + 0 resources), lean.Pass
  • 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 Coverage97
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 92% 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 5 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "transfer_loyalty_tokens" implies "transfer" 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 39 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities40
  • Spec-recency check failed: implements MCP spec 2025-03-26; the latest is 2026-07-28. See how to fix → Fail
Install

How do I install the Loyal Spark MCP server?

Loyal Spark is a hosted endpoint at https://api.loyalspark.online/loyalty-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 · api.loyalspark.online

# add to Claude Code
claude mcp add --transport http aspekt19-loyal-spark 'https://api.loyalspark.online/loyalty-mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "aspekt19-loyal-spark": {
      "url": "https://api.loyalspark.online/loyalty-mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "aspekt19-loyal-spark": {
      "type": "http",
      "url": "https://api.loyalspark.online/loyalty-mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.aspekt19-loyal-spark]
url = "https://api.loyalspark.online/loyalty-mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "aspekt19-loyal-spark": {
      "type": "remote",
      "url": "https://api.loyalspark.online/loyalty-mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add aspekt19-loyal-spark --url 'https://api.loyalspark.online/loyalty-mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  aspekt19-loyal-spark:
    url: "https://api.loyalspark.online/loyalty-mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "aspekt19-loyal-spark": {
      "Transport": "http",
      "Url": "https://api.loyalspark.online/loyalty-mcp"
    }
  }
}
# add to Vellum
assistant mcp add aspekt19-loyal-spark -t streamable-http -u 'https://api.loyalspark.online/loyalty-mcp'
// mcp.json
{
  "mcpServers": {
    "aspekt19-loyal-spark": {
      "type": "http",
      "url": "https://api.loyalspark.online/loyalty-mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

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.

  • 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
  • 14 Sept 26 +5
    • HTTPS: unverified → pass ▲ security
  • 5 Sept 26 0
    • Stability: 0.97 → pass security
  • 4 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.

  • 2 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.

  • 31 Aug 26 +1

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

  • 29 Aug 26 +1

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

  • 26 Aug 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
Diagnostics

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 25 Sept 2026 · Probed https://api.loyalspark.online/loyalty-mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=loyalspark.online CN=WE1,O=Google Trust Services,C=US 17 Aug 2026 15 Nov 2026 ECDSA 256 ECDSA-SHA256 3b68f3da8345c02b13944793490ec99d
SANs: loyalspark.online, api.loyalspark.online, *.api.loyalspark.online
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 api.loyalspark.online. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
online. present 30961 13 Verified
loyalspark.online. 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
Header Value
strict-transport-security max-age=31536000; includeSubDomains; preload

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://api.loyalspark.online/loyalty-mcp Verified 200
http (plaintext) http://api.loyalspark.online/loyalty-mcp HTTPS enforced 308 https://api.loyalspark.online/loyalty-mcp
MCP tools · 39 exposed · ~3,429 tokens

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 →

Tool Tokens
activate_loyalty_program ~53

For legacy ERC-20 programs: returns unpauseUtility + enableMinting calldata. For B20 programs: no-op (already active).

NameTypeReqDescription
token_addressstringyesToken contract address (0x...)

No output schema declared.

No examples provided.

bazaar_discover_mcp_servers ~95

Discover third-party MCP servers published in Coinbase CDP's Bazaar. Read-only. Filter by free-text q and/or network.

NameTypeReqDescription
cursorstring–Pagination cursor
limitnumber–Max rows (default 25, max 100)
networkstring–Filter by network, e.g. 'base'
qstring–Free-text filter matched against the server JSON

No output schema declared.

No examples provided.

bazaar_discover_resources ~128

Discover third-party x402-paid resources published in Coinbase CDP's Bazaar (docs, data feeds, AI inference, etc). Read-only. Filter by free-text q and/or network (e.g. 'base').

NameTypeReqDescription
cursorstring–Pagination cursor from a previous call
limitnumber–Max rows returned (default 25, max 100)
networkstring–Filter by network, e.g. 'base' or 'base-sepolia'
qstring–Free-text filter matched against the resource JSON (name/description/url)

No output schema declared.

No examples provided.

bazaar_pay_and_call ~232

Pay and call any x402-paid HTTPS endpoint using the merchant agent's CDP MPC wallet (EIP-3009 exact scheme on Base USDC). Probes the URL for HTTP 402, picks a compatible requirement, signs TransferWithAuthorization via CDP, retries with X-PAYMENT header, and returns the paid response. Requires scope 'mint' and a pre-created CDP wallet. Safety cap: max_usdc (default 0.25, hard limit 10).

NameTypeReqDescription
allowed_networksarray–Networks to accept (default ['base'])
allowed_schemesarray–x402 schemes to accept (default ['exact'])
body––Optional JSON request body for non-GET methods
headersobject–Extra request headers (Accept/Content-Type auto-set)
max_usdcnumber–Spend cap for THIS call in USDC (default 0.25, must be ≤ 10)
methodstring–HTTP method (default GET)
urlstringyesFull https:// URL of the x402 resource

No output schema declared.

No examples provided.

bazaar_probe_x402 ~68

GET a candidate x402 URL and, if it responds HTTP 402, return the parsed payment requirements (accepts[]) so the caller can decide whether to pay. HTTPS only. No signing performed.

NameTypeReqDescription
urlstringyesFull https:// URL of the x402-paid endpoint

No output schema declared.

No examples provided.

cancel_stale_offers ~54

Cancel marketplace offers that have been active for more than N days with no completions. Admin-only action tool.

NameTypeReqDescription
max_age_daysnumber–Cancel offers older than this many days (default: 14)

No output schema declared.

No examples provided.

check_voucher_status ~66

Check voucher status by code or ID. Public endpoint — no API key or authentication required.

NameTypeReqDescription
codestring–Voucher code (e.g. LOYAL-XXXX-XXXX-XXXX-XXXX)
voucher_idstring–Voucher UUID (alternative to code)

No output schema declared.

No examples provided.

confirm_mint_fee ~102

Confirm that the protocol fee transaction for a previous mint/earn was broadcast on Base. Verifies the fee mint on-chain and clears the obligation. Unconfirmed fee obligations block future mints.

NameTypeReqDescription
fee_tx_hashstringyesTransaction hash of the protocol fee mint
obligation_idstringyesfee_obligation_id returned by mint_loyalty_tokens or earn_points
recipient_tx_hashstring–Optional transaction hash of the recipient mint

No output schema declared.

No examples provided.

create_gift_certificate ~258

Create a gift / welcome certificate (UDS-style) with a unique 6-character redemption code (LOYAL-XXXXXX). Customer redeems via QR or by entering the code; merchant then mints tokens on-chain. Use for welcome bonuses, promo campaigns, partnership gifts.

NameTypeReqDescription
descriptionstring–Optional descriptive text shown to the customer
expires_in_daysnumber–Validity period in days (omit for no expiry)
image_urlstring–Optional public image URL for the cert design
max_redemption_percentnumber–Max % of any future purchase the customer can pay with these tokens (5–100). Default 50.
points_per_dollarnumber–Optional override of program rate (e.g. 10 = 10 tokens per $1). Defaults to program's points_per_dollar.
quantitynumber–Number of certificates to create as a batch (1–100, default 1)
titlestring–Display title (default: 'Gift Certificate')
token_addressstringyesERC-20 loyalty token address (must belong to the agent's merchant)
usd_amountnumberyesCertificate face value in USD (positive)

No output schema declared.

No examples provided.

create_loyalty_program ~318

Get factory calldata to deploy a new loyalty token on Base. Defaults to B20 (Base native ERC-20 superset, single tx, active immediately). Pass token_standard='erc20' for the legacy factory. For B20, MINT_ROLE is granted atomically to the merchant admin AND to the agent's CDP wallet (or explicit extra_minters) so autonomous agents can mint with no follow-up transaction.

NameTypeReqDescription
agent_wallet_addressstring–(B20 only) Additional wallet to grant MINT_ROLE atomically. Defaults to the agent's active CDP MPC wallet if not provided.
auto_generateboolean–Internal automation only — fills missing name/symbol from examples. External agents should pass explicit name and symbol.
business_contextobject–Optional context for examples only
expiration_daysnumber–Program duration in days (default: 365)
extra_mintersarray–(B20 only) Extra addresses to grant MINT_ROLE atomically in the same deploy tx.
localestring––
namestring–Program name (required for external agents)
preferred_stylestring––
symbolstring–Token symbol, 2-5 chars (required for external agents)
target_audiencestring––
token_standardstring–'b20' (default, single-tx deploy on Base precompile factory) or 'erc20' (legacy factory, requires activate_loyalty_program follow-up)

No output schema declared.

No examples provided.

create_personalized_offer ~136

Create a personalized offer for a specific customer. Use when analytics reveal engagement patterns (e.g., inactive customers, high-value segments).

NameTypeReqDescription
bonus_tokensnumber–Bonus tokens to award
customer_addressstringyesCustomer wallet address
descriptionstring–Offer description
discount_percentagenumber–Discount percentage (0-100)
titlestringyesOffer title (e.g., 'Welcome back! 20% bonus tokens')
token_addressstringyesToken contract address
valid_daysnumber–How many days the offer is valid (default: 7)

No output schema declared.

No examples provided.

create_reward ~58

Create a new reward redeemable with loyalty tokens

NameTypeReqDescription
costnumberyesToken cost to redeem
descriptionstring–Reward description
namestringyesReward name
token_addressstringyesToken contract address

No output schema declared.

No examples provided.

delete_report ~40

Delete a report that is no longer relevant. Use to clean up outdated or irrelevant reports.

NameTypeReqDescription
report_idstringyesUUID of the report to delete

No output schema declared.

No examples provided.

earn_points ~152

Calculate and mint loyalty tokens based on purchase amount and program's cashback rate. Returns a fee-first `calls[]` bundle (protocol fee mint first, then the customer mint) — submit in order, atomically via EIP-5792 if supported, then call confirm_mint_fee (or POST /agent-api/mint/confirm). Unconfirmed fee obligations block future mints.

NameTypeReqDescription
cashback_ratenumber–Override cashback rate (%). If omitted, uses the program's default rate.
customer_addressstringyesCustomer wallet (0x...)
purchase_amountnumberyesPurchase amount in currency units (e.g. dollars)
token_addressstringyesToken contract address (0x...)

No output schema declared.

No examples provided.

export_customers ~55

Export customer data for a specific loyalty program. Returns wallet addresses, voucher stats, balances, and tier info. Use for analytics, segmentation, and personalized offers.

NameTypeReqDescription
token_addressstringyesToken address of the loyalty program

No output schema declared.

No examples provided.

generate_program_defaults ~85

Workflow planner: field catalog, required parameters, next_actions, and non-binding examples. External agents must choose their own name, symbol, and economics.

NameTypeReqDescription
business_namestring––
categorystring––
descriptionstring––
localestring––
preferred_stylestring––
target_audiencestring––

No output schema declared.

No examples provided.

get_my_profile ~15

Get authenticated agent's profile

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_platform_info ~20

Get info about Loyal Spark protocol on Base L2

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_platform_stats ~28

Get global platform statistics across all merchants. Admin-only: requires agent owned by an admin wallet.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_program_analytics ~17

Get analytics for your loyalty programs

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_program_workflow_status ~46

Explain the next merchant action: current_step, required fields, and ordered next_actions (you provide all parameter values)

NameTypeReqDescription
token_addressstring–Optional token to inspect

No output schema declared.

No examples provided.

get_token_balance ~41

Get loyalty token balance and tier info for a customer

NameTypeReqDescription
customer_addressstringyesCustomer wallet
token_addressstringyesToken contract address

No output schema declared.

No examples provided.

list_gift_certificates ~81

List gift certificates issued by the agent's merchant (with status and redemption info).

NameTypeReqDescription
limitnumber–Max rows (default 50, max 200)
statusstring–Filter by status: active, pending_mint, redeemed, expired, revoked
token_addressstring–Filter by program token address (optional)

No output schema declared.

No examples provided.

list_loyalty_programs ~34

List loyalty programs owned by the agent's merchant

NameTypeReqDescription
include_expiredboolean–Include expired programs

No output schema declared.

No examples provided.

list_marketplace_offers ~48

List active token trading offers on the marketplace

NameTypeReqDescription
limitnumber–Max results (1-100)
statusstring–Filter: active/completed/cancelled

No output schema declared.

No examples provided.

list_my_reports ~73

List your previously submitted reports. Allows reviewing past reports, checking status (new/reviewed/done), and identifying what still needs attention.

NameTypeReqDescription
limitnumber–Max results 1-50 (default: 20)
statusstring–Filter by status: new, reviewed, done (optional)

No output schema declared.

No examples provided.

list_rewards ~53

List rewards for a loyalty program by token_address. Includes redemption metrics (total vouchers issued, redeemed, and last-30-day counts) for each reward.

NameTypeReqDescription
token_addressstringyesToken contract address (0x...)

No output schema declared.

No examples provided.

mark_gift_certificate_minted ~78

After the merchant submits the on-chain mint transaction for a claimed gift certificate, call this to mark it as minted (status pending_mint → redeemed) and store the mint tx hash.

NameTypeReqDescription
certificate_idstringyesUUID of the certificate
transaction_hashstringyesBase L2 mint transaction hash (0x...)

No output schema declared.

No examples provided.

mint_loyalty_tokens ~139

Record mint intent and get a fee-first `calls[]` bundle: protocol fee mint FIRST, then the recipient mint. The protocol fee is charged in the merchant's own loyalty tokens (not USDC). Submit both calls in order (atomically via EIP-5792 send_calls if your wallet supports it), then call confirm_mint_fee (or POST /agent-api/mint/confirm) with the fee tx hash. Unconfirmed fee obligations block future mints.

NameTypeReqDescription
amountnumberyesTokens to mint
recipientstringyesRecipient wallet (0x...)
token_addressstringyesToken contract address

No output schema declared.

No examples provided.

redeem_reward ~78

Redeem a reward by providing a verified token transfer transaction hash. Creates a voucher for the customer.

NameTypeReqDescription
customer_addressstringyesWallet address of the customer who transferred tokens
reward_idstringyesUUID of the reward to redeem
transaction_hashstringyesOnchain tx hash of the token transfer from customer to merchant

No output schema declared.

No examples provided.

register_loyalty_program ~167

Register a deployed token as a loyalty program in the database. B20 tokens are registered as active; legacy ERC-20 as inactive (activate next).

NameTypeReqDescription
cashback_ratenumber–Default cashback percent for earn (1–100). Omit for DB default (5).
expiration_daysnumber–Duration in days (default: 365)
namestringyesProgram name
points_per_dollarnumber–Loyalty points per $1 spent (1–1000). Omit for DB default (1).
symbolstringyesToken symbol
token_addressstringyesDeployed token contract address (0x...)
token_standardstring–'b20' (default) or 'erc20' (legacy)

No output schema declared.

No examples provided.

revoke_gift_certificate ~63

Revoke an active gift certificate (status active → revoked). Only the issuing merchant can revoke. Already-redeemed/minted certificates cannot be revoked.

NameTypeReqDescription
certificate_idstringyesUUID of the certificate from create_gift_certificate / list_gift_certificates

No output schema declared.

No examples provided.

send_report ~160

Send a report to the developer/owner. Use this to submit SEO audits, growth ideas, data reports, anomalies, recommendations, or weekly summaries. The report will appear in the merchant's Agent Reports dashboard.

NameTypeReqDescription
action_itemsarray–List of suggested action items
agent_rolestringyesYour role: ceo, seo, growth, or analyst
contentstringyesReport body text (max 10000 chars)
prioritystring–Priority: low, medium, high, or critical
report_typestringyesType: seo_audit, growth_idea, data_report, anomaly, task, recommendation, or weekly_report
titlestringyesReport title (max 500 chars)

No output schema declared.

No examples provided.

transfer_loyalty_tokens ~56

Get calldata to transfer loyalty tokens between wallets

NameTypeReqDescription
amountnumberyesTokens to transfer
tostringyesRecipient wallet (0x...)
token_addressstringyesToken contract address (0x...)

No output schema declared.

No examples provided.

update_program_config ~97

Update default cashback_rate and/or points_per_dollar for a program (same as merchant dashboard sliders)

NameTypeReqDescription
cashback_ratenumber–New default cashback % for earn (1–100). Omit to leave unchanged.
points_per_dollarnumber–New points per $1 (0–1000, exclusive 0). Omit to leave unchanged.
token_addressstringyesToken contract address (0x...)

No output schema declared.

No examples provided.

update_program_status ~48

Update program status in database after onchain activation/pause

NameTypeReqDescription
statusstringyesNew status: active, paused, or inactive
token_addressstringyesToken contract address

No output schema declared.

No examples provided.

update_report_status ~68

Update report status to 'reviewed' or 'done'. Use 'done' when the action items have been completed. Use 'reviewed' to acknowledge a report.

NameTypeReqDescription
report_idstringyesUUID of the report
statusstringyesNew status: reviewed or done

No output schema declared.

No examples provided.

update_reward_status ~54

Activate or deactivate a reward in the catalog. Use to manage reward availability based on analytics.

NameTypeReqDescription
is_activebooleanyestrue to activate, false to deactivate
reward_idstringyesUUID of the reward

No output schema declared.

No examples provided.

use_voucher ~65

Mark a voucher as used (redeemed by customer at merchant). Merchant-only operation.

NameTypeReqDescription
voucher_codestring–Voucher code (e.g. LOYAL-XXXX-XXXX-XXXX-XXXX)
voucher_idstring–Voucher UUID (alternative to code)

No output schema declared.

No examples provided.

Common questions

What is the Loyal Spark MCP server?

Loyal Spark is an MCP server listed in the public MCP registry as io.github.aspekt19/loyal-spark. Base MCP (39 tools) on Base: programs, mint, rewards. lsk_ key; plan limits enforced. /for-agents. This page covers its hosted endpoint (https://api.loyalspark.online/loyalty-mcp).

Is the Loyal Spark MCP server safe to use?

Loyal Spark scores 77 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 Loyal Spark MCP server expose?

Loyal Spark exposes 39 tools: get_platform_info, get_my_profile, generate_program_defaults, get_program_workflow_status, list_loyalty_programs, and 34 more. Their descriptions and schemas cost roughly 3,429 tokens of context every time the server is loaded.

Does the Loyal Spark MCP server require authentication?

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

Is the Loyal Spark MCP server still maintained?

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