Use 50heads from an AI assistant.
Connect 50heads to a compatible AI assistant so it can ask verified people a question and receive the result. It costs from 20 credits per answer. It works through MCP, the standard that lets an assistant use outside tools, so it runs in Claude, Cursor, ChatGPT and any host that supports MCP.
Add it to your host
Claude
In Claude, open Settings, then Connectors, and add a custom connector with this URL. You'll sign in and set a daily spend cap.
https://mcp.50heads.com/mcpClaude Code
Run this in a terminal. Claude Code opens a browser for you to sign in and set a daily spend cap.
claude mcp add --transport http 50heads https://mcp.50heads.com/mcpCursor
Add this to ~/.cursor/mcp.json, then sign in when Cursor asks.
{
"mcpServers": {
"50heads": {
"url": "https://mcp.50heads.com/mcp"
}
}
}ChatGPT
In ChatGPT, open Settings, then Apps and connectors, then Advanced settings, and turn on Developer mode. Choose Create, paste this URL and pick OAuth.
https://mcp.50heads.com/mcpVS Code
Add this to .vscode/mcp.json in your workspace, or run MCP: Add Server. VS Code opens the sign-in page.
{
"servers": {
"50heads": {
"type": "http",
"url": "https://mcp.50heads.com/mcp"
}
}
}Windsurf
Add this to ~/.codeium/windsurf/mcp_config.json, with an API key from the portal.
{
"mcpServers": {
"50heads": {
"command": "npx",
"args": [
"-y",
"@50heads/mcp"
],
"env": {
"FIFTYHEADS_API_KEY": "fh_live_…"
}
}
}
}Other (npx)
For hosts that launch a local command. Needs Node 20 or later and an API key from the portal.
FIFTYHEADS_API_KEY=fh_live_… npx -y @50heads/mcpWhere to find 50heads
Each of these gives your AI assistant the same tools. Use the one it supports.
- Hosted server
https://mcp.50heads.com/mcpAvailable now. Nothing to install: add the address and sign in.- npm package
npx -y @50heads/mcpAvailable now, for assistants that run a local command. Needs Node 20 or later and an API key.- Official MCP Registry
com.50heads/mcpAvailable now. Assistants and directories that read the registry will find 50heads there.- Directories
- Coming soon to the Claude, ChatGPT and Cursor directories, Smithery, Glama, PulseMCP and mcp.so. Until then, add the hosted server yourself.
The basic flow is three steps
Estimate is free and never spends. Ask reserves the credits. Wait for results: 50heads holds the wait, so your assistant makes one call instead of checking again and again.
> estimate({ action: "quote", question: { type: "single_choice", text: "Which menu would you order from tonight?",
options: [{ label: "Menu A" }, { label: "Menu B" }], n: 50, tier: 1 } })
20 credits × 50 = 1000 credits
> ask({ action: "ask", ...same question, idempotency_key: "4f9c…" })
task q_8k2f · working · 0 of 50 answered
> results({ action: "get", question_id: "q_8k2f" }) # or action "wait" on older hosts
complete · winner "Menu B" · margin 36 points · confidence highAsk for a go or a no go
Set a line on a yes-or-no question, such as Yes above 60%. You get a verdict with a range: go, no go or unclear. The line costs nothing extra.
Available tools
estimate- Price, time and validation for a question. Never spends.
ask- Posts a question. Needs an idempotency key: retrying with the same key cannot create a second question or a second charge.
results- The results so far, single answers, files and your recent questions, so an agent can reuse a result before re-asking. Can wait on our side for the answers.
questions- Stops a live question and refunds the answers not given, adds more answers, flags a poor answer, or files a question.
projects- Projects and labels that keep questions findable.
webhooks- Webhook endpoints, their deliveries and recent events, so a script does not have to keep checking.
organization- Read-only: the organisation, its domains, SCIM, service accounts and the Slack and Zapier connections.
audit- Read-only: the organisation's audit log, listed or exported.
help- Searches the help centre and sends feedback to support.
Controls for unattended use
- Every connection has a daily spend cap, 5,000 credits unless you change it. The server refuses an ask that would go over it.
- Ask needs an idempotency key. Retrying with the same key cannot create a second question or a second charge.
- Questions pass the same content rules as everyone else's. A refused question costs nothing.
- Results never identify a head.
Your data is not training data
We don't use your questions, the answers you buy or the reasons heads write to train AI models, and we don't sell them. AI and your data
Or call the API
Everything the MCP server does is a plain HTTPS call. Keys start fh_live_ and are shown once.
curl https://api.50heads.com/v1/billing/estimate \
-H "Content-Type: application/json" \
-d '{"draft":{"type":"single_choice","text":"Which menu would you order from tonight?",
"options":[{"label":"Menu A"},{"label":"Menu B"}],"n":50,"tier":1}}'
curl https://api.50heads.com/v2/questions \
-H "Authorization: Bearer $FIFTYHEADS_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"draft":{"type":"single_choice","text":"Which menu would you order from tonight?",
"options":[{"label":"Menu A"},{"label":"Menu B"}],"n":50,"tier":1,"language":"en"}}'
curl "https://api.50heads.com/v2/questions/q_8k2f/wait?seconds=25" \
-H "Authorization: Bearer $FIFTYHEADS_API_KEY"Use 50heads from Zapier
No code needed. In Zapier you can ask a question, add heads, cancel, and get results with the go or no-go verdict. Zaps can also start when a question finishes. Zapier connects with OAuth like any other app, with the same scopes and daily cap.