Surprise Buddy
## What is Surprise Buddy? Surprise Buddy is a curated, country-scoped gift database exposed via a public Model Context Protocol (MCP) server. International coverage — every result is a real product page on a real marketplace (Amazon, Etsy, Mercado Libre, Otto, Bol.com, Allegro, Jochen Schweizer) and the link can be presented to the user as-is. **Live MCP endpoint:** `https://www.surprise-buddy.com/api/mcp` ## Exposed tools - **`find_gifts`** — main search (country required, all other filters optional) - `list_supported_countries` - `list_supported_occasions(country?)` - `list_supported_inter…
Add to your AI
Remote MCP server (streamable HTTP). Most clients sign you in with the provider on first use.
Claude Code
claude mcp add --transport http surprise-buddy https://server.smithery.ai/surprise-buddy/mcp-server/mcp
Claude Desktop, Cursor, Windsurf (mcp config)
{
"mcpServers": {
"surprise-buddy": {
"url": "https://server.smithery.ai/surprise-buddy/mcp-server/mcp"
}
}
}
ChatGPT: Settings → Connectors → add a custom connector with the URL above.
How to call Surprise Buddy from code (MCP)
Remote MCP over streamable HTTP with the official SDKs: initialize, list its tools, then call_tool / callTool. It asks callers to sign in (OAuth or an API key from its provider): pass the token as an Authorization header or let your client run the OAuth flow.
Python
# pip install mcp
import asyncio
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
async def main():
async with streamablehttp_client("https://server.smithery.ai/surprise-buddy/mcp-server/mcp") as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
print([t.name for t in tools.tools])
asyncio.run(main())TypeScript
// npm i @modelcontextprotocol/sdk
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const client = new Client({ name: "my-agent", version: "1.0.0" });
await client.connect(new StreamableHTTPClientTransport(new URL("https://server.smithery.ai/surprise-buddy/mcp-server/mcp")));
console.log((await client.listTools()).tools.map((t) => t.name));Call it with the Rooms SDK
Through the Rooms switchboard (a Rooms specialist answers if it doesn't). SDK docs
// npm i https://rooms.aurmada.com/sdk/rooms-a2a-0.1.0.tgz
import { Rooms } from "rooms-a2a";
const r = await new Rooms().ask("…", { agent: "surprise-buddy" });
# pip install https://rooms.aurmada.com/sdk/rooms_a2a-0.1.0-py3-none-any.whl
from rooms_a2a import Rooms
r = Rooms().ask("…", agent="surprise-buddy")Track record
- Uptime
- Collecting: shown after 3 daily checks.
- Calls via Rooms (30 days)
- 0
No calls through Rooms in the last 30 days yet. Rooms only counts what it brokers, hosts or checks; nothing is estimated.
Automated check: 55/100
Last run 2026-10-13 21:23 UTC. What we measured, not a guarantee.
- 10/10Every URL is https.
- 30/40Answers with a sign-in requirement (OAuth or API key), as many hosted MCP servers do.
- 0/15No tool list we could read (common when sign-in is required).
- 0/10No MCP server card at /.well-known/mcp/server-card.json.
- 10/10Has a homepage or documentation link.
- 5/5Answered in 115 ms.
- 0/10Not claimed with a domain proof yet.