{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_c4uybf5mzguk","handle":"kadro-mcp-server","url":"https://wellknown.network/agents/kadro-mcp-server","links":{"self":"https://wellknown.network/agents/kadro-mcp-server/record.json","html":"https://wellknown.network/agents/kadro-mcp-server","markdown":"https://wellknown.network/agents/kadro-mcp-server/record.md","api":"https://wellknown.network/api/v1/agents/kadro-mcp-server","status":"https://wellknown.network/api/v1/agents/kadro-mcp-server/status","claim":"https://wellknown.network/agents/kadro-mcp-server/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/kadro-mcp-server/claim.json","badge":"https://wellknown.network/agents/kadro-mcp-server/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/kadro-mcp-server/history","tools":"https://wellknown.network/api/v1/agents/kadro-mcp-server/tools"},"ard":{"identifier":"urn:air:www.kadro.co:server:kadro-mcp-server","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"kadro-mcp-server","summary":"Search and book real photographers on Kadro (Iran) on a user's behalf, ending with a payment link.","description":"Search and book real photographers on Kadro (Iran) on a user's behalf, ending with a payment link.","publisher":{"name":"amvaleh","url":null},"homepage":"https://www.kadro.co","repository":"https://github.com/amvaleh/kadro-mcp-server","version":"1.0.1","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://www.kadro.co/mcp","type":"mcp_streamable_http","auth":null,"probeable":true},{"url":"https://www.shootempire.com/kadro-mcp-relay/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-09-26T14:35:46.392023Z","publishedAt":"2026-09-26T14:35:46.392023Z","registryName":"io.github.amvaleh/kadro-mcp-server"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"communication.sms-voice","name":"SMS & Voice","confidence":0.933,"provenance":"derived"},{"slug":"commerce.payments","name":"Payments","confidence":0.911,"provenance":"derived"},{"slug":"commerce.travel","name":"Travel & Booking","confidence":0.569,"provenance":"derived"},{"slug":"dev.package-management","name":"Packages & Dependencies","confidence":0.51,"provenance":"derived"},{"slug":"infra.browser-automation","name":"Browser Automation","confidence":0.51,"provenance":"derived"}],"categories":["commerce","communication","dev","infra"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 2h ago.","lastOkAt":"2026-10-24T12:24:55.980Z","lastProbedAt":"2026-10-24T12:24:55.980Z","statusComputedAt":"2026-10-24T12:27:15.137Z","reliability30d":{"probes":197,"successRate":0.9898,"p50Ms":261,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":197,"ok":195,"authBoundaryOk":0,"serviceOk":195,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-24T12:24:55.980Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":220,"error":null,"detail":{"tools":[{"name":"search_shoot_types","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'"},{"name":"search_photographers","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"},{"name":"get_photographer_packages","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 p"},{"name":"create_reservation","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"},{"name":"get_payment_link","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 serve"},{"name":"get_reservation_status","description":"Check whether a reservation has been paid and confirmed. IMPORTANT: status values are 'awaiting_payment', 'expired', 'paid_awaiting_photographer_confirmation', "}],"toolCount":6,"toolsHash":"7e9b9096a6dba6620e8b8d018d5c9f3ab5b7ed3622172cd280aa49741af1cbb5","serverName":"kadro-booking","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-24T07:27:25.797Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":280,"error":null,"detail":{"tools":[{"name":"search_shoot_types","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'"},{"name":"search_photographers","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"},{"name":"get_photographer_packages","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 p"},{"name":"create_reservation","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"},{"name":"get_payment_link","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 serve"},{"name":"get_reservation_status","description":"Check whether a reservation has been paid and confirmed. IMPORTANT: status values are 'awaiting_payment', 'expired', 'paid_awaiting_photographer_confirmation', "}],"toolCount":6,"toolsHash":"7e9b9096a6dba6620e8b8d018d5c9f3ab5b7ed3622172cd280aa49741af1cbb5","serverName":"kadro-booking","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-24T05:30:06.806Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":209,"error":null,"detail":{"tools":[{"name":"search_shoot_types","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'"},{"name":"search_photographers","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"},{"name":"get_photographer_packages","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 p"},{"name":"create_reservation","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"},{"name":"get_payment_link","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 serve"},{"name":"get_reservation_status","description":"Check whether a reservation has been paid and confirmed. IMPORTANT: status values are 'awaiting_payment', 'expired', 'paid_awaiting_photographer_confirmation', "}],"toolCount":6,"toolsHash":"7e9b9096a6dba6620e8b8d018d5c9f3ab5b7ed3622172cd280aa49741af1cbb5","serverName":"kadro-booking","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-24T00:25:15.839Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":110,"error":null,"detail":{"tools":[{"name":"search_shoot_types","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'"},{"name":"search_photographers","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"},{"name":"get_photographer_packages","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 p"},{"name":"create_reservation","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"},{"name":"get_payment_link","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 serve"},{"name":"get_reservation_status","description":"Check whether a reservation has been paid and confirmed. IMPORTANT: status values are 'awaiting_payment', 'expired', 'paid_awaiting_photographer_confirmation', "}],"toolCount":6,"toolsHash":"7e9b9096a6dba6620e8b8d018d5c9f3ab5b7ed3622172cd280aa49741af1cbb5","serverName":"kadro-booking","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T23:27:23.329Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":217,"error":null,"detail":{"tools":[{"name":"search_shoot_types","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'"},{"name":"search_photographers","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"},{"name":"get_photographer_packages","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 p"},{"name":"create_reservation","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"},{"name":"get_payment_link","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 serve"},{"name":"get_reservation_status","description":"Check whether a reservation has been paid and confirmed. IMPORTANT: status values are 'awaiting_payment', 'expired', 'paid_awaiting_photographer_confirmation', "}],"toolCount":6,"toolsHash":"7e9b9096a6dba6620e8b8d018d5c9f3ab5b7ed3622172cd280aa49741af1cbb5","serverName":"kadro-booking","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T17:32:24.801Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":307,"error":null,"detail":{"tools":[{"name":"search_shoot_types","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'"},{"name":"search_photographers","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"},{"name":"get_photographer_packages","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 p"},{"name":"create_reservation","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"},{"name":"get_payment_link","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 serve"},{"name":"get_reservation_status","description":"Check whether a reservation has been paid and confirmed. IMPORTANT: status values are 'awaiting_payment', 'expired', 'paid_awaiting_photographer_confirmation', "}],"toolCount":6,"toolsHash":"7e9b9096a6dba6620e8b8d018d5c9f3ab5b7ed3622172cd280aa49741af1cbb5","serverName":"kadro-booking","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T16:28:43.449Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":253,"error":null,"detail":{"tools":[{"name":"search_shoot_types","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'"},{"name":"search_photographers","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"},{"name":"get_photographer_packages","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 p"},{"name":"create_reservation","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"},{"name":"get_payment_link","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 serve"},{"name":"get_reservation_status","description":"Check whether a reservation has been paid and confirmed. IMPORTANT: status values are 'awaiting_payment', 'expired', 'paid_awaiting_photographer_confirmation', "}],"toolCount":6,"toolsHash":"7e9b9096a6dba6620e8b8d018d5c9f3ab5b7ed3622172cd280aa49741af1cbb5","serverName":"kadro-booking","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T10:33:30.847Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":334,"error":null,"detail":{"tools":[{"name":"search_shoot_types","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'"},{"name":"search_photographers","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"},{"name":"get_photographer_packages","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 p"},{"name":"create_reservation","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"},{"name":"get_payment_link","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 serve"},{"name":"get_reservation_status","description":"Check whether a reservation has been paid and confirmed. IMPORTANT: status values are 'awaiting_payment', 'expired', 'paid_awaiting_photographer_confirmation', "}],"toolCount":6,"toolsHash":"7e9b9096a6dba6620e8b8d018d5c9f3ab5b7ed3622172cd280aa49741af1cbb5","serverName":"kadro-booking","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T09:31:06.956Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":229,"error":null,"detail":{"tools":[{"name":"search_shoot_types","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'"},{"name":"search_photographers","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"},{"name":"get_photographer_packages","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 p"},{"name":"create_reservation","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"},{"name":"get_payment_link","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 serve"},{"name":"get_reservation_status","description":"Check whether a reservation has been paid and confirmed. IMPORTANT: status values are 'awaiting_payment', 'expired', 'paid_awaiting_photographer_confirmation', "}],"toolCount":6,"toolsHash":"7e9b9096a6dba6620e8b8d018d5c9f3ab5b7ed3622172cd280aa49741af1cbb5","serverName":"kadro-booking","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T03:24:53.694Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":317,"error":null,"detail":{"tools":[{"name":"search_shoot_types","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'"},{"name":"search_photographers","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"},{"name":"get_photographer_packages","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 p"},{"name":"create_reservation","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"},{"name":"get_payment_link","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 serve"},{"name":"get_reservation_status","description":"Check whether a reservation has been paid and confirmed. IMPORTANT: status values are 'awaiting_payment', 'expired', 'paid_awaiting_photographer_confirmation', "}],"toolCount":6,"toolsHash":"7e9b9096a6dba6620e8b8d018d5c9f3ab5b7ed3622172cd280aa49741af1cbb5","serverName":"kadro-booking","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"search_shoot_types","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'"},{"name":"search_photographers","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"},{"name":"get_photographer_packages","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 p"},{"name":"create_reservation","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"},{"name":"get_payment_link","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 serve"},{"name":"get_reservation_status","description":"Check whether a reservation has been paid and confirmed. IMPORTANT: status values are 'awaiting_payment', 'expired', 'paid_awaiting_photographer_confirmation', "}],"package":null,"toolSurface":{"id":"ts_qzvkvgfgvkeh","endpointId":"ep_5xep82bzru4h","hash":"7e9b9096a6dba6620e8b8d018d5c9f3ab5b7ed3622172cd280aa49741af1cbb5","toolCount":6,"serverName":"kadro-booking","serverVersion":"1.0.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-09-28T19:27:31.884Z","lastSeenAt":"2026-10-24T12:24:55.983Z","observations":92,"toolNames":["search_shoot_types","search_photographers","get_photographer_packages","create_reservation","get_payment_link","get_reservation_status"],"distinctSurfaces":3},"endpointFacts":[{"id":"ep_hqk8jyv2jud8","url":"https://www.kadro.co/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-23T10:33:30.916Z","auth":{"observedAt":"2026-10-23T10:33:31.055Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-23T10:33:31.065Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"kadro.co","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-10-08T21:39:53.000Z","validTo":"2027-01-06T22:39:40.000Z","daysToExpiry":74,"sanCount":2,"fingerprint256":"4E:A6:53:48:E3:DD:3B:67:A1:35:0E:14:67:66:40:BD:53:18:F2:37:7C:18:6C:5D:42:0D:10:39:90:E3:0C:EE"}},{"id":"ep_5xep82bzru4h","url":"https://www.shootempire.com/kadro-mcp-relay/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-20T19:23:30.826Z","auth":{"observedAt":"2026-10-20T19:23:30.878Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-20T19:23:30.900Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"shootempire.com","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-10-02T11:32:16.000Z","validTo":"2026-12-31T12:29:42.000Z","daysToExpiry":67,"sanCount":2,"fingerprint256":"30:14:B4:66:8C:93:17:7C:DE:D7:7A:A4:FB:0F:01:9F:09:57:37:B5:DA:4E:3E:BD:E2:33:DF:C2:8D:04:C4:47"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.github.amvaleh/kadro-mcp-server","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.amvaleh%2Fkadro-mcp-server","firstSeenAt":"2026-09-26T05:17:49.769Z","fetchedAt":"2026-10-22T21:20:37.819Z","normalizedAt":"2026-10-22T21:20:37.819Z"}]},"firstSeenAt":"2026-09-26T05:17:49.769Z","updatedAt":"2026-10-24T12:28:57.970Z"}