humanfn · Human Functions for AI agents
The human step, as a function call.
When your AI reaches the part software shouldn't finish (a professional sign-off, or someone physically there), it calls a Human Function: a packaged outcome from a qualified person, with a fixed scope and price. Not a marketplace, not a hire. You decide.
Professional sign-off · early access
Attorney review of your SaaS Terms & Privacy Policy — $499
Your assistant drafted the legal pages; a licensed attorney reviews both before launch and returns material issues, recommended revisions and answers to 3 questions. Early access: accepting charges nothing, and the review isn't guaranteed yet.
Hands in the real world
A local person at an address, with proof
Check, photograph, measure, verify, wait for or pick up something, anywhere in the Phoenix metro and best effort elsewhere in the US. Fixed quote first; you pay only when you approve it.
Different from hiring someone
An outcome, not a hire
No profiles to browse, no interviews, no hourly billing. You get one defined deliverable from a qualified human.
Fixed scope and price
Every Human Function states what's covered, what isn't, the price and the target turnaround before you decide.
Your agent prepares it
Your AI assistant already knows the context. It assembles the brief, so the human's time goes to judgment.
How on-site tasks work
01
Request
Describe what needs to happen, where, and by when — on the web or through your AI agent.
02
Quote
A person reviews it and sends a fixed price, deadline, and the exact proof you'll get.
03
Pay
Approve and pay securely with Stripe. Nothing is charged before you approve.
04
Proof
A local person does it. You get photos, readings and answers, reviewed before delivery.
On site: what people send us to do
Check a place
Is the store open? Is the unit vacant? Is the sign up? Photos and a straight answer.
Document equipment
Photograph nameplates and record make, model and serial numbers.
Measure
Doorways, rooms, spaces — measured and photographed.
Verify work
Did the contractor finish? Photos of the result, before you pay them.
Wait for someone
Be there for a delivery, a technician or a key handoff.
Pick up & drop off
Low-risk items and documents across the Valley.
The Phoenix, Arizona metro area is fully supported. Other US locations are best effort: we try to find a local person, and if we can't, we decline the request and nothing is charged. Requests outside the US are declined. We don't take: anything illegal, weapons, drugs or prescriptions, medical or caregiving tasks, childcare, work requiring a professional license, dangerous work, major construction, or custody of high-value items.
For AI agents
Give your agent qualified humans: professional sign-off, hands in the real world.
HumanFn is a remote MCP server. When your agent reaches a step that needs a person — on site, or a qualified professional — it gets a bounded outcome with a fixed scope and price. The human always decides whether to buy.
# MCP endpoint (Streamable HTTP, no sign-up needed)
https://humanfn.com/mcp
Connect
- Claude: Settings → Connectors → Add custom connector → paste the URL.
- ChatGPT: Settings → Apps → Developer mode → add an MCP server with the URL.
- Claude Code:
claude mcp add --transport http humanfn https://humanfn.com/mcp - Cursor / VS Code: add it as a remote (HTTP) MCP server.
Tools
check_saas_legal_review— Read-only: is attorney review of SaaS Terms & Privacy Policy due? Returns the fixed-price offer (early access).accept_human_function_offer— Record the user's explicit acceptance of an offer at its exact price (or they click the offer card).find_human_function— Describe a step that needs a qualified human; get a matching Human Function.request_execution— Ask for a physical task; returns request_id + access_token.get_request— Status (`phase`), the quote, and the result with photos.answer_clarification— Answer a question from the reviewer.confirm_execution— Accept the quote; returns a link the human opens to pay.cancel_execution— Withdraw, or request cancellation after payment.
Jobs take hours or days, so tools return immediately; poll get_request and respect next_poll_after_seconds. Treat unknown phase values as pending.