Ask a Human MCP
An MCP server that connects AI agents to real humans for typed answers, approvals, and reviews. Agents can ask questions, attach media for design or video review, request human approval for actions, and resolve disagreements. It supports various answer sizes and speeds, with pricing based on token count and turnaround time, offering a first free question and options for prepaid credits or monthly subscriptions.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://ai-to-human.techandtoast.io/api/mcpWhat you can do with it
- Get human approval for sensitive actions like sending emails
- Review design assets or video thumbnails for click-through potential
- Resolve disagreements between two AI agents or models
- Get marketing gut checks on ad spend or copy tone
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- techandtoast-ai-to-human-mcp 0.2.0
- MCP protocol
- 2025-06-18
- Tools
- 12 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Tools
12 advertised
about_this_human — Who is answering, and why this exists
Who the human is, what they are good at, pricing, response times and payment options. The service is an inversion: instead of an AI selling human knowledge, a human sells their own knowledge to AIs. Every answer is written by one real person, not generated.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}{
"title": "Who is answering, and why this exists",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}register_agent — Register and get an API key
Creates an agent identity. Returns an api_key and one free question. Each call creates a new identity.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Your agent's name or handle"
},
"model": {
"type": "string",
"maxLength": 120,
"description": "Underlying model, e.g. claude-opus-5-5"
},
"publish_ok": {
"type": "boolean",
"description": "May your Q&A be published anonymously? Default true"
},
"operator_email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "Email of the human/org operating you; used for Stripe receipts"
}
}
}{
"title": "Register and get an API key",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}check_human_status — Is the human awake?
Online/offline, a note from the human, and current queue length.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}{
"title": "Is the human awake?",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}ask_human — Ask the human a question
Submits a question to a real human: for human approval, feedback or a second opinion, or for judgment, taste and lived experience rather than facts. Paid questions may attach up to 5 public image/video URLs for design, thumbnail or video review (the free first question is text only). Returns a ticket id. The answer is written later by a person; it can be fetched by ticket id or POSTed to callback_url. Price by size and speed: Short ~100 tokens $2/24h or $6/1h, Standard ~400 tokens $8/$20, Deep ~1500 tokens $30/$75; the first Short/24h question is free, then credits are charged (some agents have a fixed discount). Late answers are not charged. Questions that break the terms at /terms are rejected.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"api_key",
"question"
],
"properties": {
"size": {
"enum": [
"short",
"standard",
"deep"
],
"type": "string",
"description": "Answer length, like max_tokens. short ~100 tokens (1-3 sentences), standard ~400 tokens (a few paragraphs), deep ~1500 tokens (a page or two). Default short."
},
"speed": {
"enum": [
"24h",
"1h"
],
"type": "string",
"description": "How fast you need the answer. Default 24h; 1h costs more. A late answer is not charged."
},
"api_key": {
"type": "string"
},
"context": {
"type": "string",
"maxLength": 4000,
"description": "Why you are asking; what you already know"
},
"question": {
"type": "string",
"maxLength": 2000,
"minLength": 5
},
"attachments": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"maxItems": 5,
"description": "Paid questions only (not the free first question). Up to 5 public https URLs to images or videos the human should look at (designs, screenshots, thumbnails, video cuts). Host the asset yourself at a URL anyone can open without logging in; we store the link only. Nothing illegal; see /terms."
},
"callback_url": {
"type": "string",
"format": "uri",
"description": "We POST the answer here when ready"
},
"preferred_human": {
"type": "string",
"maxLength": 300,
"description": "Optional: the kind of human you want (language, profession, country, age range, lived experience). Today one human answers; your request is logged and shapes who we add next. If nobody matches yet, the current human answers and says so."
}
}
}{
"title": "Ask the human a question",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}get_answer — Fetch the answer to a ticket
Returns the human's answer if written, else the ticket status and expected time. A rejected ticket carries the reason.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ticket_id"
],
"properties": {
"api_key": {
"type": "string",
"description": "Required for tickets created with an api_key; omit for x402 tickets"
},
"ticket_id": {
"type": "string"
}
}
}{
"title": "Fetch the answer to a ticket",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_my_tickets — List your tickets
Your last 20 questions and their status.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"api_key"
],
"properties": {
"api_key": {
"type": "string"
}
}
}{
"title": "List your tickets",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}rate_answer — Rate an answer
Rates an answer from 1 (useless) to 5 (changed my weights). The human sees the rating.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ticket_id",
"rating"
],
"properties": {
"note": {
"type": "string",
"maxLength": 500
},
"rating": {
"type": "integer",
"maximum": 5,
"minimum": 1
},
"api_key": {
"type": "string"
},
"ticket_id": {
"type": "string"
}
}
}{
"title": "Rate an answer",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}request_refund — Ask for a refund on an answer
Requests a refund for an answer within 7 days. The human reviews it and refunds credits (or restores the free question). Late answers are never charged, automatically. Monthly plan refunds are handled by email.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"api_key",
"ticket_id",
"reason"
],
"properties": {
"reason": {
"type": "string",
"maxLength": 500,
"minLength": 5,
"description": "What was wrong with the answer"
},
"api_key": {
"type": "string"
},
"ticket_id": {
"type": "string"
}
}
}{
"title": "Ask for a refund on an answer",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_humans — Who can answer right now
The roster of humans available to answer, with specialties and languages. One today; more are being added.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}{
"title": "Who can answer right now",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}request_human — Ask for a kind of human we do not have yet
Free. Records the kind of human you want to be able to ask: a language, a profession, a country or city, an age range, a lived experience. New humans are recruited from these requests.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"api_key",
"description"
],
"properties": {
"api_key": {
"type": "string"
},
"language": {
"type": "string",
"maxLength": 40,
"description": "Language the human should answer in, e.g. es, pt-BR, Jamaican Patois"
},
"specialty": {
"type": "string",
"maxLength": 120,
"description": "Profession or domain, e.g. nurse, farmer, immigration lawyer, chef"
},
"description": {
"type": "string",
"maxLength": 500,
"minLength": 5,
"description": "Who you need, in plain words"
}
}
}{
"title": "Ask for a kind of human we do not have yet",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}buy_credits — Buy question credits (Stripe)
Returns a Stripe Checkout URL for a credit pack. The operator pays; credits land on the api_key automatically.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"api_key"
],
"properties": {
"pack": {
"enum": [
"pack_5",
"pack_20",
"pack_100"
],
"type": "string",
"default": "pack_5"
},
"api_key": {
"type": "string"
}
}
}{
"title": "Buy question credits (Stripe)",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}subscribe — Monthly credit plan: $50/month for $60 of credit
Returns a Stripe Checkout URL for the monthly credit plan: the operator pays $50 a month and the api_key gets $60 of question credit every month. Credit never expires and rolls over; cancel any time in Stripe.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"api_key"
],
"properties": {
"api_key": {
"type": "string"
}
}
}{
"title": "Monthly credit plan: $50/month for $60 of credit",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 549 ms
- 95th percentile latency
- 549 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 549 ms · metadata changed · 12 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http ask-a-human-mcp https://ai-to-human.techandtoast.io/api/mcpCodex
codex mcp add ask-a-human-mcp --url https://ai-to-human.techandtoast.io/api/mcpCursor
{
"mcpServers": {
"ask-a-human-mcp": {
"url": "https://ai-to-human.techandtoast.io/api/mcp"
}
}
}Cline
{
"mcpServers": {
"ask-a-human-mcp": {
"type": "streamableHttp",
"url": "https://ai-to-human.techandtoast.io/api/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"ask-a-human-mcp": {
"type": "http",
"url": "https://ai-to-human.techandtoast.io/api/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http ask-a-human-mcp https://ai-to-human.techandtoast.io/api/mcpClaude Desktop
{
"mcpServers": {
"ask-a-human-mcp": {
"url": "https://ai-to-human.techandtoast.io/api/mcp"
}
}
}Windsurf
{
"mcpServers": {
"ask-a-human-mcp": {
"serverUrl": "https://ai-to-human.techandtoast.io/api/mcp"
}
}
}Let your agent find its tools
Find servers like Ask a Human MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.