kadro-mcp-server
MCP serverSearchSearch and book real photographers on Kadro (Iran) on a user's behalf, ending with a payment link.
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use kadro-mcp-server
Install kadro-mcp-server
The server’s own address, for the clients that take one directly. Or connect ahel onceand every client you use reads it from one address, with the account kept on ahel rather than in each client’s config.
Claude Code
claude mcp add --transport http --scope user kadro-mcp-server 'https://www.kadro.co/mcp'Run it once in your project, then open /mcp to approve any sign-in the server asks for.
Claude Desktop
https://www.kadro.co/mcpAdd a custom connector in Settings, paste this address, and approve the sign-in.
Cursor
cursor://anysphere.cursor-deeplink/mcp/install?name=kadro-mcp-server&config=eyJ1cmwiOiJodHRwczovL3d3dy5rYWRyby5jby9tY3AifQ==Open the link and Cursor adds the server at that address.
ChatGPT
https://www.kadro.co/mcpIn Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.
Codex
codex mcp add kadro-mcp-server --url 'https://www.kadro.co/mcp'Run it once, then sign in with codex mcp login kadro-mcp-server if the server asks for an account.
From the project's README
As published by amvaleh/kadro-mcp-server in README.md.
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" "you@example.com" # 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):
-
Build and run the Docker image above on the server (or run
npm run build && npm startunder a process manager likesystemdorpm2). -
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 ""; } -
The public MCP endpoint ends up at something like
https://www.kadro.co/mcporhttps://mcp.kadro.co/mcp— whichever this repo's operator prefers. Put that URL inpublic/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
Advanced
- Delivery
- kadro-mcp-server MCP server → your ahel connector (mcp.ahel.ai) → your AI.
- Catalog kind
- mcp-server
- Key
io-github-amvaleh-kadro-mcp-server- Source
- github.com/amvaleh/kadro-mcp-server
- Hosted endpoint
https://www.kadro.co/mcp