Skip to main content
Glama
GetABrain🧠 | Live Human-in-the-Loop MCP for AI Agents

GetABrain🧠 | Live Human-in-the-Loop MCP for AI Agents

@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_query never touches your balance — no charge, no insufficient_balance errors.

  • 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_balance reports mode: "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"), and auto_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 a query_id. Spends balance on a live key; free and simulated: true on a test key.

  • get_responses — one-shot, read-only: current status + whatever responses exist right now, no waiting.

  • wait_for_responses — bounded polling (up to max_wait_seconds, default/max 50s); returns ready with responses once enough arrive, or pending — call again to keep waiting. Use this instead of get_responses when you want the tool call itself to wait.

  • list_queries — read-only: your recent queries, optionally filtered by status.

  • rate_response — rate a worker's answer 1–5 (optional feedback_text); feeds the worker quality system.

Example agent flow

  1. get_balance → confirm funds (or mode: "test" for a free sandbox run).

  2. If funds are short on a live key: create_topup_link → human completes checkout → get_balance again.

  3. submit_query → get query_id.

  4. wait_for_responses (repeat while pending) → read the human (or simulated, in test mode) answers.

  5. rate_response → optionally rate each response to improve future worker matching.

Full API docs: https://getabrain.ai/docs/api

Available Tools

7 tools
get_balanceA
Read-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_responsesA
Read-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_queriesA
Read-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_responsesA
Read-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

    A4.6/5.0

    Scored across 7 tools

    Disambiguation5/5

    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.

    Naming Consistency5/5

    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.

    Tool Count5/5

    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.

    Completeness4/5

    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

    ActivityStale
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables 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 npm
      13
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Enables 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.
      11
      35,985 npm
      2
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables 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 npm
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables 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