
Loyal Spark
Base MCP (39 tools) on Base: programs, mint, rewards.
What it can do
What data it sees
Do you need an account
An API key from the service settings is required
Base MCP (39 tools) on Base: programs, mint, rewards. lsk_ key; plan limits enforced. /for-agents
How to connect
How to connect Loyal Spark to Claude
The server address to paste into Claude settings:
https://api.loyalspark.online/loyalty-mcp
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect Loyal Spark to ChatGPT
The server address to paste into ChatGPT settings:
https://api.loyalspark.online/loyalty-mcp
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect Loyal Spark to Cursor
The server address to paste into Cursor settings:
https://api.loyalspark.online/loyalty-mcp
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (39)
Raw names from tools/list. Only developers need these.
| get_platform_info | Get info about Loyal Spark protocol on Base L2 |
| get_my_profile | Get authenticated agent's profile |
| 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. |
| get_program_workflow_status | Explain the next merchant action: current_step, required fields, and ordered next_actions (you provide all parameter values) |
| list_loyalty_programs | List loyalty programs owned by the agent's merchant |
| 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 merchant admin AND to the agent's CDP wallet (or explicit extra_minters) so autonomous agents can mint with no follow-up transaction. |
| 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). |
| activate_loyalty_program | For legacy ERC-20 programs: returns unpauseUtility + enableMinting calldata. For B20 programs: no-op (already active). |
| update_program_status | Update program status in database after onchain activation/pause |
| update_program_config | Update default cashback_rate and/or points_per_dollar for a program (same as merchant dashboard sliders) |
| 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. |
| create_reward | Create a new reward redeemable with loyalty tokens |
| 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_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. |
| transfer_loyalty_tokens | Get calldata to transfer loyalty tokens between wallets |
| 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 call confirm_mint_fee (or POST /agent-api/mint/confirm). Unconfirmed fee obligations block future mints. |
| 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. |
| get_token_balance | Get loyalty token balance and tier info for a customer |
| get_program_analytics | Get analytics for your loyalty programs |
| list_marketplace_offers | List active token trading offers on the marketplace |
| redeem_reward | Redeem a reward by providing a verified token transfer transaction hash. Creates a voucher for the customer. |
| use_voucher | Mark a voucher as used (redeemed by customer at merchant). Merchant-only operation. |
| check_voucher_status | Check voucher status by code or ID. Public endpoint — no API key or authentication required. |
| get_platform_stats | Get global platform statistics across all merchants. Admin-only: requires agent owned by an admin wallet. |
| cancel_stale_offers | Cancel marketplace offers that have been active for more than N days with no completions. Admin-only action tool. |
| create_personalized_offer | Create a personalized offer for a specific customer. Use when analytics reveal engagement patterns (e.g., inactive customers, high-value segments). |
| update_reward_status | Activate or deactivate a reward in the catalog. Use to manage reward availability based on analytics. |
| 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. |
| list_my_reports | List your previously submitted reports. Allows reviewing past reports, checking status (new/reviewed/done), and identifying what still needs attention. |
| 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. |
| delete_report | Delete a report that is no longer relevant. Use to clean up outdated or irrelevant reports. |
| 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. |
| 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, partnership gifts. |
| list_gift_certificates | List gift certificates issued by the agent's merchant (with status and redemption info). |
| revoke_gift_certificate | Revoke an active gift certificate (status active → revoked). Only the issuing merchant can revoke. Already-redeemed/minted certificates cannot be revoked. |
| 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. |
| 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'). |
| 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. |
| 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. |
| 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-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). |