# Taste (remote · api.humantaste.app)

Expert review for AI agents. On-chain proof of human review.

- Trust score: 66/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-04

## Components

- remote · `api.humantaste.app`: 66/100 (this document), [markdown](https://verifymcp.io/servers/app-humantaste-taste-mcp/api.md), [page](https://verifymcp.io/servers/app-humantaste-taste-mcp/api)

## Channel facts

- Endpoint: `https://api.humantaste.app/mcp/`
- Transports: `streamable-http`
- Auth: `none`
- Version: `2.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-04.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 20 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 70/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3462 tokens (~173/item across 20 items; 20 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 30/100
  - Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http app-humantaste-taste-mcp https://api.humantaste.app/mcp/
```

### Codex

```toml
[mcp_servers.app-humantaste-taste-mcp]
url = "https://api.humantaste.app/mcp/"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "app-humantaste-taste-mcp": {
      "type": "remote",
      "url": "https://api.humantaste.app/mcp/",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add app-humantaste-taste-mcp --url https://api.humantaste.app/mcp/ --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  app-humantaste-taste-mcp:
    url: "https://api.humantaste.app/mcp/"
```

### Other

```json
{
  "mcpServers": {
    "app-humantaste-taste-mcp": {
      "type": "http",
      "url": "https://api.humantaste.app/mcp/"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-01 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 64, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 64, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 63, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 62, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 62)

First indexed and scored.

## MCP tools (20)

### `list_offerings` (~35 tokens)

List all available human expert evaluation offerings with pricing, tool names, and whether each issues an on-chain Taste content certificate. Free.

Output parameters:

- `nextOpenAt` (string|null)
- `offerings` (array)
- `onlineExperts` (number)
- `operatingHours` (string)
- `service` (string)
- `status` (string)
- `usage` (string)

### `list_expert_profiles` (~77 tokens)

Returns currently-available expert taglines (pseudonymous descriptions of the kinds of expertise on hand) plus the real-time count of online expert seats and estimated wait. Use this as a cheap pre-flight check before calling a paid tool. Taglines describe expertise kinds, not individuals: no per-expert PII is exposed. Free.

Output parameters:

- `estimatedResponseMins` (number)
- `expertTaglines` (array)
- `onlineExperts` (number)
- `qualityPolicy` (string)
- `service` (string)
- `status` (string)

### `get_result` (~110 tokens)

Check the status of a previously submitted request. Returns the full structured deliverable once the expert (or order team) completes the work. Accepts a sessionId or an order reference code (think tank or illustration).

Input parameters:

- `referenceCode` (string): An order reference code (TASTE-...) from a think tank or illustration order. Use this instead of sessionId to retrieve the result — it always returns the latest revision.
- `sessionId` (string): The session ID returned by a paid tool call.

Output parameters:

- `deliverable` (object)
- `estimatedWaitMins` (number)
- `message` (string)
- `reason` (string)
- `status` (string)
- `tip` (string)

### `prepare_consult_domain_expert` (~228 tokens)

Get a humantaste.app URL where a human can place a consult_domain_expert order from a browser (Connect MetaMask, pay $15 USDC on Base, session created). Use this when your MCP client has no wallet integration (Claude Desktop, generic chat UIs). The URL is pre-filled with the brief you pass in; the user just opens it, reviews, connects a wallet, and pays. Returns the payment URL and the price. Free.

Input parameters:

- `context` (string): Optional. Why you are asking and what you are working on.
- `domain` (string, required): Area of expertise needed (e.g. Farmer, Protestant priest, UX designer, Stockholm local, art curator, museum staff, culture journalist, food critic).
- `parentSessionId` (string): Optional. If present, the URL submits a follow-up to an existing consultation (capped at 3 per parent, same expert).
- `question` (string, required): The specific question to ask the expert.
- `referenceUrls` (array): Optional. Publicly accessible URLs the expert should review.

Output parameters:

- `message` (string)
- `paymentUrl` (string)
- `priceUsdc` (number)
- `tip` (string)

### `request_think_tank_revision` (~120 tokens)

Spend a free revision turn on a completed think tank order. Provide the reference code from your original order and describe the adjustments you want — the same team revisits the brief and returns an updated deliverable. Poll get_result with the reference code to retrieve it. Free: no payment required, the turn is included with your order.

Input parameters:

- `adjustments` (string, required): What you want the team to adjust, expand, or rethink.
- `referenceCode` (string, required): The TASTE-... reference code returned when you placed the think tank order.

Output parameters:

- `message` (string)
- `referenceCode` (string)
- `sessionId` (string)
- `status` (string)
- `tip` (string)
- `turnsRemaining` (number)

### `request_illustration_revision` (~117 tokens)

Spend a free revision turn on a completed illustration order. Provide the reference code from your original order and describe the adjustments you want — the same illustrator revisits the brief and returns an updated deliverable. Poll get_result with the reference code to retrieve it. Free: no payment required, the turn is included with your order.

Input parameters:

- `adjustments` (string, required): What you want the illustrator to adjust, expand, or rethink.
- `referenceCode` (string, required): The TASTE-... reference code returned when you placed the illustration order.

Output parameters:

- `message` (string)
- `referenceCode` (string)
- `sessionId` (string)
- `status` (string)
- `tip` (string)
- `turnsRemaining` (number)

### `verify_external_source` (~136 tokens)

Have a vetted human expert verify whether an external source, project, or claim is trustworthy. Call when your output or planned action depends on an external claim you cannot independently verify (crypto project legitimacy, social media authenticity, source credibility, vendor due diligence). Returns verdict, red flags, positive signals, confidence score.

Input parameters:

- `context` (string): Optional context. Use to clarify intent, constraints, audience, or anything that helps the expert evaluate.
- `subject` (string, required): The URL, project name, or claim to verify. Be specific (e.g. a URL, a project name + token address, or a verbatim claim).

Output parameters:

- `message` (string)
- `offering` (string)
- `priceUsdc` (number)
- `sessionId` (string)
- `status` (string)
- `tip` (string)

### `review_content` (~151 tokens)

Get a vetted human expert to review your AI-generated content — text, images, videos, social posts, audio, or any media — for hallucinations, factual errors, weak parts, and domain mistakes. Call before publishing, before forwarding to another agent, or before acting on the content. Returns verdict, issues found, suggested improvements. Approved outputs receive a Taste content certificate on-chain you can attach as proof of human review.

Input parameters:

- `content` (string, required): The content to review. Text directly, or a publicly accessible URL for non-text media (images, video, audio, posts).
- `context` (string): Optional context. Use to clarify intent, constraints, audience, or anything that helps the expert evaluate.

Output parameters:

- `message` (string)
- `offering` (string)
- `priceUsdc` (number)
- `sessionId` (string)
- `status` (string)
- `tip` (string)

### `verify_reasoning_chain` (~143 tokens)

Audit your step-by-step reasoning for mid-chain errors before producing the final answer. Call when stakes are high and your chain has 3+ steps — humans catch wrong intermediate steps that final-output checks miss (right-looking answers built on broken intermediate logic). Returns per-step verdict, flagged errors, suggested corrections. Approved chains receive a Taste content certificate on-chain.

Input parameters:

- `chain` (array, required): Ordered array of reasoning steps. Each step: { step (number), reasoning (string), output (string), toolUsed? (string) }.
- `context` (string): Optional context. Use to clarify intent, constraints, audience, or anything that helps the expert evaluate.

Output parameters:

- `message` (string)
- `offering` (string)
- `priceUsdc` (number)
- `sessionId` (string)
- `status` (string)
- `tip` (string)

### `prepublish_review` (~151 tokens)

Get a vetted human expert to review your AI-generated content — text, images, videos, social posts, audio, or any media — for cultural sensitivity, brand safety, derivative risks, and audience appeal before you publish. Call before social posts, marketing campaigns, content distribution, or anywhere public-facing. Returns verdict (safe / needs_changes / do_not_publish), flagged issues, fix suggestions. Approved content receives a Taste content certificate on-chain, verifiable downstream.

Input parameters:

- `content` (string, required): The content to review. Text directly, or a publicly accessible URL for non-text media.
- `context` (string): Optional context. Use to clarify intent, constraints, audience, or anything that helps the expert evaluate.

Output parameters:

- `message` (string)
- `offering` (string)
- `priceUsdc` (number)
- `sessionId` (string)
- `status` (string)
- `tip` (string)

### `predict_audience_reaction` (~159 tokens)

Get a real human matching your target demographic to rate and react to your content as a representative audience member. Call before A/B test commits, before ad spend, or before distribution decisions. Returns overall rating, criteria scores, qualitative feedback, comparison notes.

Input parameters:

- `content` (string, required): The content to evaluate. Text or a publicly accessible URL for non-text media.
- `context` (string): Optional context. Use to clarify intent, constraints, audience, or anything that helps the expert evaluate.
- `targetDemographic` (string, required): The audience whose reaction matters. Required — load-bearing for expert matching. E.g. "crypto-native traders, 18-35", "non-technical SMB owners in the US", "casual gamers".

Output parameters:

- `message` (string)
- `offering` (string)
- `priceUsdc` (number)
- `sessionId` (string)
- `status` (string)
- `tip` (string)

### `arbitrate_dispute` (~307 tokens)

Get an impartial human arbiter to decide whether a deliverable meets an agreed contract, or to settle disagreements between agents. Call when automated evaluation cannot determine quality, when two parties dispute fulfillment, or when subjective judgment is needed for contract assessment. Returns approve/reject verdict, reasoning, deliverable quality rating, contract alignment.

Input parameters:

- `context` (string): Optional context. Use to clarify intent, constraints, audience, or anything that helps the expert evaluate.
- `contractDescription` (string, required): The agreed contract or deliverable specification.
- `deliverable` (string, required): The deliverable to assess. Text or a publicly accessible URL.
- `partyAPosition` (string, required): One side of the dispute. The expert evaluates both impartially — order is arbitrary.
- `partyBPosition` (string, required): The other side of the dispute.
- `termsHash` (string): Terms anchor this dispute is bound to: keccak256 of the att/v1 terms manifest (as echoed from the x402 payment), or an opaque 32-byte document hash such as an LCP atrHash ("sha256:0x…" accepted). Per…
- `termsJson` (object): The full att/v1 terms manifest object. If provided it must be a valid manifest whose keccak256 equals termsHash.
- `termsUri` (string): Where the att/v1 manifest is hosted (https/ipfs). Convenience only — the hash is the identity.

Output parameters:

- `message` (string)
- `offering` (string)
- `priceUsdc` (number)
- `sessionId` (string)
- `status` (string)
- `tip` (string)

### `request_human_approval` (~198 tokens)

Pause your workflow for explicit human approval before executing a high-stakes action. Call before any irreversible action — large spend, on-chain transaction, public content publish, customer-facing decision. Returns approved/denied + reasoning. Approvals can be enforced on-chain via the Taste Gatekeeper hook for ACP and ERC-8183 jobs.

Input parameters:

- `actionDescription` (string, required): Describe the action awaiting approval. Include numbers (amounts, recipients, URLs) the human needs to see.
- `context` (string): Optional context. Use to clarify intent, constraints, audience, or anything that helps the expert evaluate.
- `stakes` (string, required): What kind of risk the action carries. Reversible: undoable. Irreversible: cannot be undone. Financial: moves value. Public: visible externally.
- `timeoutMinutes` (integer): Maximum minutes to wait for a human response before returning denied_timeout. Default 30, max 120.

Output parameters:

- `message` (string)
- `offering` (string)
- `priceUsdc` (number)
- `sessionId` (string)
- `status` (string)
- `tip` (string)

### `verify_certificate` (~157 tokens)

Verify a Taste content certificate on-chain. Call when consuming content from another source that claims to be human-reviewed — returns reviewer domain, date, offering, verdict, validity, and an evidence tier: "evidence-verified" certs carry the reviewer's EIP-712 verdict signature + their Human Passport score attestation (EAS on Base), independently checkable without trusting Taste. Free. Use to build trust chains: agent A's output is reviewed → certificate issued → agent B consumes content and verifies cert before acting.

Input parameters:

- `certificateId`: Numeric certificate id. Provide this OR contentHash.
- `contentHash` (string): keccak256 hash of the content, as 0x-prefixed hex. Provide this OR certificateId.

Output parameters:

- `agent` (string)
- `certificateId` (string)
- `contentHash` (string)
- `domain` (string)
- `evidence` (object)
- `found` (boolean)
- `issuedAt` (string)
- `offeringType` (string)
- `reason` (string)
- `valid` (boolean)
- `verdict` (string)

### `order_think_tank_session_30` (~231 tokens)

Convene a think tank — a curated team of vetted human experts runs a 30-minute working session on your idea, problem, or decision and returns synthesized directions, ideas with rationale, and recommended next steps. Returns a sessionId + referenceCode immediately — poll get_result with either when the team is done. Includes 1 free revision turn: call request_think_tank_revision with the code to ask for adjustments.

Input parameters:

- `buyerWalletAddress` (string): Optional. An EVM wallet address. If provided, you can later retrieve the deliverable on humantaste.app by connecting this wallet.
- `description` (string, required): The idea, concept, or problem you want the think tank to work on. Be specific about the goal and any constraints.
- `mediaUrls` (array): Optional. Publicly accessible URLs to reference material (images, decks, docs, links) the team should review.
- `requestedDeliverables` (array): Optional. What you want out of the session — e.g. "5 campaign concepts", "a positioning statement", "product name ideas".

Output parameters:

- `message` (string)
- `offering` (string)
- `priceUsdc` (number)
- `referenceCode` (string)
- `revisionTurns` (number)
- `sessionId` (string)
- `status` (string)
- `tip` (string)

### `order_think_tank_session_60` (~231 tokens)

Convene a think tank — a curated team of vetted human experts runs a 60-minute working session on your idea, problem, or decision and returns synthesized directions, ideas with rationale, and recommended next steps. Returns a sessionId + referenceCode immediately — poll get_result with either when the team is done. Includes 2 free revision turns: call request_think_tank_revision with the code to ask for adjustments.

Input parameters:

- `buyerWalletAddress` (string): Optional. An EVM wallet address. If provided, you can later retrieve the deliverable on humantaste.app by connecting this wallet.
- `description` (string, required): The idea, concept, or problem you want the think tank to work on. Be specific about the goal and any constraints.
- `mediaUrls` (array): Optional. Publicly accessible URLs to reference material (images, decks, docs, links) the team should review.
- `requestedDeliverables` (array): Optional. What you want out of the session — e.g. "5 campaign concepts", "a positioning statement", "product name ideas".

Output parameters:

- `message` (string)
- `offering` (string)
- `priceUsdc` (number)
- `referenceCode` (string)
- `revisionTurns` (number)
- `sessionId` (string)
- `status` (string)
- `tip` (string)

### `consult_domain_expert` (~411 tokens)

A vetted human in a named domain answers your question with first-hand knowledge. Pass `domain` to match an expert. Pass `parentSessionId` for follow-ups (cap 3). Returns answer, anonymised role, confidence, first-hand flag. Approved answers get an on-chain Taste cert. Listed domains: musician, cantor, writer, farmer, UX designer, Swedish archipelago resident, Stockholm local, Protestant priest, art curator, museum staff, culture journalist, food critic. Other domains: best-effort 24-48h.

Input parameters:

- `buyerWalletAddress` (string): Optional. An EVM wallet address. If provided, you can later retrieve the deliverable on humantaste.app by connecting this wallet.
- `context` (string): Optional. Why you are asking and what you are working on (essay, research, product decision, etc.). Helps the expert frame their answer.
- `domain` (string, required): Area of expertise needed. Examples of currently listed domains: "Professional musician", "Cantor", "Writer", "Farmer", "UX designer", "Person living in the Swedish Archipelago", "Stockholm local", "P…
- `parentSessionId` (string): Optional. If present, this is a follow-up question to the same expert on an existing consultation. Up to 3 follow-ups per parent. Server validates the parent is completed and within the follow-up cap.
- `question` (string, required): The specific question to ask the expert. Be precise — the more specific the question, the better the answer.
- `referenceUrls` (array): Optional. Publicly accessible URLs the expert should review before answering.
- `requireListedDomain` (boolean): Optional. If true, the job is declined immediately when the domain is not on the supported listed-domain list, instead of being queued for best-effort sourcing.

Output parameters:

- `followupsRemaining` (number)
- `message` (string)
- `offering` (string)
- `parentSessionId` (string)
- `priceUsdc` (number)
- `sessionId` (string)
- `status` (string)
- `tip` (string)

### `ask_a_human` (~111 tokens)

Ask a vetted human a plain-text question and get a plain-text answer back, usually within 30 minutes. Call when you need a quick human take, gut check, or local/lived-experience answer a model cannot reliably give. No scoring, no verdict, no certificate — just a direct human response. Returns the human's answer, plus an optional note on who answered.

Input parameters:

- `question` (string, required): The plain-text question for a human to answer. Anything you want a quick human take on.

Output parameters:

- `message` (string)
- `offering` (string)
- `priceUsdc` (number)
- `sessionId` (string)
- `status` (string)
- `tip` (string)

### `review_plan` (~183 tokens)

Get a vetted human to review your implementation or project plan before you build. Call right after you draft a plan for a non-trivial task — a human catches wrong assumptions, missing steps, architectural dead-ends, and risky sequencing while changes are still cheap, before any code is written. Pass the plan, the goal it serves, and any constraints. Returns verdict (proceed / revise / rethink), risks flagged, missing considerations, and sequencing notes. Approved plans receive a Taste content certificate on-chain.

Input parameters:

- `context` (string): Optional context. Use to clarify intent, constraints, audience, or anything that helps the expert evaluate.
- `goal` (string, required): What the plan is meant to achieve — the objective or task it addresses.
- `plan` (string, required): The implementation or project plan to review. Paste the full plan — steps, approach, architecture, sequencing.

Output parameters:

- `message` (string)
- `offering` (string)
- `priceUsdc` (number)
- `sessionId` (string)
- `status` (string)
- `tip` (string)

### `review_code` (~206 tokens)

Get a vetted human engineer to review your code, architecture, and design decisions — not just style, but correctness, security, and whether the structure will hold up. Call before you treat code as done: payment flows, auth, data handling, or any logic where a subtle bug is costly. Pass the code (inline or a publicly accessible URL) and what it is meant to do. Returns verdict (approved / needs_changes / reject), a correctness score, security findings, architecture notes, and suggested changes. Approved code receives a Taste content certificate on-chain.

Input parameters:

- `code` (string, required): The code to review. Paste it inline, or pass a publicly accessible URL (e.g. a gist or raw file).
- `context` (string): Optional context. Use to clarify intent, constraints, audience, or anything that helps the expert evaluate.
- `intent` (string, required): What the code is meant to do — the behaviour and constraints, plus any correctness or security concerns to focus on.

Output parameters:

- `message` (string)
- `offering` (string)
- `priceUsdc` (number)
- `sessionId` (string)
- `status` (string)
- `tip` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/app-humantaste-taste-mcp/api#diagnostics

## Score history

- 2026-08-04: 66
- 2026-08-03: 66
- 2026-08-02: 65
- 2026-08-01: 65
- 2026-07-31: 64
- 2026-07-30: 64
- 2026-07-29: 64
- 2026-07-28: 63
- 2026-07-27: 62
- 2026-07-26: 62

## Links

- Remote endpoint: https://api.humantaste.app/mcp/
- Repository: https://github.com/with0utwhy/taste-mcp
- Website: https://api.humantaste.app/llms.txt
- Changelog RSS feed: https://verifymcp.io/servers/app-humantaste-taste-mcp/api/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/app-humantaste-taste-mcp/api/changelog.json
- HTML version of this page: https://verifymcp.io/servers/app-humantaste-taste-mcp/api
