protogrid

Search / io.github.amvaleh/kadro-mcp-server

kadro-mcp-server

R0· no sign-in

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

v1.0.1 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality86good
Trust97of 100
Uptime, 30 days98%
Latency p50621 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "kadro-mcp-server": {
      "type": "http",
      "url": "https://www.shootempire.com/kadro-mcp-relay/mcp"
    }
  }
}
claude mcp add --transport http kadro-mcp-server https://www.shootempire.com/kadro-mcp-relay/mcp
[mcp_servers.kadro-mcp-server]
url = "https://www.shootempire.com/kadro-mcp-relay/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "kadro-mcp-server": {
      "type": "remote",
      "url": "https://www.shootempire.com/kadro-mcp-relay/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "kadro-mcp-server": {
      "type": "http",
      "url": "https://www.shootempire.com/kadro-mcp-relay/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=kadro-mcp-server&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vd3d3LnNob290ZW1waXJlLmNvbS9rYWRyby1tY3AtcmVsYXkvbWNwIn0%3D"
}
{
  "servers": {
    "kadro-mcp-server": {
      "type": "http",
      "url": "https://www.shootempire.com/kadro-mcp-relay/mcp"
    }
  }
}
{
  "mcpServers": {
    "kadro-mcp-server": {
      "httpUrl": "https://www.shootempire.com/kadro-mcp-relay/mcp"
    }
  }
}
extensions:
  "kadro-mcp-server":
    enabled: true
    name: "kadro-mcp-server"
    type: streamable_http
    uri: "https://www.shootempire.com/kadro-mcp-relay/mcp"
    timeout: 300

Quality 86 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene100 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations6 of 6 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 1,246 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability75 · weight 15
  • warn
    stability.changes12 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

6 tools, about 1,246 tokens to load them all · tool set 154935686fd4 · tools last changed 2026-10-06 · checked 2026-10-20 13:49 UTC

Tool changes

  • get_reservation_statusadded

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

  • get_payment_linkadded

    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.

  • create_reservationadded

    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.

  • get_photographer_packagesadded

    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.

  • search_photographersadded

    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.

  • search_shoot_typesadded

    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.

  • get_reservation_statusremoved

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

  • get_payment_linkremoved

    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.

  • create_reservationremoved

    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.

  • get_photographer_packagesremoved

    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.

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 97 / 100

provenance90
liveness99
freshness100
hygiene100

+repository +namespace-matches-repo +website +reachable +uptime-98% +updated-24d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://www.shootempire.com/kadro-mcp-relay/mcp streamable-httpnoneyes98%621 ms2025-11-252026-10-20

Tools (6)

create_reservationBook 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.
get_payment_linkread-onlyGet 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.
get_photographer_packagesread-onlyList 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.
get_reservation_statusread-onlyCheck 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'.
search_photographersread-onlyFind 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.
search_shoot_typesread-onlyList 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.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.amvaleh/kadro-mcp-server",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://www.shootempire.com/kadro-mcp-relay/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.1",
  "repository": {
    "url": "https://github.com/amvaleh/kadro-mcp-server",
    "source": "github"
  },
  "websiteUrl": "https://www.kadro.co",
  "description": "Search and book real photographers on Kadro (Iran) on a user's behalf, ending with a payment link."
}