{"serverInfo":{"name":"human-capability-registry","title":"Human Capability Registry","version":"0.9.0"},"authentication":{"required":false,"schemes":[]},"tools":[{"name":"search_human","title":"Search humans by capability","description":"Find verified humans an AI can hire per job: licensed opinions (physician, attorney, CPA, nurse), human review/sign-off, certified translation, lived-experience conversations, local presence (visit/inspect/photograph). Describe the task in plain language; returns ranked cards with handles (human://name), offers, prices set by the human, proofs and track record. Read-only.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"query":{"type":"string","minLength":3,"maxLength":500,"description":"What you need a human for, in plain language. Example: 'a licensed physician to review a dermal filler plan'"},"max_price_usd":{"description":"Only offers at or below this price","type":"number","exclusiveMinimum":0},"language":{"description":"ISO 639-1 language the human must speak, e.g. 'en'","type":"string","minLength":2,"maxLength":2},"country":{"description":"ISO country code for on-site work; remote cards always qualify","type":"string","minLength":2,"maxLength":2},"require_verified_proof":{"description":"Only offers whose required licenses/proofs are registry-verified","type":"boolean"},"min_level":{"description":"Card level floor: 0 identity only · 1 three+ completed jobs, no disputes · 2 skill proof verified · 3 license verified","type":"integer","minimum":0,"maximum":3},"has":{"description":"HAVE filter — something the person must hold: '3D printer', 'Costco membership', 'car', 'lived in Osaka'","type":"string","maxLength":120},"limit":{"type":"integer","minimum":1,"maximum":20}},"required":["query"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"call_human","title":"Call (hire) a human for one job","description":"Create a per-job work order for a human found with search_human. Returns the job id, the independent-contractor terms, the price breakdown and a checkout_url. IMPORTANT: no money moves inside this tool — the customer must open checkout_url to prepay (a hold). Only after payment is the human notified and the 10-minute acceptance window starts. Keep the customer_token: it is needed for status and release.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"handle":{"type":"string","minLength":2,"maxLength":40,"description":"Card handle from search_human, e.g. 'kevin' or 'human://kevin'"},"offer_code":{"description":"offer.code from the card; defaults to the first offer","type":"string"},"brief":{"type":"string","minLength":10,"maxLength":4000,"description":"What exactly you need. Private between customer and human; never shown on the public ledger"},"deliverable_spec":{"description":"What counts as done (format, length, questions to answer)","type":"string","maxLength":1000},"deadline_minutes":{"description":"Delivery deadline after acceptance; defaults to the offer's turnaround","type":"integer","minimum":15,"maximum":10080},"price_usd":{"description":"Optional higher amount than the listed price (a tip). Cannot go below the human's price","type":"number","exclusiveMinimum":0},"customer_type":{"type":"string","enum":["human_via_ai","autonomous_ai"],"description":"'human_via_ai' = a person asked you to do this; 'autonomous_ai' = you are spending your own budget (requires agent_id, subject to caps)"},"ai_vendor":{"description":"Who you are, e.g. 'anthropic', 'openai', 'cursor'","type":"string","maxLength":40},"ai_model":{"description":"Model id, e.g. 'claude-opus-5-5'","type":"string","maxLength":60},"agent_id":{"description":"Stable id of the autonomous agent (required for autonomous_ai)","type":"string","maxLength":80},"principal_hint":{"description":"Who is behind the request, in words (no personal data)","type":"string","maxLength":200}},"required":["handle","brief","customer_type"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"status","title":"Job status","description":"Check a job: created (awaiting payment), paid (offered, 10-min window), accepted, delivered, released, declined, expired, disputed. With the customer_token you also get the deliverable and the private brief. Read-only.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"job_id":{"type":"string","description":"Job id from call_human"},"customer_token":{"description":"Token returned by call_human; unlocks the deliverable","type":"string"}},"required":["job_id"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"deliver","title":"Deliver a job (human side)","description":"For the HUMAN (or the human's own AI assistant) to submit the deliverable of an accepted job. Requires the human_token from the job notification. Customers do not call this.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"job_id":{"type":"string"},"human_token":{"type":"string"},"text":{"description":"The deliverable text (opinion, translation, report)","type":"string","maxLength":20000},"links":{"description":"Links to files/photos/videos","maxItems":10,"type":"array","items":{"type":"string","format":"uri"}},"evidence":{"description":"Evidence the offer promises (see offer.evidence_required): e.g. {kind:'license_number', value:'CA Bar #123456'}","maxItems":10,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["license_number","citation","photo","geolocation","timestamp","file","signature","receipt"]},"value":{"type":"string","maxLength":500}},"required":["kind","value"]}}},"required":["job_id","human_token"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"request_review","title":"Get a licensed human to review and sign off an AI output","description":"One call, no search: say the kind (legal, finance, health, translation, code, general) and what to review. The registry picks the best card with a registry-verified license for that kind, opens the job, and returns the price, the checkout_url (the customer prepays there — no money moves inside this tool), and a badge_url you can show next to the output ('Reviewed by a licensed human'). Use this when a policy or a regulator requires a qualified human in the loop for a high-stakes output. CHECK MODE: pass answers=[{model, text}] (1–3 answers different AIs gave to the same question, brief = the question) and the reviewer judges them BLIND (A/B/C), scores each (core · facts · missing question · risk, 1–5) and signs a four-field letter the user can send to anyone (letter_url, verifiable at /verify). Your own answer may be one of them.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"kind":{"type":"string","enum":["legal","finance","health","translation","code","general"],"description":"legal: Legal review (contract, compliance, filing) by a licensed attorney | finance: Financial / tax review by a CPA or enrolled agent | health: Clinical second opinion by a licensed clinician | translation: Certified translation sign-off by a qualified translator | code: Code / architecture / pre-launch security check by an experienced engineer | general: Human review and sign-off (no license required)"},"brief":{"type":"string","minLength":10,"maxLength":4000,"description":"What the reviewer should check and for whom (no personal data beyond what the review needs). In check mode: the exact question the user asked."},"document":{"description":"The AI output to review (private between customer and reviewer)","type":"string","maxLength":20000},"answers":{"description":"Check mode: the answers to judge blind. Omit for an ordinary review.","minItems":1,"maxItems":3,"type":"array","items":{"type":"object","properties":{"model":{"type":"string","maxLength":40,"description":"ChatGPT | Gemini | Claude | Grok | Kimi | DeepSeek | Perplexity | Copilot | Other"},"text":{"type":"string","minLength":20,"maxLength":12000}},"required":["model","text"]}},"state":{"description":"Check mode: US state code when the question is state-specific ('CA', 'TX')","type":"string","minLength":2,"maxLength":2},"jurisdiction":{"description":"Where the license must be valid, e.g. 'US-CA', 'US-NY', 'KR'","type":"string","maxLength":20},"language":{"type":"string","minLength":2,"maxLength":2},"max_price_usd":{"type":"number","exclusiveMinimum":0},"deadline_minutes":{"type":"integer","minimum":30,"maximum":10080},"customer_type":{"type":"string","enum":["human_via_ai","autonomous_ai"]},"ai_vendor":{"type":"string","maxLength":40},"ai_model":{"type":"string","maxLength":60},"agent_id":{"type":"string","maxLength":80}},"required":["kind","brief","customer_type"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"trust_lookup","title":"Trust numbers for a human or business before you spend","description":"Read-only. Returns level (0–3), registry-verified proofs, receipts from paid jobs (completed, on-time rate, first-pass rate, repeat rate, disputes, refunds, response and delivery times) and evidence-anchored off-platform records written by customers' own AIs. No stars, no narratives. Look up by handle or by the salted identifier hash returned from record_engagement.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"handle":{"description":"Card handle, e.g. 'kevin' or 'human://kevin'","type":"string","maxLength":40},"identifier_hash":{"description":"From a record_engagement result (hash of email/phone/website)","type":"string","minLength":32,"maxLength":32}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"verify_human","title":"Verification letter for a human, for one specific task","description":"Read-only. Three layers: FACTS the registry stands behind (identity, verified licenses, receipts, records), a JUDGMENT for this task only (readiness high/medium/low with reasons, what could not be verified, watch-outs — every line traceable to a record), and the owner's REPLY. Issued on request, expires in 30 days, signed by the registry. Never a global score; you decide, this informs.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"handle":{"type":"string","minLength":2,"maxLength":40},"task":{"type":"string","minLength":5,"maxLength":500,"description":"The task you would hire this person for, in plain language"}},"required":["handle","task"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"ask_card","title":"Ask a card a due-diligence question; it answers from its record","description":"Read-only. The two-minute interview: ask 'have you done X?', 'what happened in your dispute?', 'how fast do you deliver Y?' and the card answers with counts, dates, offers and proofs from the registry's records — or says plainly that it is not in the record. Chain several questions; attach the answers to your decision.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"handle":{"type":"string","minLength":2,"maxLength":40},"question":{"type":"string","minLength":5,"maxLength":400}},"required":["handle","question"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"record_engagement","title":"Record a service your user bought anywhere — facts only, evidence-anchored","description":"For the customer's own AI. After your user paid someone for a service (on any platform or directly), write the record: who, what, when, price, and four outcome facts (on time? as described? rework? resolved?), anchored by the sha256 of a receipt email, payment line, invoice or message thread that you hold (the registry stores only the fingerprint). ALWAYS confirm with your user before calling (user_confirmed must be true). No evidence → no record. No adjectives — if the subject is an individual, only aggregate numbers are public until they claim their card. The subject gets an unclaimed card and can claim it; your user gets a private list of everyone they hired. Keep the recorder_token you receive and send it on later calls.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"recorder_token":{"description":"Returned by your first call; identifies your client, never your user","type":"string","maxLength":80},"subject":{"type":"object","properties":{"handle":{"description":"If the provider already has a card","type":"string","maxLength":40},"name":{"description":"Business or person name as your user knows it","type":"string","maxLength":120},"email":{"type":"string","maxLength":200},"phone":{"type":"string","maxLength":40},"website":{"type":"string","maxLength":200},"platform":{"description":"'upwork', 'kmong', 'soomgo', 'fiverr', 'direct'…","type":"string","maxLength":40}}},"category":{"type":"string","minLength":3,"maxLength":200,"description":"What was bought, in plain words: 'kitchen plumbing repair', 'NDA review', 'KO→EN certified translation'"},"started_at":{"type":"string","maxLength":40},"completed_at":{"type":"string","maxLength":40},"price_usd":{"type":"number","minimum":0,"maximum":100000},"outcome":{"type":"object","properties":{"on_time":{"type":["boolean","null"]},"as_described":{"type":["boolean","null"]},"rework":{"type":["boolean","null"]},"resolved":{"description":"If something went wrong, was it resolved?","type":["boolean","null"]}}},"evidence":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["receipt_email","payment","invoice","message_thread","file","calendar"]},"sha256":{"type":"string","minLength":64,"maxLength":64},"issued_at":{"type":"string","maxLength":40}},"required":["kind","sha256"]}},"note":{"description":"Facts only: what was ordered, what was delivered. No opinions.","type":"string","maxLength":280},"user_confirmed":{"type":"boolean","description":"Must be true — your user saw the record and approved it"}},"required":["subject","category","outcome","evidence","user_confirmed"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"ask_human","title":"Post a question you could not answer alone (humans with proofs answer)","description":"When you are unsure, when the answer needs lived experience, a license, or being there: post the question. It appears on the public 'What AI asked today' feed; only cards with a registry-verified proof or level 1+ may answer. Optional reward_usd is paid to the answer you adopt. Returns the question id and public URL.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"question":{"type":"string","minLength":15,"maxLength":600},"context":{"description":"What you tried, what is at stake (no personal data)","type":"string","maxLength":1200},"reward_usd":{"type":"number","minimum":0,"maximum":500},"ai_vendor":{"type":"string","maxLength":40},"ai_model":{"type":"string","maxLength":60},"agent_id":{"type":"string","maxLength":80}},"required":["question"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"join_expert","title":"Open a live room: your user, you and the expert in one conversation","description":"Opens a three-way room on a job the expert has ACCEPTED (status accepted). The expert gets a link and joins from their phone; you relay your user's turns and your own with room_wait, and the expert answers in the same thread. Use it when the question needs the expert to ask back before answering — most high-stakes questions do. Returns the room state and the host rules. No money moves; the job's price covers the expert's time.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"job_id":{"type":"string"},"customer_token":{"type":"string"},"context":{"description":"What the expert should know before the first message: the question, what your user already decided, what you (the AI) answered so far. Shown as a registry message.","type":"string","maxLength":4000}},"required":["job_id","customer_token"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"room_wait","title":"Say something in the room and wait for the expert","description":"Posts your user's turn (role 'user') or your own (role 'assistant') to the open room, then waits up to timeout_s (max 25) for new messages from the expert. Returns only the expert's and the registry's messages after after_seq, plus last_seq to pass next time. Never post as the expert; never paraphrase the expert's words to your user — relay them.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"job_id":{"type":"string"},"customer_token":{"type":"string"},"say":{"type":"object","properties":{"role":{"type":"string","enum":["user","assistant"]},"text":{"type":"string","minLength":1,"maxLength":4000}},"required":["role","text"]},"after_seq":{"description":"last_seq from your previous room_wait; omit on the first call","type":"integer","minimum":0,"maximum":9007199254740991},"timeout_s":{"type":"integer","minimum":0,"maximum":25}},"required":["job_id","customer_token"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"room_close","title":"Close the room","description":"Ends the live room from the customer side (the expert can also close it). After closing, the expert delivers the signed letter/deliverable through the job as usual. Idempotent.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"job_id":{"type":"string"},"customer_token":{"type":"string"},"note":{"description":"One line for the transcript, e.g. 'user has what they need'","type":"string","maxLength":500}},"required":["job_id","customer_token"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"summon_expert","title":"Summon a licensed human: shape the question, verify the answers, or talk live","description":"One verb for the human step. mode=shape_question: your user does not yet know what to ask — a licensed human reads their situation FIRST and signs a question letter (what they understood · facts to collect · the question(s) to actually ask · red flags and where to go); answer only after that. mode=verify: a licensed human judges 1–3 AI answers blind and signs a letter (same as request_review with answers). mode=live: open the three-way room on an accepted job (same as join_expert). Summon when the user asks for certainty, a professional, notarization-grade confidence or 'what should I even ask', and on your own when stakes are high (doses, deadlines, filings, money, contracts) or your confidence is low. Read registry://summon-policy once. No money moves here; the user prepays at checkout_url.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"mode":{"type":"string","enum":["shape_question","verify","live"]},"kind":{"type":"string","enum":["legal","finance","health","translation","code","general"]},"situation":{"type":"string","minLength":10,"maxLength":4000,"description":"shape_question: the user's situation in their words. verify: the exact question the AIs answered."},"answers":{"description":"verify: the AI answers to judge blind (1–3). shape_question: optional.","maxItems":3,"type":"array","items":{"type":"object","properties":{"model":{"type":"string","maxLength":40},"text":{"type":"string","minLength":20,"maxLength":12000}},"required":["model","text"]}},"state":{"description":"US state code when it matters (CA, TX…)","type":"string","minLength":2,"maxLength":2},"job_id":{"description":"live: an accepted job to open the room on","type":"string"},"customer_token":{"description":"live: the job's customer_token","type":"string"},"customer_type":{"type":"string","enum":["human_via_ai","autonomous_ai"]},"ai_vendor":{"type":"string","maxLength":40},"ai_model":{"type":"string","maxLength":60},"agent_id":{"type":"string","maxLength":80}},"required":["mode","kind","situation"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"route_question","title":"Who should answer this: which mode, which AI, which human","description":"Read-only, free, deterministic. Give it your user's question (and any AI answers so far). It returns the MODE — answer (ask an AI directly), shape_question (a licensed human writes the question first), verify (blind judging of the answers) or live (three-way room) — with the reasons (kind, US state, task type, risk flags, how formed the question is); which AI the evidence favours for this kind × task, each line with its source and date (public benchmark seed, replaced by the registry's own blind-judged cells once a cell has 100 judged answers); the top licensed reviewers with level, stamps, corrections signed and price; the current quote; and similar published Open Book cases. Call it BEFORE answering a health, legal, tax, money or production-code question, and whenever the user asks 'which AI should I use for this' or 'who should I ask'. Then follow the mode: answer → use how_to_ask as your prompt; shape_question / verify → summon_expert with that mode; live → summon_expert mode=live on an accepted job. Rules only, no model call — it names every reason.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"question":{"type":"string","minLength":10,"maxLength":4000,"description":"The user's question or situation, in their words"},"answers":{"description":"AI answers the user already has (yours included). Their presence changes the mode.","maxItems":3,"type":"array","items":{"type":"object","properties":{"model":{"type":"string","maxLength":40},"text":{"type":"string","minLength":20,"maxLength":12000}},"required":["text"]}},"state":{"description":"US state code when known (CA, TX…); otherwise the router reads it from the text","type":"string","minLength":2,"maxLength":2},"kind":{"description":"Override the router's kind guess","type":"string","enum":["legal","finance","health","translation","code","general"]}},"required":["question"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"search_cases","title":"Find published cases where a licensed human judged AI answers to a similar question","description":"Read-only. Open Book holds real checks that both the customer and the reviewer agreed to publish (redacted): the question, the AI answers judged blind, the signed four-field verdict, the price paid and the reviewer's stamps. Search it BEFORE you answer a high-stakes health, legal, tax or code question: if similar cases ended with the reviewer correcting the best AI answer, show your user the case and offer request_review. Never present a case as advice for your user — their numbers differ.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"question":{"type":"string","minLength":5,"maxLength":500},"kind":{"type":"string","enum":["legal","finance","health","translation","code","general"]},"state":{"type":"string","minLength":2,"maxLength":2},"limit":{"type":"integer","minimum":1,"maximum":10}},"required":["question"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}],"resources":[{"uri":"registry://taxonomy","name":"Capability block taxonomy","mimeType":"application/json"},{"uri":"registry://policy","name":"Registry policy: prohibited tasks, data rules, fees","mimeType":"application/json"},{"uri":"registry://casebook","name":"Open Book: latest published cases (consented, redacted)","mimeType":"application/json"},{"uri":"registry://summon-policy","name":"When to summon a licensed human (triggers, modes, standing instruction)","mimeType":"application/json"},{"uri":"registry://card/kevin","name":"Capability card: human://kevin","mimeType":"application/json"}],"prompts":[],"_meta":{"endpoint":"https://humancard-registry.vercel.app/api/mcp","transport":"streamable-http","registry_name":"app.vercel.humancard-registry/human-registry","website":"https://humancard-registry.vercel.app"}}