Server definition
- Hash
- sha256:975785902a1887eb495986392275ab76850dc34e7672238c5c14f2004f263354
- What it is
- What a remote MCP server returned when asked what it offers: 39 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"description": "For legacy ERC-20 programs: returns unpauseUtility + enableMinting calldata. For B20 programs: no-op (already active).",
"inputSchema": {
"properties": {
"token_address": {
"description": "Token contract address (0x...)",
"type": "string"
}
},
"required": [
"token_address"
],
"type": "object"
},
"name": "activate_loyalty_program",
"outputSchema": null
},
{
"description": "Discover third-party MCP servers published in Coinbase CDP's Bazaar. Read-only. Filter by free-text q and/or network.",
"inputSchema": {
"properties": {
"cursor": {
"description": "Pagination cursor",
"type": "string"
},
"limit": {
"description": "Max rows (default 25, max 100)",
"type": "number"
},
"network": {
"description": "Filter by network, e.g. 'base'",
"type": "string"
},
"q": {
"description": "Free-text filter matched against the server JSON",
"type": "string"
}
},
"type": "object"
},
"name": "bazaar_discover_mcp_servers",
"outputSchema": null
},
{
"description": "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').",
"inputSchema": {
"properties": {
"cursor": {
"description": "Pagination cursor from a previous call",
"type": "string"
},
"limit": {
"description": "Max rows returned (default 25, max 100)",
"type": "number"
},
"network": {
"description": "Filter by network, e.g. 'base' or 'base-sepolia'",
"type": "string"
},
"q": {
"description": "Free-text filter matched against the resource JSON (name/description/url)",
"type": "string"
}
},
"type": "object"
},
"name": "bazaar_discover_resources",
"outputSchema": null
},
{
"description": "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).",
"inputSchema": {
"properties": {
"allowed_networks": {
"description": "Networks to accept (default ['base'])",
"items": {
"type": "string"
},
"type": "array"
},
"allowed_schemes": {
"description": "x402 schemes to accept (default ['exact'])",
"items": {
"type": "string"
},
"type": "array"
},
"body": {
"description": "Optional JSON request body for non-GET methods"
},
"headers": {
"description": "Extra request headers (Accept/Content-Type auto-set)",
"type": "object"
},
"max_usdc": {
"description": "Spend cap for THIS call in USDC (default 0.25, must be ≤ 10)",
"type": "number"
},
"method": {
"description": "HTTP method (default GET)",
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE"
],
"type": "string"
},
"url": {
"description": "Full https:// URL of the x402 resource",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "bazaar_pay_and_call",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"url": {
"description": "Full https:// URL of the x402-paid endpoint",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "bazaar_probe_x402",
"outputSchema": null
},
{
"description": "Cancel marketplace offers that have been active for more than N days with no completions. Admin-only action tool.",
"inputSchema": {
"properties": {
"max_age_days": {
"description": "Cancel offers older than this many days (default: 14)",
"type": "number"
}
},
"type": "object"
},
"name": "cancel_stale_offers",
"outputSchema": null
},
{
"description": "Check voucher status by code or ID. Requires a merchant agent key; only vouchers issued by the key owner's store are returned.",
"inputSchema": {
"properties": {
"code": {
"description": "Voucher code (e.g. LOYAL-XXXX-XXXX-XXXX-XXXX)",
"type": "string"
},
"voucher_id": {
"description": "Voucher UUID (alternative to code)",
"type": "string"
}
},
"type": "object"
},
"name": "check_voucher_status",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"fee_tx_hash": {
"description": "Transaction hash of the protocol fee mint",
"type": "string"
},
"obligation_id": {
"description": "fee_obligation_id returned by mint_loyalty_tokens or earn_points",
"type": "string"
},
"recipient_tx_hash": {
"description": "Optional transaction hash of the recipient mint",
"type": "string"
}
},
"required": [
"obligation_id",
"fee_tx_hash"
],
"type": "object"
},
"name": "confirm_mint_fee",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"description": {
"description": "Optional descriptive text shown to the customer",
"type": "string"
},
"expires_in_days": {
"description": "Validity period in days (omit for no expiry)",
"type": "number"
},
"image_url": {
"description": "Optional public image URL for the cert design",
"type": "string"
},
"max_redemption_percent": {
"description": "Max % of any future purchase the customer can pay with these tokens (5–100). Default 50.",
"type": "number"
},
"points_per_dollar": {
"description": "Optional override of program rate (e.g. 10 = 10 tokens per $1). Defaults to program's points_per_dollar.",
"type": "number"
},
"quantity": {
"description": "Number of certificates to create as a batch (1–100, default 1)",
"type": "number"
},
"title": {
"description": "Display title (default: 'Gift Certificate')",
"type": "string"
},
"token_address": {
"description": "ERC-20 loyalty token address (must belong to the agent's merchant)",
"type": "string"
},
"usd_amount": {
"description": "Certificate face value in USD (positive)",
"type": "number"
}
},
"required": [
"token_address",
"usd_amount"
],
"type": "object"
},
"name": "create_gift_certificate",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"agent_wallet_address": {
"description": "(B20 only) Additional wallet to grant MINT_ROLE atomically. Defaults to the agent's active CDP MPC wallet if not provided.",
"type": "string"
},
"auto_generate": {
"description": "Internal automation only — fills missing name/symbol from examples. External agents should pass explicit name and symbol.",
"type": "boolean"
},
"business_context": {
"description": "Optional context for examples only",
"type": "object"
},
"expiration_days": {
"description": "Program duration in days (default: 365)",
"type": "number"
},
"extra_minters": {
"description": "(B20 only) Extra addresses to grant MINT_ROLE atomically in the same deploy tx.",
"items": {
"type": "string"
},
"type": "array"
},
"locale": {
"type": "string"
},
"name": {
"description": "Program name (required for external agents)",
"type": "string"
},
"preferred_style": {
"type": "string"
},
"symbol": {
"description": "Token symbol, 2-5 chars (required for external agents)",
"type": "string"
},
"target_audience": {
"type": "string"
},
"token_standard": {
"description": "'b20' (default, single-tx deploy on Base precompile factory) or 'erc20' (legacy factory, requires activate_loyalty_program follow-up)",
"type": "string"
}
},
"type": "object"
},
"name": "create_loyalty_program",
"outputSchema": null
},
{
"description": "Create a personalized offer for a specific customer. Use when analytics reveal engagement patterns (e.g., inactive customers, high-value segments).",
"inputSchema": {
"properties": {
"bonus_tokens": {
"description": "Bonus tokens to award",
"type": "number"
},
"customer_address": {
"description": "Customer wallet address",
"type": "string"
},
"description": {
"description": "Offer description",
"type": "string"
},
"discount_percentage": {
"description": "Discount percentage (0-100)",
"type": "number"
},
"title": {
"description": "Offer title (e.g., 'Welcome back! 20% bonus tokens')",
"type": "string"
},
"token_address": {
"description": "Token contract address",
"type": "string"
},
"valid_days": {
"description": "How many days the offer is valid (default: 7)",
"type": "number"
}
},
"required": [
"token_address",
"customer_address",
"title"
],
"type": "object"
},
"name": "create_personalized_offer",
"outputSchema": null
},
{
"description": "Create a new reward redeemable with loyalty tokens",
"inputSchema": {
"properties": {
"cost": {
"description": "Token cost to redeem",
"type": "number"
},
"description": {
"description": "Reward description",
"type": "string"
},
"name": {
"description": "Reward name",
"type": "string"
},
"token_address": {
"description": "Token contract address",
"type": "string"
}
},
"required": [
"token_address",
"name",
"cost"
],
"type": "object"
},
"name": "create_reward",
"outputSchema": null
},
{
"description": "Delete a report that is no longer relevant. Use to clean up outdated or irrelevant reports.",
"inputSchema": {
"properties": {
"report_id": {
"description": "UUID of the report to delete",
"type": "string"
}
},
"required": [
"report_id"
],
"type": "object"
},
"name": "delete_report",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"cashback_rate": {
"description": "Override cashback rate (%). If omitted, uses the program's default rate.",
"type": "number"
},
"customer_address": {
"description": "Customer wallet (0x...)",
"type": "string"
},
"purchase_amount": {
"description": "Purchase amount in currency units (e.g. dollars)",
"type": "number"
},
"token_address": {
"description": "Token contract address (0x...)",
"type": "string"
}
},
"required": [
"token_address",
"customer_address",
"purchase_amount"
],
"type": "object"
},
"name": "earn_points",
"outputSchema": null
},
{
"description": "Export customer data for a specific loyalty program. Returns wallet addresses, voucher stats, balances, and tier info. Use for analytics, segmentation, and personalized offers.",
"inputSchema": {
"properties": {
"token_address": {
"description": "Token address of the loyalty program",
"type": "string"
}
},
"required": [
"token_address"
],
"type": "object"
},
"name": "export_customers",
"outputSchema": null
},
{
"description": "Workflow planner: field catalog, required parameters, next_actions, and non-binding examples. External agents must choose their own name, symbol, and economics.",
"inputSchema": {
"properties": {
"business_name": {
"type": "string"
},
"category": {
"type": "string"
},
"description": {
"type": "string"
},
"locale": {
"type": "string"
},
"preferred_style": {
"type": "string"
},
"target_audience": {
"type": "string"
}
},
"type": "object"
},
"name": "generate_program_defaults",
"outputSchema": null
},
{
"description": "Get authenticated agent's profile",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_my_profile",
"outputSchema": null
},
{
"description": "Get info about Loyal Spark protocol on Base L2",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_platform_info",
"outputSchema": null
},
{
"description": "Get global platform statistics across all merchants. Admin-only: requires agent owned by an admin wallet.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_platform_stats",
"outputSchema": null
},
{
"description": "Get analytics for your loyalty programs",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_program_analytics",
"outputSchema": null
},
{
"description": "Explain the next merchant action: current_step, required fields, and ordered next_actions (you provide all parameter values)",
"inputSchema": {
"properties": {
"token_address": {
"description": "Optional token to inspect",
"type": "string"
}
},
"type": "object"
},
"name": "get_program_workflow_status",
"outputSchema": null
},
{
"description": "Get loyalty token balance and tier info for a customer",
"inputSchema": {
"properties": {
"customer_address": {
"description": "Customer wallet",
"type": "string"
},
"token_address": {
"description": "Token contract address",
"type": "string"
}
},
"required": [
"token_address",
"customer_address"
],
"type": "object"
},
"name": "get_token_balance",
"outputSchema": null
},
{
"description": "List gift certificates issued by the agent's merchant (with status and redemption info).",
"inputSchema": {
"properties": {
"limit": {
"description": "Max rows (default 50, max 200)",
"type": "number"
},
"status": {
"description": "Filter by status: active, pending_mint, redeemed, expired, revoked",
"type": "string"
},
"token_address": {
"description": "Filter by program token address (optional)",
"type": "string"
}
},
"type": "object"
},
"name": "list_gift_certificates",
"outputSchema": null
},
{
"description": "List loyalty programs owned by the agent's merchant",
"inputSchema": {
"properties": {
"include_expired": {
"description": "Include expired programs",
"type": "boolean"
}
},
"type": "object"
},
"name": "list_loyalty_programs",
"outputSchema": null
},
{
"description": "List active token trading offers on the marketplace",
"inputSchema": {
"properties": {
"limit": {
"description": "Max results (1-100)",
"type": "number"
},
"status": {
"description": "Filter: active/completed/cancelled",
"type": "string"
}
},
"type": "object"
},
"name": "list_marketplace_offers",
"outputSchema": null
},
{
"description": "List your previously submitted reports. Allows reviewing past reports, checking status (new/reviewed/done), and identifying what still needs attention.",
"inputSchema": {
"properties": {
"limit": {
"description": "Max results 1-50 (default: 20)",
"type": "number"
},
"status": {
"description": "Filter by status: new, reviewed, done (optional)",
"type": "string"
}
},
"type": "object"
},
"name": "list_my_reports",
"outputSchema": null
},
{
"description": "List rewards for a loyalty program by token_address. Includes redemption metrics (total vouchers issued, redeemed, and last-30-day counts) for each reward.",
"inputSchema": {
"properties": {
"token_address": {
"description": "Token contract address (0x...)",
"type": "string"
}
},
"required": [
"token_address"
],
"type": "object"
},
"name": "list_rewards",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"certificate_id": {
"description": "UUID of the certificate",
"type": "string"
},
"transaction_hash": {
"description": "Base L2 mint transaction hash (0x...)",
"type": "string"
}
},
"required": [
"certificate_id",
"transaction_hash"
],
"type": "object"
},
"name": "mark_gift_certificate_minted",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"amount": {
"description": "Tokens to mint",
"type": "number"
},
"recipient": {
"description": "Recipient wallet (0x...)",
"type": "string"
},
"token_address": {
"description": "Token contract address",
"type": "string"
}
},
"required": [
"token_address",
"recipient",
"amount"
],
"type": "object"
},
"name": "mint_loyalty_tokens",
"outputSchema": null
},
{
"description": "Redeem a reward by providing a verified token transfer transaction hash. Creates a voucher for the customer.",
"inputSchema": {
"properties": {
"customer_address": {
"description": "Wallet address of the customer who transferred tokens",
"type": "string"
},
"reward_id": {
"description": "UUID of the reward to redeem",
"type": "string"
},
"transaction_hash": {
"description": "Onchain tx hash of the token transfer from customer to merchant",
"type": "string"
}
},
"required": [
"reward_id",
"customer_address",
"transaction_hash"
],
"type": "object"
},
"name": "redeem_reward",
"outputSchema": null
},
{
"description": "Register a deployed token as a loyalty program in the database. B20 tokens are registered as active; legacy ERC-20 as inactive (activate next).",
"inputSchema": {
"properties": {
"cashback_rate": {
"description": "Default cashback percent for earn (1–100). Omit for DB default (5).",
"type": "number"
},
"expiration_days": {
"description": "Duration in days (default: 365)",
"type": "number"
},
"name": {
"description": "Program name",
"type": "string"
},
"points_per_dollar": {
"description": "Loyalty points per $1 spent (1–1000). Omit for DB default (1).",
"type": "number"
},
"symbol": {
"description": "Token symbol",
"type": "string"
},
"token_address": {
"description": "Deployed token contract address (0x...)",
"type": "string"
},
"token_standard": {
"description": "'b20' (default) or 'erc20' (legacy)",
"type": "string"
}
},
"required": [
"name",
"symbol",
"token_address"
],
"type": "object"
},
"name": "register_loyalty_program",
"outputSchema": null
},
{
"description": "Revoke an active gift certificate (status active → revoked). Only the issuing merchant can revoke. Already-redeemed/minted certificates cannot be revoked.",
"inputSchema": {
"properties": {
"certificate_id": {
"description": "UUID of the certificate from create_gift_certificate / list_gift_certificates",
"type": "string"
}
},
"required": [
"certificate_id"
],
"type": "object"
},
"name": "revoke_gift_certificate",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"action_items": {
"description": "List of suggested action items",
"items": {
"type": "string"
},
"type": "array"
},
"agent_role": {
"description": "Your role: ceo, seo, growth, or analyst",
"type": "string"
},
"content": {
"description": "Report body text (max 10000 chars)",
"type": "string"
},
"priority": {
"description": "Priority: low, medium, high, or critical",
"type": "string"
},
"report_type": {
"description": "Type: seo_audit, growth_idea, data_report, anomaly, task, recommendation, or weekly_report",
"type": "string"
},
"title": {
"description": "Report title (max 500 chars)",
"type": "string"
}
},
"required": [
"agent_role",
"report_type",
"title",
"content"
],
"type": "object"
},
"name": "send_report",
"outputSchema": null
},
{
"description": "Get calldata to transfer loyalty tokens between wallets",
"inputSchema": {
"properties": {
"amount": {
"description": "Tokens to transfer",
"type": "number"
},
"to": {
"description": "Recipient wallet (0x...)",
"type": "string"
},
"token_address": {
"description": "Token contract address (0x...)",
"type": "string"
}
},
"required": [
"token_address",
"to",
"amount"
],
"type": "object"
},
"name": "transfer_loyalty_tokens",
"outputSchema": null
},
{
"description": "Update default cashback_rate and/or points_per_dollar for a program (same as merchant dashboard sliders)",
"inputSchema": {
"properties": {
"cashback_rate": {
"description": "New default cashback % for earn (1–100). Omit to leave unchanged.",
"type": "number"
},
"points_per_dollar": {
"description": "New points per $1 (0–1000, exclusive 0). Omit to leave unchanged.",
"type": "number"
},
"token_address": {
"description": "Token contract address (0x...)",
"type": "string"
}
},
"required": [
"token_address"
],
"type": "object"
},
"name": "update_program_config",
"outputSchema": null
},
{
"description": "Update program status in database after onchain activation/pause",
"inputSchema": {
"properties": {
"status": {
"description": "New status: active, paused, or inactive",
"type": "string"
},
"token_address": {
"description": "Token contract address",
"type": "string"
}
},
"required": [
"token_address",
"status"
],
"type": "object"
},
"name": "update_program_status",
"outputSchema": null
},
{
"description": "Update report status to 'reviewed' or 'done'. Use 'done' when the action items have been completed. Use 'reviewed' to acknowledge a report.",
"inputSchema": {
"properties": {
"report_id": {
"description": "UUID of the report",
"type": "string"
},
"status": {
"description": "New status: reviewed or done",
"type": "string"
}
},
"required": [
"report_id",
"status"
],
"type": "object"
},
"name": "update_report_status",
"outputSchema": null
},
{
"description": "Activate or deactivate a reward in the catalog. Use to manage reward availability based on analytics.",
"inputSchema": {
"properties": {
"is_active": {
"description": "true to activate, false to deactivate",
"type": "boolean"
},
"reward_id": {
"description": "UUID of the reward",
"type": "string"
}
},
"required": [
"reward_id",
"is_active"
],
"type": "object"
},
"name": "update_reward_status",
"outputSchema": null
},
{
"description": "Mark a voucher as used (redeemed by customer at merchant). Merchant-only operation.",
"inputSchema": {
"properties": {
"voucher_code": {
"description": "Voucher code (e.g. LOYAL-XXXX-XXXX-XXXX-XXXX)",
"type": "string"
},
"voucher_id": {
"description": "Voucher UUID (alternative to code)",
"type": "string"
}
},
"type": "object"
},
"name": "use_voucher",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:975785902a1887eb495986392275ab76850dc34e7672238c5c14f2004f263354 | sha256sum