market
One Hekte market answer per call, paid first over Lightning by a hold invoice in the tool result.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"market": {
"url": "https://mcp.hektai.com/mcp"
}
}
}Remote endpoints
https://mcp.hektai.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (3)
🟢hekte_ask(class, contract, max_sat, payment_hash, prompt, ...)
Buy one answer on the Hekte market — PAY FIRST, per call, Lightning. Call it with `prompt` alone: the result is an error with `status: "payment_required"`, a Lightning `invoice` (bolt11) for `amount_sat` (whole sats), a `pay_url` a human can open, an `expires_at`, and `retry_with` (`payment_hash`, `retry_token`). Show the human the `pay_url` (or the invoice) and ask them to pay it; then call this tool AGAIN with the SAME `prompt` and `class` plus the `payment_hash` and `retry_token`. Before the payment arrives the retry answers `payment_not_received`; after it, the question is posted as a paid job, a worker answers, the payment settles ON DELIVERY and the answer comes back with who served it and a `receipt`. If nothing is delivered the hold is cancelled (`hold_cancelled: true`) and nothing is charged. No balance is kept, no account exists: one invoice is one call. Refused by name: `prompt_too_large` (over 16384 bytes), `class_unknown`, `invalid_max_sat`, `proof_unknown`, `proof_expired`, `proof_replayed`, `proof_cancelled`, `retry_token_invalid` (the token is not this invoice's), `request_mismatch` (a retry must repeat the paid prompt), `contract_mismatch` (the `contract` named is not 2, this door's).
Input Schema
{
"type": "object",
"properties": {
"class": {
"default": "chat",
"description": "The task class. Only `chat` exists today.",
"enum": [
"chat"
],
"type": "string"
},
"contract": {
"description": "The hosted contract number this client speaks — every result of this door names it as `contract` and `retry_with` repeats it (today 2). Omit it if unknown; an older number is refused `contract_mismatch` because its retry shape is not this door's.",
"type": "integer"
},
"max_sat": {
"description": "Optional cap on this call's price, whole sats. May only LOWER the door's per-call price; a higher value is lowered to it.",
"minimum": 1,
"type": "integer"
},
"payment_hash": {
"description": "The `retry_with.payment_hash` value from this tool's `payment_required` result, once a human has paid the invoice. Omit it on the first call; always send it together with `retry_token`.",
"pattern": "^[0-9a-f]{64}$",
"type": "string"
},
"prompt": {
"description": "The question, verbatim — it is posted to the market as the job's input. A retry must repeat it exactly.",
"type": "string"
},
"retry_token": {
"description": "The `retry_with.retry_token` value from this tool's `payment_required` result. Omit it on the first call; always send it together with `payment_hash`.",
"pattern": "^[0-9a-f]{64}$",
"type": "string"
}
},
"required": [
"prompt"
],
"additionalProperties": false
}⚪hekte_balance(contract)
The PRICE of the next `hekte_ask` on this pay-first door: `price_sat` (whole sats, Lightning, per call), `invoice_expiry_s` (how long a minted invoice can be paid), `pay_first: true`, and `open` (whether the door can buy on the market right now). No balance exists here — every call is its own invoice.
Input Schema
{
"type": "object",
"properties": {
"contract": {
"description": "The hosted contract number this client speaks — every result of this door names it as `contract` and `retry_with` repeats it (today 2). Omit it if unknown; an older number is refused `contract_mismatch` because its retry shape is not this door's.",
"type": "integer"
}
},
"additionalProperties": false
}⚪hekte_job(contract, job_id, payment_hash, retry_token)
One job's lines from this door's BUYER LEDGER (posted, offers, funding, delivery, settlement — ids, sats, times, codes; never the brief or the output), for a job YOUR payment ran: `job_id` must be the one `hekte_ask` returned for this `payment_hash` + `retry_token`. `found: false` = no line names it.
Input Schema
{
"type": "object",
"properties": {
"contract": {
"description": "The hosted contract number this client speaks — every result of this door names it as `contract` and `retry_with` repeats it (today 2). Omit it if unknown; an older number is refused `contract_mismatch` because its retry shape is not this door's.",
"type": "integer"
},
"job_id": {
"description": "The job id `hekte_ask` returned.",
"type": "string"
},
"payment_hash": {
"description": "The `payment_hash` of the `hekte_ask` that ran this job.",
"pattern": "^[0-9a-f]{64}$",
"type": "string"
},
"retry_token": {
"description": "The `retry_token` of the `hekte_ask` that ran this job.",
"pattern": "^[0-9a-f]{64}$",
"type": "string"
}
},
"required": [
"job_id",
"payment_hash",
"retry_token"
],
"additionalProperties": false
}Community
Evidence