{"name":"CurlShip","description":"Bot-friendly directory. Featured is the first action. Paid actions return a checkout_url. Opening that URL is the payment.","url":"https://curlship.com/mcp","version":"1","protocol":"mcp","protocolVersion":"2025-03-26","capabilities":{"streaming":true,"pushNotifications":false},"payments":{"method":"checkout_url","note":"The API returns a checkout URL. There is no card-on-file call and no crypto charge."},"documentation":{"tools":"https://curlship.com/agents.json","actions":"https://curlship.com/agents.md","rules":"https://curlship.com/llms.txt","sse":"https://curlship.com/sse","webhooks":"https://curlship.com/webhooks"},"skills":[{"id":"bid_featured","name":"bid_featured","description":"Take the Featured spot. It sits above every listing. The minimum right now is $51. Always dofollow. One-time payment, no refund when someone outbids you. The product must already be listed. Omit amount_usd to bid $51.","tags":["curlship"]},{"id":"read_featured","name":"read_featured","description":"Who holds the Featured spot, and the current minimum bid.","tags":["curlship"]},{"id":"submit_listing","name":"submit_listing","description":"List a product. It goes live immediately. One listing per root domain. https://yourapp.com is the documentation placeholder and is refused.","tags":["curlship"]},{"id":"upgrade_listing","name":"upgrade_listing","description":"Checkout URL for a paid tier on a listing that already exists.","tags":["curlship"]},{"id":"refresh_listing","name":"refresh_listing","description":"Re-read title, description, and image from the listed page. Send listing_id and proof only. The first confirm previews; send apply back to save.","tags":["curlship"]},{"id":"change_listing_url","name":"change_listing_url","description":"Point an existing listing at a new URL. One listing per root domain, so this is how a second page replaces the first.","tags":["curlship"]},{"id":"set_tracking_params","name":"set_tracking_params","description":"Set the tracking params on a paid listing's outbound link (Bronze and up). Keys: ref or utm_* (<=10, lowercase/digits/_); values: 1-100 of A-Z a-z 0-9 . _ ~ -. Send {} to clear back to ?ref=curlship. Free listings are refused.","tags":["curlship"]},{"id":"remove_free_listing","name":"remove_free_listing","description":"Take a free listing off the directory. Send remove true and no url or email. A paid listing or the Featured holder is refused.","tags":["curlship"]},{"id":"confirm_edit","name":"confirm_edit","description":"Apply an edit request. A refresh needs a second call with the apply digest from the preview.","tags":["curlship"]},{"id":"verify_badge","name":"verify_badge","description":"Re-check the listed site for a link to curlship.com. A free listing with the badge becomes dofollow.","tags":["curlship"]},{"id":"list_categories","name":"list_categories","description":"The category tree with a listing count per category — a group slug like developer-tools, plus any promoted leaf categories under it. Each listing's category field carries one of these slugs.","tags":["curlship"]},{"id":"list_listings","name":"list_listings","description":"Active listings as JSON. No query returns every listing, in the same order as before. Optional query parameters: limit, offset, q, since, and category. q matches the title, description, or URL. since is an ISO timestamp; listings created at or after it are kept. category is a category slug and filters to that group or leaf. Each listing includes created_at and a category object ({slug, name, group}) or null while the listing is unclassified.","tags":["curlship"]},{"id":"get_stats","name":"get_stats","description":"Listing counts and the Ahrefs Domain Rating.","tags":["curlship"]},{"id":"get_daily_stats","name":"get_daily_stats","description":"Active listings added per UTC day — the zero-filled series behind the public /stats page. One entry per calendar day from the first listing to today, each with added and the cumulative running total.","tags":["curlship"]},{"id":"get_dr_history","name":"get_dr_history","description":"The site's Ahrefs Domain Rating over time — the series behind /stats#dr. Every recorded reading, one per UTC day, plus the current value, the last step (change vs the most recent different reading) and the growth since the first reading.","tags":["curlship"]},{"id":"x402_submit_listing","name":"x402_submit_listing","description":"Buy bronze_lifetime ($30 USDC once, forever) or platinum ($49 USDC per prepaid year) with USDC over x402 — settled on-chain, no checkout page, no human in the loop. Call without payment_signature and the reply is a 402 whose body (also the PAYMENT-REQUIRED header, base64) is the quote; sign accepts[0] as an EIP-3009 authorization and call again with payment_signature — the tier is granted in that same call. Same URL and listing rules as a free submission.","tags":["curlship"]},{"id":"x402_bid_featured","name":"x402_bid_featured","description":"Bid on the Featured spot in USDC over x402 — the same auction as a card bid (minimum $51 right now), but settled on-chain with no checkout and no human in the loop. Call without payment_signature for the 402 quote, sign accepts[0] as an EIP-3009 authorization, call again with payment_signature echoing it as `accepted`. The product must already be listed. Omit amount_usd to bid $51.","tags":["curlship"]}]}