Using the raw HTTP API.

Every xlsx-for-ai tool is a plain HTTP endpoint you can call from any language — no SDK, no upload UI.

The MCP client is the easy path for Claude, Cursor, and other agents. But if you're integrating directly, the same 50 tools are a versioned HTTP API you can browse and call without a key.

Anonymous, keyless on-ramp

Registration takes no email and no signup. POST https://api.xlsx-for-ai.dev/api/v1/clients (no auth) returns { client_id, api_key }; then call any tool with an Authorization: Bearer <api_key> header. The free tier is 10,000 calls/month, 10 MB per file — no billing.

# Self-issue a key (no signup), then convert report.xlsx to Markdown.
# Needs jq, and bash or zsh. The base64 body is passed to curl through a
# process-substitution fd and the token through a --config heredoc on stdin, which
# keeps both out of the argument list. -fsS --max-time makes curl fail loudly on an
# HTTP error or a hang; the guard line stops on a failed key issuance.
KEY=$(curl -fsS --max-time 30 -XPOST https://api.xlsx-for-ai.dev/api/v1/clients \
  -H 'Content-Type: application/json' \
  -d '{"client_version":"2.0.0","platform":"cli"}' | jq -r .api_key)
[ -n "$KEY" ] && [ "$KEY" != null ] || { echo "key issuance failed"; exit 1; }

curl -fsS --max-time 120 -XPOST https://api.xlsx-for-ai.dev/api/v1/tools/xlsx_convert \
  --data-binary @<(base64 < report.xlsx | tr -d '\n' | jq -Rs '{file_b64: ., to: "md"}') \
  -H 'Content-Type: application/json' \
  --config - <<CFG
header = "Authorization: Bearer $KEY"
CFG

Discover the whole API — no key required

The same governed contract is served read-only from two routes, so you can explore before you register:

Prefer the MCP client?

If your agent speaks MCP, skip the HTTP wiring entirely — install the client and register it with two commands:

npm install -g xlsx-for-ai
claude mcp add xfa -- xlsx-for-ai-mcp

Full docs and the complete tool reference are on the GitHub repository and the npm package page.