Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,528Letters: 13Defects: 1,322counted just now
teppi

Server definition

Hash
sha256:650bfbab2af60b4957466e45d1e4b84b723cb19f826fbc9ac92b2dce8c3f3872
What it is
What a remote MCP server returned when asked what it offers: 6 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "Book a specific photographer for a specific package, date/time, and address on the user's behalf — no login required. This only places a 15-minute hold; it does NOT charge any money and does NOT require or accept any payment information. Immediately follow this with get_payment_link and give that URL to the human — they open it themselves to verify their phone number and pay. start_time must be an ISO 8601 timestamp at least 6 hours in the future. Pass a stable idempotency_key if you might retry this call, so a retry can't create a second reservation.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "address_detail": { "description": "Human-readable address text for the shoot location.", "type": "string" }, "address_latitude": { "type": "number" }, "address_longitude": { "type": "number" }, "city_id": { "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "guest_display_name": { "description": "The customer's name, if known.", "type": "string" }, "idempotency_key": { "description": "A key you generate to make retries safe. Reuse it only when retrying the exact same request.", "type": "string" }, "package_id": { "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "photographer_uid": { "type": "string" }, "shoot_detail": { "description": "Free-text notes about the shoot for the photographer.", "type": "string" }, "shoot_type_id": { "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "start_time": { "description": "ISO 8601 timestamp, at least 6 hours from now.", "type": "string" } }, "required": [ "shoot_type_id", "package_id", "city_id", "photographer_uid", "start_time", "address_latitude", "address_longitude", "address_detail" ], "type": "object" }, "name": "create_reservation", "outputSchema": null }, { "description": "Get a URL for the human to open in their own browser to finish this reservation: verify their phone number by SMS code and pay. This is the last step this server ever takes — never ask the user for a card number, OTP code, or password, and never try to open, submit, or complete this URL yourself. Just hand the URL to the user.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "slug": { "description": "The slug returned by create_reservation.", "type": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "get_payment_link", "outputSchema": null }, { "description": "List the real, currently bookable packages (with prices, in Toman) a specific photographer offers for a given shoot_type_id. Rejects the shoot_type_id if that photographer doesn't actually offer it. Use the returned package id with create_reservation.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "photographer_uid": { "description": "A photographer uid from search_photographers.", "type": "string" }, "shoot_type_id": { "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" } }, "required": [ "photographer_uid", "shoot_type_id" ], "type": "object" }, "name": "get_photographer_packages", "outputSchema": null }, { "description": "Check whether a reservation has been paid and confirmed. IMPORTANT: status values are 'awaiting_payment', 'expired', 'paid_awaiting_photographer_confirmation', 'confirmed', and 'rejected'. 'paid_awaiting_photographer_confirmation' means the customer paid but the photographer has not yet accepted the booking and could still decline or ask to reschedule — do not tell the user their booking is final until status is exactly 'confirmed'.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "slug": { "description": "The slug returned by create_reservation.", "type": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "get_reservation_status", "outputSchema": null }, { "description": "Find real, bookable photographers for a given shoot_type_id (from search_shoot_types), optionally narrowed to a city_id. Returns each photographer's uid (needed for every later call), display name, rating, review count, and city.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "city_id": { "description": "Optional Kadro city id to narrow the search.", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "shoot_type_id": { "description": "A shoot_type_id from search_shoot_types.", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" } }, "required": [ "shoot_type_id" ], "type": "object" }, "name": "search_photographers", "outputSchema": null }, { "description": "List the photography/videography service types Kadro offers (e.g. wedding, industrial, portrait), each with a numeric shoot_type_id. Call this first if you don't already know the id for the kind of shoot the user wants.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "search_shoot_types", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:650bfbab2af60b4957466e45d1e4b84b723cb19f826fbc9ac92b2dce8c3f3872 | sha256sum