GetABrain🧠| Live Human-in-the-Loop MCP for AI Agents
The GetABrain MCP server gives AI agents real-time access to human judgment through 7 tools, enabling human-in-the-loop (HITL) workflows for tasks requiring subjective evaluation, content moderation, user studies, or any decision best made by a person.
get_balance– Check your prepaid balance (in cents), account mode (test/live), and auto-reload status.create_topup_link– Generate a Stripe Checkout URL to add funds (min $5); a human must open the link to complete payment.submit_query– Submit structured questions to real human workers across 16 formats (A/B test, yes/no, rating, ranking, sentiment analysis, image/video/audio review, voice/video/photo capture, etc.), with configurable bid amount, worker quality, and required response count. Returns aquery_idimmediately.get_responses– Fetch a query's current status and any responses submitted so far without waiting.wait_for_responses– Poll for responses for up to 50 seconds, returningreadywhen enough answers arrive orpendingif more time is needed.list_queries– List recent queries with optional status filtering (active, completed, failed) to track progress or recover query IDs.rate_response– Rate a worker's response 1–5 with optional feedback, improving future worker quality matching.
Test mode: Use a test-mode API key to simulate the full pipeline for free — no real workers, no charges, responses marked simulated: true.
Flexible deployment: Run locally via npx or use the hosted remote server at https://www.getabrain.ai/api/mcp with no local install required.
Allows creating a Stripe Checkout URL to add funds to the account via a human-completed payment.
@getabrain/mcp-server
MCP server for GetABrain.ai — give your AI agent real human judgment as native tools.
Use with Claude Desktop / Cursor
Add to your MCP client config (e.g. claude_desktop_config.json):
{
"mcpServers": {
"getabrain": {
"command": "npx",
"args": ["-y", "@getabrain/mcp-server"],
"env": {
"GETABRAIN_API_KEY": "gab_k_…",
"GETABRAIN_API_SECRET": "gab_s_…"
}
}
}
}Get your API key by signing up at https://getabrain.ai.
Related MCP server: Apify MCP Server
Remote (hosted) MCP server -- no install
Prefer not to run anything locally? GetABrain also hosts this same server over Streamable HTTP at
https://www.getabrain.ai/api/mcp. Point any MCP client that supports remote servers at that URL and
pass your key pair as headers instead of env vars:
{
"mcpServers": {
"getabrain": {
"url": "https://www.getabrain.ai/api/mcp",
"headers": {
"X-API-Key": "gab_k_…",
"X-API-Secret": "gab_s_…"
}
}
}
}Same 7 tools, same schemas, same test-mode support -- see docs/deploy/remote-mcp.md in this repo for
details (Smithery-style clients, auth requirements, etc).
Test mode
Test mode is a flag on the key, not a different key format. When you mint an API key — via
POST /api/v1/requestor/keys with {"mode":"test"}, or by choosing "test" in the dashboard — you get
back a completely normal gab_k_… / gab_s_… key pair. There's no _test_ in the string; the
test-ness lives in the database as an is_test flag on that key. No funding or card required.
Point GETABRAIN_API_KEY / GETABRAIN_API_SECRET at a test-mode key and the server behaves identically, except:
submit_querynever touches your balance — no charge, noinsufficient_balanceerrors.Responses come back synthetic and are always marked
simulated: true, so your pipeline (submit → wait/poll → rate) can be built and exercised end-to-end before any real human worker or real money is involved.get_balancereportsmode: "test"so the agent/human can tell at a glance which environment it's in.
When you're ready to go live: mint a live-mode key (same call, {"mode":"live"} or the dashboard
default), fund the account with create_topup_link (works with either key type — a test-mode agent can
generate the link, a human completes checkout to add real funds), and swap the env vars. get_balance
then reports mode: "live", and submit_query starts spending real balance and dispatching to real paid
workers.
Tools
get_balance— read-only: prepaid balance (cents),mode("test"/"live"), andauto_reload_enabled(with a setup link + hint when it's off and would otherwise stall a live account at zero balance).create_topup_link— mints a Stripe Checkout URL to add funds (min $5); a human opens it in a browser to pay — the agent cannot complete payment itself.submit_query— ask real humans a question (16 query types: A/B test, rating, ranking, sentiment, yes/no, image/video/audio review, voice/video/photo capture, …). Returns aquery_id. Spends balance on a live key; free andsimulated: trueon a test key.get_responses— one-shot, read-only: current status + whatever responses exist right now, no waiting.wait_for_responses— bounded polling (up tomax_wait_seconds, default/max 50s); returnsreadywith responses once enough arrive, orpending— call again to keep waiting. Use this instead ofget_responseswhen you want the tool call itself to wait.list_queries— read-only: your recent queries, optionally filtered bystatus.rate_response— rate a worker's answer 1–5 (optionalfeedback_text); feeds the worker quality system.
Example agent flow
get_balance→ confirm funds (ormode: "test"for a free sandbox run).If funds are short on a live key:
create_topup_link→ human completes checkout →get_balanceagain.submit_query→ getquery_id.wait_for_responses(repeat whilepending) → read the human (or simulated, in test mode) answers.rate_response→ optionally rate each response to improve future worker matching.
Full API docs: https://getabrain.ai/docs/api
Available Tools
7 toolscreate_topup_linkA
Generate a one-time Stripe Checkout URL for adding funds to the prepaid balance. Use when get_balance shows insufficient funds for an upcoming submit_query, or a human asks to add money. Side effect: creates a pending Stripe session (no charge yet); the returned checkout_url must be OPENED IN A BROWSER BY A HUMAN to enter payment details and complete the charge -- the agent cannot complete payment itself; this is an out-of-band, human-in-the-loop step. Works with a test-mode or live-mode key (funding a test-mode account is how you move a sandbox integration to real spending power). Balance updates only after checkout completes; poll get_balance to confirm. Disambiguation: only mints a payment link -- never moves money or blocks waiting for payment itself.
Inputs: amount_cents (required). Returns: checkout_url
get_balanceARead-only
Check the prepaid balance (in cents) available to fund submit_query calls, plus account mode. Call before submit_query if unsure funds suffice, or whenever a query fails/stalls for balance reasons. Read-only, no side effects, free in test and live mode. Response includes mode ("test" = sandbox key, free simulated responses; "live" = real key, real spend), and when relevant whether auto_reload is on, plus an auto_reload_setup_url + hint to enable it so a live account does not stall at zero balance. Disambiguation: reports funds available to spend; does not list queries (list_queries) or responses (get_responses/wait_for_responses).
Inputs: no named parameters. Returns: hint, mode, company_name, balance_cents, +2 more
get_responsesARead-only
One-shot read: fetch a query's current status and whatever human responses have been submitted so far, without waiting. Use this to check progress on demand, or after wait_for_responses reports "pending" if you want an immediate snapshot instead of polling again. Read-only, no cost, returns instantly (does not block or retry). Disambiguation: unlike wait_for_responses, this never delays or blocks waiting for more answers to arrive -- it just reports what exists right now, which may be fewer than required_responses.
Inputs: query_id (required). Returns: status, responses, required_responses, completed_responses
list_queriesARead-only
List your recent GetABrain queries, most recent first. Use this to get an overview of past/active queries, recover a query_id you lost track of, or filter by status (e.g. find everything still "active" or "pending"). Read-only, no cost. Disambiguation: this lists MANY queries at a summary level; it does not return the individual worker responses for any one query -- use get_responses or wait_for_responses with a specific query_id for that.
Inputs: limit, status. Returns: limit, total, offset, queries, +1 more
rate_responseA
Rate a single worker's response 1-5 to feed the worker quality/reputation system, optionally with free-text feedback. Use after reviewing a response from get_responses/wait_for_responses, to reward good answers and flag poor ones -- this affects the worker's quality score and future eligibility (e.g. queries with min_worker_quality set) and can trigger rewards/suspension server-side. Side effect: writes a rating record and returns the updated worker quality score; does not resubmit or modify the original response. Disambiguation: rates a response you already have -- does not fetch new responses (use get_responses/wait_for_responses first).
Inputs: score (required), query_id (required), response_id (required), feedback_text. Returns: message, success, worker_quality_score
submit_queryA
Submit a structured question to real human workers, returning a query_id -- the entry point for any human-in-the-loop (HITL) step: judgment calls, subjective evaluation, approval/review, or "ask a real person" tasks a model should not answer itself. "type" selects the question format (one of: text, multiple_choice, rating_scale, image_comparison, ranking, yes_no, sentiment, image_selection, free_form_text, video_review, audio_review, image_analysis, ab_test, voice_capture, video_capture, photo_capture); "content_data" is the matching type-specific payload (e.g. ab_test: {question, variant_a:{description}, variant_b:{description}}; yes_no: {question}; rating_scale: {question, scale_type, scale_min, scale_max}). Cost/side effects: with a LIVE key this deducts (bid_amount_cents + bonus_amount_cents) * required_responses from balance immediately and dispatches to paid workers (fails if balance too low -- check get_balance or use create_topup_link). With a TEST key, no balance is touched and responses are synthetic, marked simulated: true, so you can build/test a full pipeline for free before going live. Returns immediately, does not wait -- use get_responses (one-shot) or wait_for_responses (bounded polling) to retrieve answers.
Inputs: type (required), title (required), content_data (required), bid_amount_cents (required), +4 more. Returns: id, status, query_id, simulated, +2 more
wait_for_responsesARead-only
Poll for human responses to a query, blocking for up to max_wait_seconds (default 50, max 50) before returning. Use right after submit_query to wait for real answers in one call instead of manually re-checking with get_responses. DOES NOT GUARANTEE COMPLETION -- if min_responses have not arrived within the time budget it returns status "pending" (with a hint to call again) rather than erroring; call again to keep waiting. Returns status "ready" with the responses array once enough have arrived (or the query otherwise completed). Read-only / free -- cost was already charged by submit_query. Disambiguation: unlike get_responses (instant, one-shot, may return 0 responses), this actively waits, trading time for a higher chance of a complete result.
Inputs: query_id (required), min_responses, max_wait_seconds. Returns: hint, status, responses, required_responses, +1 more
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 7 tools
Each tool has a clear, distinct purpose: topup link generation, balance checking, response retrieval (one-shot vs. waiting), query listing, response rating, and query submission. The descriptions explicitly differentiate overlapping tools like get_responses and wait_for_responses.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_topup_link, get_balance, list_queries). The verbs are descriptive and the naming convention is uniform.
With 7 tools, the server covers the essential operations for a human-in-the-loop system: balance management, query lifecycle (submit, wait, check), listing, and rating. The count feels well-scoped without unnecessary bloat or gaps.
The tool set covers the core workflow (submit, wait, get, rate, fund). However, there are minor gaps: no tool to cancel or delete a query, and no ability to manage balance history or refunds. These are not critical but slightly reduce completeness.
Maintenance
Related MCP Connectors
Human-as-a-Service for AI agents. Delegate tasks that need a real human, get results via API.
Human judgment for AI agents: discover capabilities, get quotes, and track paid human tasks.
Human-in-the-loop API for AI agents. CAPTCHA, OTP, KYC, and approvals by real humans.
Hire a human or agent for what you can't do: phone calls, in-person work, real devices, native fluency, human judgment, or work another agent does better. Permanent public record. Real money via Stripe, paid on completion. Read the entire market with no account and no key.
Related MCP Servers
AlicenseNot gradedqualityCmaintenanceEnables AI agents to retrieve live public data from 70+ platforms — profiles, posts, comments, transcripts, products, prices, reviews, listings, jobs, ads and search results — plus website crawls and live browser sessions through 650+ endpoints in one response format. Includes free cost previews, per-call credit caps, safe retries, refunded failures and scheduled monitoring.16 npm13MIT- AlicenseAqualityBmaintenanceEnables AI agents and assistants to extract data from social media, search engines, maps, e-commerce sites, and any other website by running thousands of ready-made scrapers, crawlers, and automation tools as callable tools, with OAuth-based connection and optional agentic payments.1135,985 npm2MIT

insightsocialofficial
AlicenseNot gradedqualityBmaintenanceEnables AI agents to search, describe and call 239 social data endpoints across Instagram, TikTok, LinkedIn, Facebook, YouTube, X, Reddit, Threads and Pinterest through a single API key, covering profiles, posts, comments, followers, hashtags, ads and transcripts with one unified schema. Full responses are saved server-side and can be re-sliced for free with jq, fields or size outlines, so agents pull only the data they need into context.125 npmMIT- AlicenseNot gradedqualityBmaintenanceEnables AI agents to validate AI infrastructure claims, check endpoint availability, solve CAPTCHA challenges, convert web pages to Markdown, search the web, extract structured JSON, and fetch bot-protected HTML through native tool calls.MIT