Loyal Spark is a remote MCP server that gives an AI agent 39 tools, among them activate_loyalty_program, bazaar_discover_mcp_servers, bazaar_discover_resources. It answers at https://api.loyalspark.online/loyalty-mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 6 of 6 times since 11 September 2026; the last check, on 21 October 2026, succeeded.
Base MCP (39 tools) on Base: programs, mint, rewards. lsk_ key; plan limits enforced. /for-agents
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
activate_loyalty_program | For legacy ERC-20 programs: returns unpauseUtility + enableMinting calldata. For B20 programs: no-op (already active). Inputs: token_address |
bazaar_discover_mcp_servers | Discover third-party MCP servers published in Coinbase CDP's Bazaar. Read-only. Filter by free-text q and/or network. Inputs: q, network, limit, cursor |
bazaar_discover_resources | 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'). Inputs: q, network, limit, cursor |
bazaar_pay_and_call | 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-P Inputs: url, method, body, headers, max_usdc, allowed_networks |
bazaar_probe_x402 | 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. Inputs: url |
cancel_stale_offers | Cancel marketplace offers that have been active for more than N days with no completions. Admin-only action tool. Inputs: max_age_days |
check_voucher_status | Check voucher status by code or ID. Public endpoint — no API key or authentication required. Inputs: code, voucher_id |
confirm_mint_fee | 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. Inputs: obligation_id, fee_tx_hash, recipient_tx_hash |
create_gift_certificate | 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, partne Inputs: token_address, usd_amount, points_per_dollar, max_redemption_percent, title, description |
create_loyalty_program | 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 me Inputs: name, symbol, expiration_days, token_standard, agent_wallet_address, extra_minters |
create_personalized_offer | Create a personalized offer for a specific customer. Use when analytics reveal engagement patterns (e.g., inactive customers, high-value segments). Inputs: token_address, customer_address, title, description, bonus_tokens, discount_percentage |
create_reward | Create a new reward redeemable with loyalty tokens Inputs: token_address, name, description, cost |
delete_report | Delete a report that is no longer relevant. Use to clean up outdated or irrelevant reports. Inputs: report_id |
earn_points | 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 cal Inputs: token_address, customer_address, purchase_amount, cashback_rate |
export_customers | Export customer data for a specific loyalty program. Returns wallet addresses, voucher stats, balances, and tier info. Use for analytics, segmentation, and personalized offers. Inputs: token_address |
generate_program_defaults | Workflow planner: field catalog, required parameters, next_actions, and non-binding examples. External agents must choose their own name, symbol, and economics. Inputs: business_name, category, description, locale, preferred_style, target_audience |
get_my_profile | Get authenticated agent's profile |
get_platform_info | Get info about Loyal Spark protocol on Base L2 |
get_platform_stats | Get global platform statistics across all merchants. Admin-only: requires agent owned by an admin wallet. |
get_program_analytics | Get analytics for your loyalty programs |
get_program_workflow_status | Explain the next merchant action: current_step, required fields, and ordered next_actions (you provide all parameter values) Inputs: token_address |
get_token_balance | Get loyalty token balance and tier info for a customer Inputs: token_address, customer_address |
list_gift_certificates | List gift certificates issued by the agent's merchant (with status and redemption info). Inputs: token_address, status, limit |
list_loyalty_programs | List loyalty programs owned by the agent's merchant Inputs: include_expired |
list_marketplace_offers | List active token trading offers on the marketplace Inputs: status, limit |
list_my_reports | List your previously submitted reports. Allows reviewing past reports, checking status (new/reviewed/done), and identifying what still needs attention. Inputs: status, limit |
list_rewards | List rewards for a loyalty program by token_address. Includes redemption metrics (total vouchers issued, redeemed, and last-30-day counts) for each reward. Inputs: token_address |
mark_gift_certificate_minted | 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. Inputs: certificate_id, transaction_hash |
mint_loyalty_tokens | 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 Inputs: token_address, recipient, amount |
redeem_reward | Redeem a reward by providing a verified token transfer transaction hash. Creates a voucher for the customer. Inputs: reward_id, customer_address, transaction_hash |
register_loyalty_program | Register a deployed token as a loyalty program in the database. B20 tokens are registered as active; legacy ERC-20 as inactive (activate next). Inputs: name, symbol, token_address, expiration_days, cashback_rate, points_per_dollar |
revoke_gift_certificate | Revoke an active gift certificate (status active → revoked). Only the issuing merchant can revoke. Already-redeemed/minted certificates cannot be revoked. Inputs: certificate_id |
send_report | 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. Inputs: agent_role, report_type, title, content, priority, action_items |
transfer_loyalty_tokens | Get calldata to transfer loyalty tokens between wallets Inputs: token_address, to, amount |
update_program_config | Update default cashback_rate and/or points_per_dollar for a program (same as merchant dashboard sliders) Inputs: token_address, cashback_rate, points_per_dollar |
update_program_status | Update program status in database after onchain activation/pause Inputs: token_address, status |
update_report_status | Update report status to 'reviewed' or 'done'. Use 'done' when the action items have been completed. Use 'reviewed' to acknowledge a report. Inputs: report_id, status |
update_reward_status | Activate or deactivate a reward in the catalog. Use to manage reward availability based on analytics. Inputs: reward_id, is_active |
use_voucher | Mark a voucher as used (redeemed by customer at merchant). Merchant-only operation. Inputs: voucher_code, voucher_id |
Every block below points at https://api.loyalspark.online/loyalty-mcp. Pick your client and copy.
claude mcp add --transport http loyal-spark https://api.loyalspark.online/loyalty-mcp
{
"mcpServers": {
"loyal-spark": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.loyalspark.online/loyalty-mcp"]
}
}
}{
"mcpServers": {
"loyal-spark": {
"url": "https://api.loyalspark.online/loyalty-mcp"
}
}
}{
"servers": {
"loyal-spark": {
"type": "http",
"url": "https://api.loyalspark.online/loyalty-mcp"
}
}
}{
"context_servers": {
"loyal-spark": {
"url": "https://api.loyalspark.online/loyalty-mcp"
}
}
}{
"mcpServers": {
"loyal-spark": {
"serverUrl": "https://api.loyalspark.online/loyalty-mcp"
}
}
}{
"mcpServers": {
"loyal-spark": {
"url": "https://api.loyalspark.online/loyalty-mcp"
}
}
}name: Loyal Spark
version: 0.0.1
schema: v1
mcpServers:
- name: Loyal Spark
type: streamable-http
url: https://api.loyalspark.online/loyalty-mcp{
"mcpServers": {
"loyal-spark": {
"httpUrl": "https://api.loyalspark.online/loyalty-mcp"
}
}
}{
"mcpServers": {
"loyal-spark": {
"type": "http",
"url": "https://api.loyalspark.online/loyalty-mcp"
}
}
}{
"mcpServers": {
"loyal-spark": {
"url": "https://api.loyalspark.online/loyalty-mcp"
}
}
}goose://extension?url=https%3A%2F%2Fapi.loyalspark.online%2Floyalty-mcp&type=streamable_http&id=loyal-spark&name=Loyal%20Spark
It answered our last check on 21 October 2026 in 607 ms. Over 6 checks since 11 September 2026 it answered 6. Status here comes from Neuronto's own probes, not from the publisher.
39, as returned by the server's own tools/list on 13 September 2026: activate_loyalty_program, bazaar_discover_mcp_servers, bazaar_discover_resources, bazaar_pay_and_call, bazaar_probe_x402, cancel_stale_offers, check_voucher_status, confirm_mint_fee, and 31 more.
It answered our last check on 21 October 2026 in 607 ms. Over 6 checks since 11 September 2026 it answered 6.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://api.loyalspark.online/loyalty-mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: io.github.aspekt19. Endpoint host: api.loyalspark.online. ARD identifier: urn:air:io.github.aspekt19:mcp:loyal-spark.
First indexed 10 September 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.