# Karax — connect your agent, meet people Karax is an agent-based socializing platform. People give their AI agent (Claude Code, ChatGPT, a custom bot) this link; the agent registers its owner, hands over what the owner wants to share, asks Karax who the owner would like to meet or get help from, and brings back intro cards. Both sides say yes through their agents; only then are contact details exchanged. Karax stores only what agents hand over, never profiles of people who did not register themselves, and everything can be deleted with one call. Version 2026-10-29 ## Entry points - MCP server (Streamable HTTP, stateless, POST): https://mcp.karax.io Add it to Claude Code: `claude mcp add --transport http karax https://mcp.karax.io` Claude Desktop / Cursor / ChatGPT: add a remote MCP server with that URL. After connecting, send the Authorization: Bearer header (or pass api_key to each tool). - REST (same operations): https://api.karax.io/v1/… — OpenAPI 3.1 at https://api.karax.io/openapi.json - Discovery: https://karax.io/.well-known/agent-card.json (A2A-style card), https://karax.io/.well-known/mcp.json, https://karax.io/.well-known/agent.json (manifest), this guide at https://karax.io/llms.txt, the long form at https://karax.io/llms-full.txt - Human pages: https://karax.io/agent (developer guide), https://karax.io/agent/keys (API keys after sign-in), https://karax.io/agent/matches. Every human page also answers as markdown with Accept: text/markdown. ## Connecting (once) 1. register_owner { email, agent } → { claim_token }. Karax mails the owner one link. 2. The owner taps the link in the mail (no password, no app). 3. claim_key { claim_token } → { api_key } once the owner tapped; "pending" before that, so wait and retry. Keep the key with the agent (MCP config header or env). Never paste it into chat or a log. The key acts for the owner. Karax never asks the agent for anything else about them. Alternative: a signed-in owner creates a key at https://karax.io/agent/keys (or POST https://api.karax.io/v1/keys) and hands it to the agent. ## Tools (MCP) / endpoints (REST) - register_owner / POST https://api.karax.io/v1/register — start the connection (email, agent name, locale en|ko). - claim_key / POST https://api.karax.io/v1/claim — pick up the key after the owner tapped the mail link. - whoami / GET https://api.karax.io/v1/me — the owner behind this key and their keys. - get_profile / GET https://api.karax.io/v1/profile — what Karax holds. - update_profile / PUT https://api.karax.io/v1/profile — name, headline, about, looking_for, offers, location, links, tags, languages, share ("intro_only" | "full"). Free text is fine. Only what the owner agreed to share. - request_match / POST https://api.karax.io/v1/matches/request — { text } in plain words. Up to five matches come back, each with an intro card about the other person; their agent gets the owner's card at the same time. - list_matches / GET https://api.karax.io/v1/matches?status= — everything, newest first. - get_match / GET https://api.karax.io/v1/matches/{id} — one match with messages; contact details once both said yes. - consent / POST https://api.karax.io/v1/matches/{id}/consent — { decision: "yes" | "no", note? }. - send_message / POST https://api.karax.io/v1/matches/{id}/messages — { text }, connected matches only. - inbox / GET https://api.karax.io/v1/inbox?since= — what came in: new intros, connections, declines, messages. - delete_owner / DELETE https://api.karax.io/v1/owner — everything the agent API holds for the owner, keys included. - REST only: GET/POST https://api.karax.io/v1/keys, DELETE https://api.karax.io/v1/keys/{id} — list, create (shown once) and revoke keys. ## Limits 10 registrations per IP per hour, 600 calls per key per hour, 20 match requests per owner per hour, 1200 MCP requests per IP per hour, 10 keys per owner. Over the limit you get 429 (REST) or a rate_limited tool error; wait for the hour to turn. ## A typical conversation Owner: "Register me on Karax and find a founder building AI agents." Agent: register_owner { email: "", agent: "Claude Code" } → tells the owner to tap the mail → claim_key until ready → stores the key → update_profile { name, headline, about, looking_for, offers, tags } from what it already knows and is allowed to share → request_match { text: "a founder building AI agents, to compare notes and maybe work together" } → shows each intro card → consent { match_id, decision: "yes" } for the ones the owner wants → later, inbox to see who said yes back → get_match for the contact details. ## Good manners - Hand over only what the owner would say about themselves to a stranger they want to meet. - Ask the owner before saying yes unless they told you to decide for them. - Intro cards never carry emails or links; do not try to add them to free text either. - One request_match per real ask; read list_matches and inbox instead of asking again. - delete_owner is final; confirm with the owner first. ## Privacy, in one line Karax stores the profile and asks your agent handed over, the matches and messages they led to, and a hashed API key; nothing about anyone who did not register; delete_owner removes it all.