MCP Server

Hunch

app.hunchsheet/hunch
AI & Agents Data & Analytics Auth required MCP 2025-11-25

What this MCP does

Classifies batches of text with yes/no probabilities, category selection, or ordered scores, and reports credit usage.

hunch_ask
Hunch: yes/no probability
Judge a batch of short texts against one yes/no question and get back a calibrated probability (0 to 1) per text, not generated prose. Use it to score, tag, filter or triage many leads, support tickets, reviews, survey answers or emails at once, for example "Is this lead a decision maker?" or "Is this email urgent?". Costs 1 credit per answered text (blank texts and texts repeated elsewhere in the same call are free; answers are cached 6 hours). Limits: the model reads the text only, no math, counting or dates; English works best; put the full definition of what counts as yes inside the question, since the model sees nothing else.
Idempotent
Input schema
{'type': 'object', 'required': ['texts', 'question'], 'properties': {'texts': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 500, 'minItems': 1, 'description': 'Short texts to judge (leads, tickets, reviews, survey answers, emails, ...), one answer per text. Blank entries and texts repeated elsewhere in the same call cost nothing. Chunked internally into calls of 40.'}, 'question': {'type': 'string', 'minLength': 1, 'description': 'A yes/no question, e.g. "Is this lead a decision maker who can approve a purchase without asking someone else?". Put the full definition of yes/no in the question text.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['results', 'charged', 'credits'], 'properties': {'charged': {'type': 'integer', 'description': 'Credits spent on this call.'}, 'credits': {'type': 'integer', 'description': 'Credits left on the key after this call.'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['text', 'probability', 'error'], 'properties': {'text': {'type': 'string'}, 'error': {'type': ['string', 'null'], 'description': 'Set when this text was not answered (e.g. "out_of_credits"); the value fields are null in that case.'}, 'probability': {'type': ['number', 'null'], 'description': '0 to 1: probability the answer to the question is yes.'}}}}}}
hunch_balance
Hunch: check credits
Check how many Hunch credits are left on this key and how many have been used so far. Read-only, costs nothing. Call it before a large batch, or when a judging tool reports texts were skipped for lack of credits.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['credits', 'used'], 'properties': {'used': {'type': 'integer', 'description': 'Credits used on this key so far, lifetime.'}, 'credits': {'type': 'integer', 'description': 'Credits left on the key.'}}}
hunch_multi
Hunch: several yes/no questions at once
Ask up to 10 yes/no questions about the same batch of texts in one call, one probability per question per text, not generated prose. Use it when several judgments read the same text at once, for example "Can they buy?", "Are they angry?", "Is it urgent?" on the same support ticket, for a fraction of the tokens of separate calls. Costs 1 credit per answered question per text (blanks and duplicate texts are free). Limits: the model reads the text only, no math, counting or dates, English works best, and each question needs its own definition of yes inside it.
Idempotent
Input schema
{'type': 'object', 'required': ['texts', 'questions'], 'properties': {'texts': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 500, 'minItems': 1, 'description': 'Short texts to judge (leads, tickets, reviews, survey answers, emails, ...), one answer per text. Blank entries and texts repeated elsewhere in the same call cost nothing. Chunked internally into calls of 40.'}, 'questions': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 10, 'minItems': 1, 'description': 'Up to 10 yes/no questions, each answered once per text, e.g. ["Can they buy?", "Are they angry?", "Is it urgent?"].'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['results', 'charged', 'credits'], 'properties': {'charged': {'type': 'integer'}, 'credits': {'type': 'integer'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['text', 'probabilities', 'error'], 'properties': {'text': {'type': 'string'}, 'error': {'type': ['string', 'null'], 'description': 'Set when this text was not answered (e.g. "out_of_credits"); the value fields are null in that case.'}, 'probabilities': {'type': ['array', 'null'], 'items': {'type': 'number'}, 'description': 'One probability per question, in the same order as the questions argument.'}}}}}}
hunch_pick
Hunch: pick one option
Sort a batch of short texts into one of your own categories and get back the chosen option plus how confident the model is, not generated prose. Use it to route support tickets, classify feedback, or tag leads by type, for example options ["billing: invoices and charges", "refund", "bug", "other"]. Costs 1 credit per answered text (blanks and duplicates in the same call are free). Limits: 2 to 255 options, each "label" or "label: description" to disambiguate a short label; the model reads the text only, no math, counting or dates, English works best.
Idempotent
Input schema
{'type': 'object', 'required': ['texts', 'options'], 'properties': {'texts': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 500, 'minItems': 1, 'description': 'Short texts to judge (leads, tickets, reviews, survey answers, emails, ...), one answer per text. Blank entries and texts repeated elsewhere in the same call cost nothing. Chunked internally into calls of 40.'}, 'options': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 255, 'minItems': 2, 'description': 'The options to choose from, 2 to 255 of them. Each is "label" or "label: description" when the label alone is ambiguous, e.g. "billing: invoices and charges".'}, 'question': {'type': 'string', 'description': 'Optional. What is being decided, e.g. "Which category does this ticket belong to?". Defaults to "Which option best describes this text?".'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['results', 'charged', 'credits'], 'properties': {'charged': {'type': 'integer'}, 'credits': {'type': 'integer'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['text', 'option', 'confidence', 'error'], 'properties': {'text': {'type': 'string'}, 'error': {'type': ['string', 'null'], 'description': 'Set when this text was not answered (e.g. "out_of_credits"); the value fields are null in that case.'}, 'option': {'type': ['string', 'null'], 'description': "The chosen option's label."}, 'confidence': {'type': ['number', 'null'], 'description': '0 to 1: confidence in the chosen option.'}}}}}}
hunch_score
Hunch: score on a scale
Place a batch of short texts on your own ordered scale (2 to 10 levels, low to high) and get back a probability-weighted position, the most likely level, and confidence, not generated prose. Use it for sentiment ("angry|disappointed|neutral|happy|delighted"), fit scoring ("no fit|weak|good|perfect"), or any low-to-high rating. Costs 1 credit per answered text (blanks and duplicates in the same call are free). Limits: the model reads the text only, no math, counting or dates, English works best, and the question should say what is being scored.
Idempotent
Input schema
{'type': 'object', 'required': ['texts', 'question', 'levels'], 'properties': {'texts': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 500, 'minItems': 1, 'description': 'Short texts to judge (leads, tickets, reviews, survey answers, emails, ...), one answer per text. Blank entries and texts repeated elsewhere in the same call cost nothing. Chunked internally into calls of 40.'}, 'levels': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 10, 'minItems': 2, 'description': 'The scale, low to high, 2 to 10 levels, e.g. ["angry", "disappointed", "neutral", "happy", "delighted"]. Each may be "label: description".'}, 'question': {'type': 'string', 'minLength': 1, 'description': 'What is being scored, e.g. "How does the reviewer feel about the product overall?".'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['results', 'charged', 'credits'], 'properties': {'charged': {'type': 'integer'}, 'credits': {'type': 'integer'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['text', 'score', 'index', 'label', 'confidence', 'error'], 'properties': {'text': {'type': 'string'}, 'error': {'type': ['string', 'null'], 'description': 'Set when this text was not answered (e.g. "out_of_credits"); the value fields are null in that case.'}, 'index': {'type': ['integer', 'null'], 'description': 'Index of the single most likely level.'}, 'label': {'type': ['string', 'null'], 'description': "The most likely level's label."}, 'score': {'type': ['number', 'null'], 'description': 'Probability-weighted position, 0 to levels.length - 1.'}, 'confidence': {'type': ['number', 'null']}}}}}}
Added
hunch_balance
Sept. 29, 2026, 2:40 a.m.
Added
hunch_multi
Sept. 29, 2026, 2:40 a.m.
Added
hunch_score
Sept. 29, 2026, 2:40 a.m.
Added
hunch_pick
Sept. 29, 2026, 2:40 a.m.
Added
hunch_ask
Sept. 29, 2026, 2:40 a.m.