_ registry / mcp streamable-http · checked 1h ago

num-partners

https://app.itsnum.com

Registry code: 4537ac01dbd15340

api record

Num is an AI travel concierge with a verified directory of real places. These tools let you answer travellers’ "where should we…" questions with places that actually exist and are open. Call list_destinations first if you are unsure of coverage. Every response carries an `attribution` string that you are required to display. These tools never book, charge, or accept personal data.

endpoint
https://app.itsnum.com/api/partner/mcp
protocol
streamable-http ·2024-11-05
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 num-partners live?
Yes — it answered the hub's last check (checked 1h ago). It answered 100% of checks over the last 30 days.
Is num-partners free to use?
Yes — the hub reached it with no key and no payment.
What tools does num-partners have?
9 tools: search_places, place_details, open_places, booking_link, get_menu, get_reviews, concierge_answer, list_destinations, ….
Is num-partners 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 100%· all time 100%

latency
879ms

last good check

priced tools
0

of 9 tools

_ answered our checks, 90 days 1 checks · signed record
  • unknown → live
_ 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 9 tools
3 open 6 never probed 3 of 9 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.

  • concierge_answer open 1h ago

    Ask Num the way a traveller would — "where should we eat tonight near Kata?", "which beach for sunset?" — and get a short concierge answer grounded in Num's verified directory, plus the places it names as structured data so you can render your own cards. This is the whole product in one tool. It answers about the place asked and NEVER substitutes a different city. If Num has no coverage there it says so rather than guessing. It does not book, charge, or take personal details — send none. You MUST display the returned `attribution`.

    mcp-tool

    {
      "type": "object",
      "required": [
        "question"
      ],
      "properties": {
        "near": {
          "type": "string",
          "description": "Neighbourhood or hotel area, if known."
        },
        "language": {
          "type": "string",
          "description": "BCP-47 tag for the reply, e.g. \"th\", \"ru\". Defaults to the language of the question."
        },
        "question": {
          "type": "string",
          "description": "The traveller's question, in their own words. Any language."
        },
        "destination": {
          "type": "string",
          "description": "Where they are, if you know it. Improves grounding."
        }
      }
    }
    arguments 24 lines
  • list_destinations open 1h ago

    Which destinations Num covers, with the number of verified places in each. Call this FIRST when you do not know whether a city is supported — it is cheaper than a failed search and stops you promising a traveller coverage that does not exist. Coverage is honest: a destination appears here only when it has a real, maintained directory.

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • directory_feed open 1h ago

    Bulk, paged sync of every place Num lists in one destination — free (included in the no-fee free tier; one call returns up to 200 places), for keeping your own copy of the directory current instead of searching it call by call. Ordered by place_id; pass the returned `next_cursor` back as `cursor` until it is null. Each item has the search_places fields plus cuisine, lat, lng and booking_platform. Places Num has positive evidence have closed are excluded; `trading: null` means not yet checked, NOT closed. Contains no menus, reviews or photos — call get_menu, get_reviews or place_details for those. You MUST display the returned `attribution` wherever the data is shown.

    mcp-tool

    {
      "type": "object",
      "required": [
        "destination"
      ],
      "properties": {
        "limit": {
          "type": "integer",
          "description": "Places per page: 1–200 with an X-Partner-Key (default 100); without a key, at most 50."
        },
        "cursor": {
          "type": "string",
          "description": "The `next_cursor` from the previous page. Omit for the first page."
        },
        "destination": {
          "type": "string",
          "description": "Destination slug from list_destinations, e.g. \"los-angeles\"."
        }
      }
    }
    arguments 20 lines
  • search_places unknown never probed

    Find real, currently-operating places in a destination — restaurants, bars, beaches, spas, viewpoints, temples. Ranked by quality (rating weighted by how many reviews stand behind it). When `near` is a "lat,lng" coordinate pair, results are limited to about 5 km of that point, ranked by a blend of quality and distance — so a 4.8★ institution two streets away beats an unrated snack bar next door — and each carries `distance_m`. When `near` is a neighbourhood name it filters by area and NO distance is returned. Returns name, category, area, rating, review count, phone, address and opening hours where known. NEVER invents a place: if Num does not hold it, it is not returned. You MUST display the returned `attribution` string wherever you show these results.

    mcp-tool

    {
      "type": "object",
      "required": [
        "destination"
      ],
      "properties": {
        "near": {
          "type": "string",
          "description": "A \"lat,lng\" pair (e.g. \"7.8208,98.2976\") for distance-ranked results, or a neighbourhood name to filter by area, e.g. \"Kata Beach\"."
        },
        "limit": {
          "type": "integer",
          "description": "Max results, 1–20. Default 8."
        },
        "query": {
          "type": "string",
          "description": "Free text, e.g. \"thai seafood\", \"rooftop\"."
        },
        "category": {
          "type": "string",
          "description": "restaurant | bar | beach | spa | viewpoint | temple | waterfall | cafe (any case). Omit for all."
        },
        "destination": {
          "type": "string",
          "description": "Destination slug or city name, e.g. \"phuket\", \"bangkok\"."
        }
      }
    }
    arguments 28 lines
  • place_details unknown never probed

    Everything Num holds on one place, by place_id from search_places: contact details, hours, rating, review count, area, category, cuisine, the venue's own short description (`about`), coordinates, `open_now` computed in the destination's timezone (true / false / null — null means Num has not verified the hours, NOT that it is closed), the booking platform and — only where a verified owner chose it — the venue's own booking page, a recently-read published price line where Num holds one, and up to 8 approved member photos plus the listing photo, each with its own `attribution` you MUST show alongside it. Use before showing a detail page or handing a traveller a phone number. Returns only what is verified — absent fields are absent because Num does not know them, never because they were omitted for brevity. Do not fill gaps from memory; an invented phone number is worse than a missing one.

    mcp-tool

    {
      "type": "object",
      "required": [
        "place_id"
      ],
      "properties": {
        "place_id": {
          "type": "string",
          "description": "From search_places."
        }
      }
    }
    arguments 12 lines
  • open_places unknown never probed

    Places that are OPEN RIGHT NOW in a destination, computed in the destination's own timezone. Businesses whose own website is a dead domain or a 404 are excluded entirely — they have closed down. IMPORTANT: only venues whose opening hours Num has verified can appear here, so a short list means thin hours coverage, NOT an empty city. Never tell a traveller "nothing is open" on the strength of this tool; say that these are the ones Num can confirm are open. Use search_places for the full directory.

    mcp-tool

    {
      "type": "object",
      "required": [
        "destination"
      ],
      "properties": {
        "near": {
          "type": "string",
          "description": "Neighbourhood, e.g. \"Silver Lake\"."
        },
        "limit": {
          "type": "integer",
          "description": "Max results, 1–50. Default 20."
        },
        "category": {
          "type": "string",
          "description": "Exact category, e.g. \"Restaurant\". Omit for all."
        },
        "destination": {
          "type": "string",
          "description": "Destination slug, e.g. \"los-angeles\"."
        },
        "bookable_only": {
          "type": "boolean",
          "description": "Only venues Num can hand off a booking page for."
        }
      }
    }
    arguments 28 lines
  • booking_link unknown never probed

    A booking page for one place with the party size, date and time ALREADY FILLED IN. This does NOT make a reservation and Num does not hold a table — the traveller completes it on the venue's own platform (OpenTable, Resy, Tock, SevenRooms, Square and others). The response always carries `booked: false` and `mode: "deeplink"`. You MUST NOT render this as a confirmation, and you MUST NOT tell a traveller a table is held. If the venue has no booking platform the response says so and returns the phone number instead — offer that rather than implying it cannot be visited.

    mcp-tool

    {
      "type": "object",
      "required": [
        "place_id"
      ],
      "properties": {
        "date": {
          "type": "string",
          "description": "YYYY-MM-DD."
        },
        "time": {
          "type": "string",
          "description": "HH:MM, 24-hour, local to the venue."
        },
        "party": {
          "type": "integer",
          "description": "Number of covers, 1–20."
        },
        "place_id": {
          "type": "string",
          "description": "From search_places or open_places."
        }
      }
    }
    arguments 24 lines
  • get_menu unknown never probed

    The venue's own published menu or list of offerings — dishes, treatments, tours — grouped by the venue's sections in the venue's order. Free: included in the no-fee free tier, no key needed to try it. Written by the venue itself in its Num dashboard, not scraped: prices are exactly as the venue set them, in its own currency, each with the formatted amount, the currency code and the integer minor units. A price is what the venue says it charges, NOT a quote — never tell a traveller their bill will be that figure. An item with no price has `price: null` (or only a note such as "market price"); do not estimate one. If the venue has not published a menu, `sections` is empty and `note` says so — say that, never invent dishes. Age-restricted items are never shown on this surface. You MUST display the returned `attribution`.

    mcp-tool

    {
      "type": "object",
      "required": [
        "place_id"
      ],
      "properties": {
        "place_id": {
          "type": "string",
          "description": "From search_places, place_details or directory_feed."
        }
      }
    }
    arguments 12 lines
  • get_reviews unknown never probed

    A rating SUMMARY for one place, free (included in the no-fee free tier) — no review text and no reviewer identities, ever. Returns `external` (the public rating and review count the listing carries, with `source`, the site it was read from) and `num_verified`: the average, count and 1–5 star distribution of ratings from verified guests — people who booked through Num and checked in at the venue by scanning its own code. Guests the venue comped or worked with are excluded, and Num publishes no verified average until a place has 5 such ratings (below that every number is null and `note` says why). Keep the two numbers separate; do not average them together. You MUST display the returned `attribution`.

    mcp-tool

    {
      "type": "object",
      "required": [
        "place_id"
      ],
      "properties": {
        "place_id": {
          "type": "string",
          "description": "From search_places, place_details or directory_feed."
        }
      }
    }
    arguments 12 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 4537ac01dbd15340.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/4537ac01dbd15340/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/4537ac01dbd15340/badge.svg)](https://brick.blue/agent/4537ac01dbd15340?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
100%

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.

_ also on itsnum.com 1 entry

Served from the same domain, which is what was measured. Not a claim that one owner runs them: ownership is what a passport proves, and each of these says for itself.