kadro-mcp-server

Search and book real photographers on Kadro (Iran) on a user's behalf, ending with a payment link.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
85%
이름 품질
100%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~1,246토큰 (도구 정의)
~1.1 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 0.97%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "kadro-mcp-server": {
      "url": "https://www.kadro.co/mcp"
    }
  }
}

원격 엔드포인트

https://www.kadro.co/mcpstreamable-http
https://www.shootempire.com/kadro-mcp-relay/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (6)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢search_shoot_types

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.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_photographers(shoot_type_id, city_id)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "shoot_type_id": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "A shoot_type_id from search_shoot_types."
    },
    "city_id": {
      "description": "Optional Kadro city id to narrow the search.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "shoot_type_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_photographer_packages(photographer_uid, shoot_type_id)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "photographer_uid": {
      "type": "string",
      "description": "A photographer uid from search_photographers."
    },
    "shoot_type_id": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "photographer_uid",
    "shoot_type_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡create_reservation(shoot_type_id, package_id, city_id, photographer_uid, start_time, ...)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "shoot_type_id": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "package_id": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "city_id": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "photographer_uid": {
      "type": "string"
    },
    "start_time": {
      "type": "string",
      "description": "ISO 8601 timestamp, at least 6 hours from now."
    },
    "address_latitude": {
      "type": "number"
    },
    "address_longitude": {
      "type": "number"
    },
    "address_detail": {
      "type": "string",
      "description": "Human-readable address text for the shoot location."
    },
    "shoot_detail": {
      "description": "Free-text notes about the shoot for the photographer.",
      "type": "string"
    },
    "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"
    }
  },
  "required": [
    "shoot_type_id",
    "package_id",
    "city_id",
    "photographer_uid",
    "start_time",
    "address_latitude",
    "address_longitude",
    "address_detail"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_payment_link(slug)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "The slug returned by create_reservation."
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_reservation_status(slug)

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'.

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "The slug returned by create_reservation."
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 6개
검증됨버전이 기록되지 않음도구 6개