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 AUG 9

Onchain loyalty MCP on Base: programs, mint, rewards, vouchers for AI agents.

56 Trust /100
Trust breakdown (6 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 →

Endpoint Security51
Transport & Reachability100
Schema Quality & AI Usability64
  • 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 Management10
  • Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
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
Capabilities40
  • Spec-recency check failed: implements MCP spec 2025-03-26; the latest is 2026-07-28. See how to fix → Fail
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · api.loyalspark.online

# add to Claude Code
claude mcp add --transport http aspekt19-loyal-spark 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"
// 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.

  • 8 Aug 26 +1

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

  • 7 Aug 26 0
    • Stability: unverified → 0.03 functional
  • 6 Aug 26 55

    First indexed and scored.

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 9 Aug 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 19 Jun 2026 17 Sept 2026 ECDSA 256 ECDSA-SHA256 8153302467113a280ed31ada97949f77
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
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
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 Inconclusive 400
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.

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
cursorstringPagination cursor
limitnumberMax rows (default 25, max 100)
networkstringFilter by network, e.g. 'base'
qstringFree-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
cursorstringPagination cursor from a previous call
limitnumberMax rows returned (default 25, max 100)
networkstringFilter by network, e.g. 'base' or 'base-sepolia'
qstringFree-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_networksarrayNetworks to accept (default ['base'])
allowed_schemesarrayx402 schemes to accept (default ['exact'])
bodyOptional JSON request body for non-GET methods
headersobjectExtra request headers (Accept/Content-Type auto-set)
max_usdcnumberSpend cap for THIS call in USDC (default 0.25, must be ≤ 10)
methodstringHTTP 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_daysnumberCancel 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
codestringVoucher code (e.g. LOYAL-XXXX-XXXX-XXXX-XXXX)
voucher_idstringVoucher 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_hashstringOptional 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
descriptionstringOptional descriptive text shown to the customer
expires_in_daysnumberValidity period in days (omit for no expiry)
image_urlstringOptional public image URL for the cert design
max_redemption_percentnumberMax % of any future purchase the customer can pay with these tokens (5–100). Default 50.
points_per_dollarnumberOptional override of program rate (e.g. 10 = 10 tokens per $1). Defaults to program's points_per_dollar.
quantitynumberNumber of certificates to create as a batch (1–100, default 1)
titlestringDisplay 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_generatebooleanInternal automation only — fills missing name/symbol from examples. External agents should pass explicit name and symbol.
business_contextobjectOptional context for examples only
expiration_daysnumberProgram duration in days (default: 365)
extra_mintersarray(B20 only) Extra addresses to grant MINT_ROLE atomically in the same deploy tx.
localestring
namestringProgram name (required for external agents)
preferred_stylestring
symbolstringToken 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_tokensnumberBonus tokens to award
customer_addressstringyesCustomer wallet address
descriptionstringOffer description
discount_percentagenumberDiscount percentage (0-100)
titlestringyesOffer title (e.g., 'Welcome back! 20% bonus tokens')
token_addressstringyesToken contract address
valid_daysnumberHow 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
descriptionstringReward 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_ratenumberOverride 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_addressstringOptional 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
limitnumberMax rows (default 50, max 200)
statusstringFilter by status: active, pending_mint, redeemed, expired, revoked
token_addressstringFilter 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_expiredbooleanInclude expired programs

No output schema declared.

No examples provided.

list_marketplace_offers ~48

List active token trading offers on the marketplace

NameTypeReqDescription
limitnumberMax results (1-100)
statusstringFilter: 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
limitnumberMax results 1-50 (default: 20)
statusstringFilter 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_ratenumberDefault cashback percent for earn (1–100). Omit for DB default (5).
expiration_daysnumberDuration in days (default: 365)
namestringyesProgram name
points_per_dollarnumberLoyalty 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_itemsarrayList of suggested action items
agent_rolestringyesYour role: ceo, seo, growth, or analyst
contentstringyesReport body text (max 10000 chars)
prioritystringPriority: 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_ratenumberNew default cashback % for earn (1–100). Omit to leave unchanged.
points_per_dollarnumberNew 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_codestringVoucher code (e.g. LOYAL-XXXX-XXXX-XXXX-XXXX)
voucher_idstringVoucher UUID (alternative to code)

No output schema declared.

No examples provided.