mcpField
K
kadro-mcp-server

kadro-mcp-server

Remote
kadro.coBusiness & Marketing0Updated 3w ago

About kadro-mcp-server

kadro-mcp-server connects AI assistants to Kadro's photographer listings and booking flow in Iran. It supports searches, package and price lookup, a temporary guest reservation, and a payment link that the person opens themselves.

Key features

  1. 01List photography service types
  2. 02Search photographers by service and city
  3. 03View packages and prices
  4. 04Create a 15-minute guest reservation hold
  5. 05Retrieve payment link and reservation status

Use cases

  1. 01Find photographers for a requested shoot type and city
  2. 02Compare photographer packages and prices
  3. 03Hold a booking before the customer pays
  4. 04Check whether a reservation is paid or confirmed

MCP support

The MCP server exposes Kadro photographer search and guest reservation operations to MCP clients. Payment and phone verification happen through a link opened by the person; tools do not handle card details, OTP codes, or passwords.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://www.shootempire.com/kadro-mcp-relay/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Tools

6

This tool takes no parameters.

Details

From the project README

kadro-mcp-server

M8ven Score

An MCP (Model Context Protocol) server that lets AI assistants search Kadro photographers/packages and book a guest reservation on a user's behalf, ending with a payment link — the assistant never touches payment or login itself. It's a thin wrapper around Kadro's Api::Agent::V1 REST API (see the Main-Rails repo, app/controllers/api/agent/v1/).

Tools

  • search_shoot_types — list service types and their ids.
  • search_photographers — find photographers for a shoot_type_id (+ optional city_id).
  • get_photographer_packages — a photographer's real packages and prices.
  • create_reservation — place a 15-minute guest hold. No payment involved.
  • get_payment_link — a URL for the human to open themselves to verify their phone and pay. This is the boundary: no tool here ever asks for or handles card details, OTP codes, or passwords.
  • get_reservation_status — check payment/confirmation status. Paid is not the same as confirmed — see the tool description.

Setup

npm install
cp .env.example .env
npm run register -- "your-platform-name" "[email protected]"   # prints a token
# paste the printed KADRO_API_TOKEN into .env
npm run build
npm start   # listens on :3100 (or $PORT), MCP endpoint is POST /mcp

The registration is self-service and instant, capped at a daily_limit of 5 requests/day by default (see ApiPartner in Main-Rails). Email Kadro to request a higher limit for this server's token once it's actually deployed.

Running with Docker

docker build -t kadro-mcp-server .
docker run -p 3100:3100 --env-file .env kadro-mcp-server

Deploying on the same server as the Rails app

This is a separate Node process from the Rails app — it does not go through Capistrano. A reasonable setup, matching this server's existing Docker usage for other services (gitlab, typesense):

  1. Build and run the Docker image above on the server (or run npm run build && npm start under a process manager like systemd or pm2).

  2. Point a path or subdomain at it through whatever already terminates TLS for kadro.co (nginx, based on the existing setup). Example nginx snippet — adjust to match the real server-block layout, this repo has no visibility into it:

    location /mcp {
      proxy_pass http://127.0.0.1:3100/mcp;
      proxy_set_header Host $host;
      proxy_http_version 1.1;
      proxy_set_header Connection "";
    }
    
  3. The public MCP endpoint ends up at something like https://www.kadro.co/mcp or https://mcp.kadro.co/mcp — whichever this repo's operator prefers. Put that URL in public/llms.txt (Main-Rails) once it's live, alongside the plain REST API section already there.

Verifying it's alive

curl https://<wherever-it's-deployed>/healthz   # -> ok

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.