Skip to main content
Glama

Server Details

One Hekte market answer per call, paid first over Lightning by a hold invoice in the tool result.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

TDQS

A4.1/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly separate job: hekte_ask initiates and completes a paid question, hekte_balance quotes the price/availability of the next ask, and hekte_job reads a past job's ledger entries. Despite a shared payment context, there is no real overlap or ambiguity between them.

Naming Consistency4/5

All tool names consistently use the hekte_ prefix and snake_case, and each is short and readable. However, hekte_ask is a verb while hekte_balance and hekte_job are nouns, so the set is not a fully uniform verb_noun pattern, only a minor inconsistency.

Tool Count5/5

Three tools is a well-scoped count for this narrow buyer-side market workflow: check price, ask, and inspect the resulting job. Each tool earns its place and there are no redundant or filler tools.

Completeness4/5

The buyer lifecycle is largely covered: price discovery, pay-first ask with retry/delivery handling, and job ledger lookup. There is no separate cancel or list-jobs tool, but hekte_ask already handles hold cancellation and hekte_job covers status inspection, so the gaps are minor.

Available Tools

3 tools
hekte_askAInspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
classNoThe task class. Only `chat` exists today.chat
promptYesThe question, verbatim — it is posted to the market as the job's input. A retry must repeat it exactly.
max_satNoOptional cap on this call's price, whole sats. May only LOWER the door's per-call price; a higher value is lowered to it.
contractNoThe 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.
retry_tokenNoThe `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`.
payment_hashNoThe `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`.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full transparency burden. It discloses PAY FIRST behavior, the hold-cancellation mechanism, no-balance/no-account policy, exact error statuses, and the settlement-on-delivery model. This is exceptionally transparent for a paid API.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense paragraph, but it is chronologically organized and front-loaded with the core PAY FIRST behavior. Every clause carries protocol or error information, though the length is substantial. It earns its length without being rambling.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a non-trivial two-phase payment flow with no output schema, the description covers the first response, retry conditions, payment confirmation, delivery failure, receipt information, and all refusal names. An agent has everything needed to drive the tool correctly through its lifecycle.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers all parameters with descriptions, so the baseline is 3. The tool description adds valuable relational semantics: retry must repeat the exact prompt, retry_token must accompany payment_hash, contract determines retry shape, and max_sat only lowers the door price. This exceeds the schema's isolated parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Buy one answer on the Hekte market' — a specific verb, resource, and transaction model. This clearly distinguishes the tool from the sibling balance and job tools by describing its unique paid-question role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit two-phase protocol: call with prompt alone, receive an invoice, have a human pay, then retry with the same prompt/class plus payment_hash and retry_token. It also states when retry fields should be omitted and what happens before/after payment, leaving no ambiguity about invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hekte_balanceBInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
contractNoThe 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.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden. It usefully discloses the pay-first model, the absence of a persistent balance, and the open/closed market gate. However, it is ambiguous whether calling this endpoint has side effects such as minting an invoice, and it does not state whether the call is read-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single tight sentence that front-loads the core purpose and packs each return field's meaning into inline code formatting. There is no filler, repetition, or unnecessary background.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter endpoint with no output schema, the description explains the meaning of every return field and the payment model, and the schema fully covers the contract parameter. It would be slightly stronger with an explicit statement on when to call it relative to the sibling tools, but that gap is largely usage guidance rather than missing operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents the only parameter, `contract`, with rich detail including the default behavior, the retry_with relationship, and the contract_mismatch refusal. The description adds nothing about the parameter, so the 100% schema coverage sets the baseline at 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies what the tool returns: the price parameters for the next hekte_ask on a pay-first door, including price_sat, invoice_expiry_s, pay_first, and open. It also directly clarifies that 'balance' is a misnomer — no balance exists. It lacks an explicit verb like 'get' or 'fetch', but the resource and scope are unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use hekte_balance versus its siblings hekte_ask or hekte_job. The phrasing 'PRICE of the next hekte_ask' implies it should be consulted before placing an ask, but this is left to inference rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hekte_jobAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesThe job id `hekte_ask` returned.
contractNoThe 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.
retry_tokenYesThe `retry_token` of the `hekte_ask` that ran this job.
payment_hashYesThe `payment_hash` of the `hekte_ask` that ran this job.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries disclosure responsibility and does a solid job: it states the data scope, explicitly excludes the brief and output, requires caller's own payment, and defines `found:false`. It does not describe all error and edge behavior, hence not 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and all content is relevant, but it is a single long sentence with several parenthetical interruptions, making it slightly harder to scan than a more structured two-sentence version.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, it communicates the broad response content (ledger line categories and `found:false`) and the required inputs. It leaves the exact response shape and error handling implicit, but the main invocation path is adequately described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is satisfied; the description adds the correlation invariant among `job_id`, `payment_hash`, and `retry_token`, and the not-found convention, going beyond simply restating the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource ('this door's BUYER LEDGER') and a precise outcome ('One job's lines'), enumerates what those lines contain, and ties the job to a prior `hekte_ask` result so it cannot be confused with `hekte_ask` or `hekte_balance`.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly states the precondition that the caller must have paid for the job and that `job_id` must come from `hekte_ask` for the same `payment_hash` + `retry_token`. It does not explicitly name an alternative for other needs, so it stops short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updates
    • First observedhekte_ask
    • First observedhekte_balance
    • First observedhekte_job

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Monetized graph answers over Bitcoin Lightning. Sells priced answers from a graph via operator-authored, parameterized, named Cypher query templates.
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    MCP server that gives autonomous agents pay-per-call Bitcoin context (self-custody radar, fee percentiles, price change windows, condition frequencies) paid in sats over Lightning via L402 invoices, with no account or API key required.
    7
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Discover and pay for APIs and MCP tools per call over Bitcoin Lightning (L402): search the bolthub marketplace, preview prices, and pay from your own wallet (LND, NWC, LNbits) with hard budgets, prepaid credit, scoped sub-agent delegation, and verifiable receipts. Non-custodial and works without a wallet for search and free tools.
    4
    19
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources