protogrid

Search / io.github.aspekt19/loyal-spark

Loyal Spark

R1· needs a key

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

v1.0.4 · active · website · descriptor JSON · versions

An agent can connect on its own if it already holds X_API_KEY, LOYAL_SPARK_TOKEN.Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.
Quality63needs work
Trust79of 100
Uptime, 30 days94%
Latency p50728 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "loyal-spark": {
      "type": "http",
      "url": "https://api.loyalspark.online/loyalty-mcp",
      "headers": {
        "x-api-key": "${X_API_KEY}",
        "Authorization": "Bearer ${LOYAL_SPARK_TOKEN}"
      }
    }
  }
}
claude mcp add --transport http loyal-spark https://api.loyalspark.online/loyalty-mcp --header "x-api-key: ${X_API_KEY}" --header "Authorization: Bearer ${LOYAL_SPARK_TOKEN}"
[mcp_servers.loyal-spark]
url = "https://api.loyalspark.online/loyalty-mcp"
bearer_token_env_var = "LOYAL_SPARK_TOKEN"
env_http_headers = { "x-api-key" = "X_API_KEY" }
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "loyal-spark": {
      "type": "remote",
      "url": "https://api.loyalspark.online/loyalty-mcp",
      "enabled": true,
      "headers": {
        "x-api-key": "{env:X_API_KEY}",
        "Authorization": "Bearer {env:LOYAL_SPARK_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "loyal-spark": {
      "type": "http",
      "url": "https://api.loyalspark.online/loyalty-mcp",
      "headers": {
        "x-api-key": "${X_API_KEY}",
        "Authorization": "Bearer ${LOYAL_SPARK_TOKEN}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=loyal-spark&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYXBpLmxveWFsc3Bhcmsub25saW5lL2xveWFsdHktbWNwIiwiaGVhZGVycyI6eyJ4LWFwaS1rZXkiOiIke1hfQVBJX0tFWX0iLCJBdXRob3JpemF0aW9uIjoiQmVhcmVyICR7TE9ZQUxfU1BBUktfVE9LRU59In19"
}
{
  "servers": {
    "loyal-spark": {
      "type": "http",
      "url": "https://api.loyalspark.online/loyalty-mcp",
      "headers": {
        "x-api-key": "${X_API_KEY}",
        "Authorization": "Bearer ${LOYAL_SPARK_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "loyal-spark": {
      "httpUrl": "https://api.loyalspark.online/loyalty-mcp",
      "headers": {
        "x-api-key": "${X_API_KEY}",
        "Authorization": "Bearer ${LOYAL_SPARK_TOKEN}"
      }
    }
  }
}
extensions:
  "loyal-spark":
    enabled: true
    name: "loyal-spark"
    type: streamable_http
    uri: "https://api.loyalspark.online/loyalty-mcp"
    headers:
      "x-api-key": "${X_API_KEY}"
      "Authorization": "Bearer ${LOYAL_SPARK_TOKEN}"
    timeout: 300

Placeholders to fill from your own secret store: ${X_API_KEY}, ${LOYAL_SPARK_TOKEN}. The registry never accepts secret values.

Quality 63 / 100needs work

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-03-26; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene71 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • fail
    tools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: mark_gift_certificate_minted (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_my_profile (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); create_loyalty_program (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
  • pass
    tools.token_costabout 4,862 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability25 · weight 15
  • warn
    stability.changes6 tool changes in 30 days
  • fail
    stability.rug_pull2 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

42 tools, about 4,862 tokens to load them all · tool set d52bc70a3525 · tools last changed 2026-10-13 · checked 2026-10-19 10:20 UTC

Tool changes

  • set_store_sales_channeladded

    Set how this store's customers spend loyalty points: online (checkout code), offline (voucher at the register), or both (the shopper chooses).

  • update_store_discount_codeadded

    Mark a Shopify discount code used, or cancel it and return the loyalty points. Same actions as the merchant discount-code journal.

  • list_store_discount_codesadded

    List discount codes for this merchant's Shopify store, plus how customers spend points (online code, register voucher, or both).

  • bazaar_pay_and_callchangeddescriptionmeaning changed
    before

    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).

    after · 45% of words in common

    Pay a Loyal Spark x402 URL on api.loyalspark.online with the merchant agent's CDP MPC wallet (EIP-3009 exact scheme, Base USDC). Other hosts are refused before any signature. Requires scope 'mint' and an active CDP wallet. max_usdc default 0.25, hard limit 10.

  • create_gift_certificatechangeddescription
    before

    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.

    after · 87% of words in common

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

  • check_voucher_statuschangeddescriptionmeaning changed
    before

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

    after · 30% of words in common

    Check voucher status by code or ID. Requires a merchant agent key; only vouchers issued by the key owner's store are returned.

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 79 / 100

no-repository
provenance45
liveness97
freshness100
hygiene80

+website +reachable +uptime-94% +updated-8d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://api.loyalspark.online/loyalty-mcp streamable-httpapi_key ${X_API_KEY}yes94%728 ms2025-03-262026-10-19

Tools (42)

activate_loyalty_programFor legacy ERC-20 programs: returns unpauseUtility + enableMinting calldata. For B20 programs: no-op (already active).
bazaar_discover_mcp_serversDiscover third-party MCP servers published in Coinbase CDP's Bazaar. Read-only. Filter by free-text q and/or network.
bazaar_discover_resourcesDiscover 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').
bazaar_pay_and_callPay a Loyal Spark x402 URL on api.loyalspark.online with the merchant agent's CDP MPC wallet (EIP-3009 exact scheme, Base USDC). Other hosts are refused before any signature. Requires scope 'mint' and an active CDP wallet. max_usdc default 0.25, hard limit 10.
bazaar_probe_x402GET 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.
cancel_stale_offersCancel marketplace offers that have been active for more than N days with no completions. Admin-only action tool.
check_voucher_statusCheck voucher status by code or ID. Requires a merchant agent key; only vouchers issued by the key owner's store are returned.
confirm_mint_feeConfirm 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.
create_gift_certificateCreate a gift / welcome certificate (UDS-style) with a unique random redemption code (LOYAL-XXXX-XXXX-XXXX). Customer redeems via QR or by entering the code; merchant then mints tokens on-chain. Use for welcome bonuses, promo campaigns, partnership gifts.
create_loyalty_programGet 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.
create_personalized_offerCreate a personalized offer for a specific customer. Use when analytics reveal engagement patterns (e.g., inactive customers, high-value segments).
create_rewardCreate a new reward redeemable with loyalty tokens
delete_reportDelete a report that is no longer relevant. Use to clean up outdated or irrelevant reports.
earn_pointsCalculate 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.
export_customersExport customer data for a specific loyalty program. Returns wallet addresses, voucher stats, balances, and tier info. Use for analytics, segmentation, and personalized offers.
generate_program_defaultsWorkflow planner: field catalog, required parameters, next_actions, and non-binding examples. External agents must choose their own name, symbol, and economics.
get_my_profileGet authenticated agent's profile
get_platform_infoGet info about Loyal Spark protocol on Base L2
get_platform_statsGet global platform statistics across all merchants. Admin-only: requires agent owned by an admin wallet.
get_program_analyticsGet analytics for your loyalty programs
get_program_workflow_statusExplain the next merchant action: current_step, required fields, and ordered next_actions (you provide all parameter values)
get_token_balanceGet loyalty token balance and tier info for a customer
list_gift_certificatesList gift certificates issued by the agent's merchant (with status and redemption info).
list_loyalty_programsList loyalty programs owned by the agent's merchant
list_marketplace_offersList active token trading offers on the marketplace
list_my_reportsList your previously submitted reports. Allows reviewing past reports, checking status (new/reviewed/done), and identifying what still needs attention.
list_rewardsList rewards for a loyalty program by token_address. Includes redemption metrics (total vouchers issued, redeemed, and last-30-day counts) for each reward.
list_store_discount_codesList discount codes for this merchant's Shopify store, plus how customers spend points (online code, register voucher, or both).
mark_gift_certificate_mintedAfter 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.
mint_loyalty_tokensRecord 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.
redeem_rewardRedeem a reward by providing a verified token transfer transaction hash. Creates a voucher for the customer.
register_loyalty_programRegister a deployed token as a loyalty program in the database. B20 tokens are registered as active; legacy ERC-20 as inactive (activate next).
revoke_gift_certificateRevoke an active gift certificate (status active → revoked). Only the issuing merchant can revoke. Already-redeemed/minted certificates cannot be revoked.
send_reportSend 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.
set_store_sales_channelSet how this store's customers spend loyalty points: online (checkout code), offline (voucher at the register), or both (the shopper chooses).
transfer_loyalty_tokensGet calldata to transfer loyalty tokens between wallets
update_program_configUpdate default cashback_rate and/or points_per_dollar for a program (same as merchant dashboard sliders)
update_program_statusUpdate program status in database after onchain activation/pause
update_report_statusUpdate report status to 'reviewed' or 'done'. Use 'done' when the action items have been completed. Use 'reviewed' to acknowledge a report.
update_reward_statusActivate or deactivate a reward in the catalog. Use to manage reward availability based on analytics.
update_store_discount_codeMark a Shopify discount code used, or cancel it and return the loyalty points. Same actions as the merchant discount-code journal.
use_voucherMark a voucher as used (redeemed by customer at merchant). Merchant-only operation.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.aspekt19/loyal-spark",
  "icons": [
    {
      "src": "https://loyalspark.online/media-kit/app-icon-1024.png",
      "sizes": [
        "any"
      ],
      "mimeType": "image/png"
    }
  ],
  "title": "Loyal Spark",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://api.loyalspark.online/loyalty-mcp",
      "type": "streamable-http",
      "headers": [
        {
          "name": "x-api-key",
          "isSecret": true,
          "isRequired": true,
          "description": "Merchant agent API key (lsk_...). Get at loyalspark.online/for-agents or SIWE."
        },
        {
          "name": "Authorization",
          "isSecret": true,
          "description": "Alternative auth: Bearer lsk_... (same key as x-api-key).",
          "placeholder": "Bearer lsk_..."
        }
      ]
    }
  ],
  "version": "1.0.4",
  "websiteUrl": "https://loyalspark.online/for-agents",
  "description": "Base MCP (39 tools) on Base: programs, mint, rewards. lsk_ key; plan limits enforced. /for-agents"
}