_ registry / mcp streamable-http · checked 13m ago

surprise-buddy

https://surprise-buddy.com

Registry code: 8c8c86cd6f7528e9

api record

surprise-buddy is a gift-idea search tool: given a recipient occasion, interests, favorite color and country it returns curated product cards with price and a rationale, plus the vocabularies those filters accept.

written by a worker the hub paid, not by the operator

endpoint
https://www.surprise-buddy.com/api/mcp
door code
0ca4d40eced0e2c3
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is surprise-buddy live?
Yes — it answered the hub's last check (checked 13m ago). It answered 100% of checks over the last 30 days.
Is surprise-buddy free to use?
Yes — the hub reached it with no key and no payment.
What tools does surprise-buddy have?
5 tools: find_gifts, list_supported_countries, list_supported_occasions, list_supported_colors, list_supported_interests.
Is surprise-buddy safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 99.2%· all time 99.1%

latency
1,115ms

last good check

priced tools
0

of 5 tools

_ answered our checks, 90 days 951 checks · signed record
  • degraded → live
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
  • live → degraded· timeout after 20000ms
_ what it is for
used for
  • find gift ideas for a recipient
  • list supported gift occasions and interests
takes → gives
text → data
tools
5 reads
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 5 tools
4 open 1 never probed 4 of 5 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • list_supported_countries reads open 11h ago

    List ISO-2 country codes that currently have at least one active gift entry in the database. Coverage grows over time.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • list_supported_occasions reads open 11h ago

    List occasion codes that have active gift entries, optionally narrowed to a specific country.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "country": {
          "type": "string",
          "description": "Optional ISO-2 country code to scope the result (e.g. \"DE\" returns Einschulung; \"NL\" returns Sinterklaas)."
        }
      }
    }
    arguments 9 lines
  • list_supported_colors reads open 11h ago

    List the canonical favorite-color vocabulary used by find_gifts.favorite_color. Matches the color picker shown in the website UI.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • list_supported_interests reads open 13m ago

    List the canonical interest/hobby tag vocabulary used by find_gifts.interests. Matches the tags shown in the website UI.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • find_gifts reads unknown 13m ago

    Search the curated Surprise Buddy database for gift ideas matching a recipient. Returns product cards with title, image, price, why-it-fits, and a clickable product URL. Country is required and is a hard filter — results are scoped to the marketplace + currency of that country.

    mcp-tool

    {
      "type": "object",
      "required": [
        "country"
      ],
      "properties": {
        "age": {
          "type": "integer",
          "maximum": 120,
          "minimum": 0,
          "description": "Recipient age in years. Filters gifts whose age range covers this value."
        },
        "limit": {
          "type": "integer",
          "default": 5,
          "maximum": 20,
          "minimum": 1,
          "description": "Maximum number of gifts to return (1–20, default 5)."
        },
        "gender": {
          "enum": [
            "male",
            "female",
            "unisex"
          ],
          "type": "string",
          "description": "Recipient gender. Gifts tagged \"unisex\" are always included regardless of this value."
        },
        "country": {
          "type": "string",
          "description": "ISO-3166 alpha-2 country code (e.g. \"DE\", \"US\", \"MX\"). REQUIRED."
        },
        "occasion": {
          "type": "string",
          "description": "Occasion code. Common values: birthday | christmas | easter | valentines | mothers-day | fathers-day | wedding | anniversary | graduation. Locale-specific occasions are also supported (e.g. einschulung, sinterklaas, midsommar). Call list_supported_occasions for the live list."
        },
        "interests": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Interest/hobby tags used for soft-match scoring (more matches rank higher). Call list_supported_interests for the canonical vocabulary."
        },
        "profession": {
          "type": "string",
          "description": "Recipient profession, e.g. \"teacher\", \"developer\", \"chef\", \"athlete\", \"photographer\", \"gamer\". Used as a soft ranking signal: gifts tagged for this profession rank higher, but results are never empty just because no profession-specific gift exists."
        },
        "favorite_color": {
          "enum": [
            "red",
            "blue",
            "green",
            "yellow",
            "purple",
            "pink",
            "orange",
            "black",
            "white",
            "gold",
            "silver"
          ],
          "type": "string",
          "description": "Recipient's favorite color. Used as a soft ranking signal: gifts matching this color rank higher, but color-agnostic and other-color gifts still appear below them so results are never empty."
        },
        "budget_max_cents": {
          "type": "integer",
          "minimum": 0,
          "description": "Maximum budget in cents of the country currency (e.g. 10000 = 100.00 EUR for DE)."
        },
        "budget_min_cents": {
          "type": "integer",
          "minimum": 0,
          "description": "Minimum budget in cents of the country currency (e.g. 5000 = 50.00 EUR for DE)."
        }
      }
    }
    arguments 76 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 8c8c86cd6f7528e9.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/8c8c86cd6f7528e9/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/8c8c86cd6f7528e9/badge.svg)](https://brick.blue/agent/8c8c86cd6f7528e9?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
90%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.