Taste

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

Should I use this

Quality & Safety

A
Description quality
99%
Schema completeness
92%
Naming quality
89%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~7,149Tokens (tool definitions)
~3.3 KBTypical response size
Significant attention impact (5.59% of 128k context)

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": {
    "taste-mcp": {
      "url": "https://api.humantaste.app/mcp/"
    }
  }
}

Remote endpoints

https://api.humantaste.app/mcp/streamable-http

What it can do

Tool inventory

Tools (20)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_offerings

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

Input Schema

{
  "type": "object",
  "properties": {}
}

Output Schema

{
  "type": "object",
  "properties": {
    "service": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "operatingHours": {
      "type": "string"
    },
    "nextOpenAt": {
      "type": [
        "string",
        "null"
      ]
    },
    "onlineExperts": {
      "type": "number"
    },
    "offerings": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "toolName": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "priceUsdc": {
            "type": "number"
          },
          "issuesCertificate": {
            "type": "boolean"
          }
        },
        "required": [
          "type",
          "toolName",
          "name",
          "description",
          "priceUsdc",
          "issuesCertificate"
        ],
        "additionalProperties": false
      }
    },
    "usage": {
      "type": "string"
    }
  },
  "required": [
    "service",
    "status",
    "operatingHours",
    "nextOpenAt",
    "onlineExperts",
    "offerings",
    "usage"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_expert_profiles

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.

Input Schema

{
  "type": "object",
  "properties": {}
}

Output Schema

{
  "type": "object",
  "properties": {
    "service": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "onlineExperts": {
      "type": "number"
    },
    "estimatedResponseMins": {
      "type": "number"
    },
    "qualityPolicy": {
      "type": "string"
    },
    "expertTaglines": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "service",
    "status",
    "onlineExperts",
    "estimatedResponseMins",
    "qualityPolicy",
    "expertTaglines"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_result(sessionId, referenceCode)

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 Schema

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "string",
      "description": "The session ID returned by a paid tool call."
    },
    "referenceCode": {
      "type": "string",
      "description": "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."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string"
    },
    "deliverable": {
      "type": "object",
      "additionalProperties": {}
    },
    "reason": {
      "type": "string"
    },
    "estimatedWaitMins": {
      "type": "number"
    },
    "message": {
      "type": "string"
    },
    "tip": {
      "type": "string"
    }
  },
  "required": [
    "status"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢prepare_consult_domain_expert(question, domain, context, referenceUrls, parentSessionId)

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 Schema

{
  "type": "object",
  "properties": {
    "question": {
      "type": "string",
      "minLength": 20,
      "maxLength": 3000,
      "description": "The specific question to ask the expert."
    },
    "domain": {
      "type": "string",
      "minLength": 3,
      "maxLength": 200,
      "description": "Area of expertise needed (e.g. Farmer, Protestant priest, UX designer, Stockholm local, art curator, museum staff, culture journalist, food critic)."
    },
    "context": {
      "type": "string",
      "minLength": 10,
      "maxLength": 2000,
      "description": "Optional. Why you are asking and what you are working on."
    },
    "referenceUrls": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uri"
      },
      "maxItems": 5,
      "description": "Optional. Publicly accessible URLs the expert should review."
    },
    "parentSessionId": {
      "type": "string",
      "description": "Optional. If present, the URL submits a follow-up to an existing consultation (capped at 3 per parent, same expert)."
    }
  },
  "required": [
    "question",
    "domain"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "paymentUrl": {
      "type": "string",
      "format": "uri"
    },
    "priceUsdc": {
      "type": "number"
    },
    "message": {
      "type": "string"
    },
    "tip": {
      "type": "string"
    }
  },
  "required": [
    "paymentUrl",
    "priceUsdc",
    "message",
    "tip"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢request_think_tank_revision(referenceCode, adjustments)

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 Schema

{
  "type": "object",
  "properties": {
    "referenceCode": {
      "type": "string",
      "minLength": 6,
      "description": "The TASTE-... reference code returned when you placed the think tank order."
    },
    "adjustments": {
      "type": "string",
      "minLength": 10,
      "maxLength": 3000,
      "description": "What you want the team to adjust, expand, or rethink."
    }
  },
  "required": [
    "referenceCode",
    "adjustments"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "string"
    },
    "referenceCode": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "turnsRemaining": {
      "type": "number"
    },
    "message": {
      "type": "string"
    },
    "tip": {
      "type": "string"
    }
  },
  "required": [
    "sessionId",
    "referenceCode",
    "status",
    "turnsRemaining",
    "message",
    "tip"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢request_illustration_revision(referenceCode, adjustments)

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 Schema

{
  "type": "object",
  "properties": {
    "referenceCode": {
      "type": "string",
      "minLength": 6,
      "description": "The TASTE-... reference code returned when you placed the illustration order."
    },
    "adjustments": {
      "type": "string",
      "minLength": 10,
      "maxLength": 3000,
      "description": "What you want the illustrator to adjust, expand, or rethink."
    }
  },
  "required": [
    "referenceCode",
    "adjustments"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "string"
    },
    "referenceCode": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "turnsRemaining": {
      "type": "number"
    },
    "message": {
      "type": "string"
    },
    "tip": {
      "type": "string"
    }
  },
  "required": [
    "sessionId",
    "referenceCode",
    "status",
    "turnsRemaining",
    "message",
    "tip"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪verify_external_source(subject, context)

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 Schema

{
  "type": "object",
  "properties": {
    "subject": {
      "type": "string",
      "minLength": 5,
      "maxLength": 500,
      "description": "The URL, project name, or claim to verify. Be specific (e.g. a URL, a project name + token address, or a verbatim claim)."
    },
    "context": {
      "type": "string",
      "minLength": 10,
      "maxLength": 2000,
      "description": "Optional context. Use to clarify intent, constraints, audience, or anything that helps the expert evaluate."
    }
  },
  "required": [
    "subject"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "offering": {
      "type": "string"
    },
    "priceUsdc": {
      "type": "number"
    },
    "message": {
      "type": "string"
    },
    "tip": {
      "type": "string"
    }
  },
  "required": [
    "sessionId",
    "status",
    "offering",
    "priceUsdc",
    "message",
    "tip"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢review_content(content, context)

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 Schema

{
  "type": "object",
  "properties": {
    "content": {
      "type": "string",
      "minLength": 1,
      "maxLength": 5000,
      "description": "The content to review. Text directly, or a publicly accessible URL for non-text media (images, video, audio, posts)."
    },
    "context": {
      "type": "string",
      "minLength": 10,
      "maxLength": 2000,
      "description": "Optional context. Use to clarify intent, constraints, audience, or anything that helps the expert evaluate."
    }
  },
  "required": [
    "content"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "offering": {
      "type": "string"
    },
    "priceUsdc": {
      "type": "number"
    },
    "message": {
      "type": "string"
    },
    "tip": {
      "type": "string"
    }
  },
  "required": [
    "sessionId",
    "status",
    "offering",
    "priceUsdc",
    "message",
    "tip"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪verify_reasoning_chain(chain, context)

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 Schema

{
  "type": "object",
  "properties": {
    "chain": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "step": {
            "type": "integer",
            "minimum": 1
          },
          "reasoning": {
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          "output": {
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          "toolUsed": {
            "type": "string",
            "maxLength": 200
          }
        },
        "required": [
          "step",
          "reasoning",
          "output"
        ],
        "additionalProperties": false
      },
      "minItems": 2,
      "maxItems": 20,
      "description": "Ordered array of reasoning steps. Each step: { step (number), reasoning (string), output (string), toolUsed? (string) }."
    },
    "context": {
      "type": "string",
      "minLength": 10,
      "maxLength": 2000,
      "description": "Optional context. Use to clarify intent, constraints, audience, or anything that helps the expert evaluate."
    }
  },
  "required": [
    "chain"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "offering": {
      "type": "string"
    },
    "priceUsdc": {
      "type": "number"
    },
    "message": {
      "type": "string"
    },
    "tip": {
      "type": "string"
    }
  },
  "required": [
    "sessionId",
    "status",
    "offering",
    "priceUsdc",
    "message",
    "tip"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢prepublish_review(content, context)

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 Schema

{
  "type": "object",
  "properties": {
    "content": {
      "type": "string",
      "minLength": 1,
      "maxLength": 5000,
      "description": "The content to review. Text directly, or a publicly accessible URL for non-text media."
    },
    "context": {
      "type": "string",
      "minLength": 10,
      "maxLength": 2000,
      "description": "Optional context. Use to clarify intent, constraints, audience, or anything that helps the expert evaluate."
    }
  },
  "required": [
    "content"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "offering": {
      "type": "string"
    },
    "priceUsdc": {
      "type": "number"
    },
    "message": {
      "type": "string"
    },
    "tip": {
      "type": "string"
    }
  },
  "required": [
    "sessionId",
    "status",
    "offering",
    "priceUsdc",
    "message",
    "tip"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢predict_audience_reaction(content, targetDemographic, context)

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 Schema

{
  "type": "object",
  "properties": {
    "content": {
      "type": "string",
      "minLength": 1,
      "maxLength": 5000,
      "description": "The content to evaluate. Text or a publicly accessible URL for non-text media."
    },
    "targetDemographic": {
      "type": "string",
      "minLength": 5,
      "maxLength": 500,
      "description": "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\"."
    },
    "context": {
      "type": "string",
      "minLength": 10,
      "maxLength": 2000,
      "description": "Optional context. Use to clarify intent, constraints, audience, or anything that helps the expert evaluate."
    }
  },
  "required": [
    "content",
    "targetDemographic"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "offering": {
      "type": "string"
    },
    "priceUsdc": {
      "type": "number"
    },
    "message": {
      "type": "string"
    },
    "tip": {
      "type": "string"
    }
  },
  "required": [
    "sessionId",
    "status",
    "offering",
    "priceUsdc",
    "message",
    "tip"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢arbitrate_dispute(contractDescription, deliverable, partyAPosition, partyBPosition, context, ...)

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 Schema

{
  "type": "object",
  "properties": {
    "contractDescription": {
      "type": "string",
      "minLength": 20,
      "maxLength": 3000,
      "description": "The agreed contract or deliverable specification."
    },
    "deliverable": {
      "type": "string",
      "minLength": 1,
      "maxLength": 5000,
      "description": "The deliverable to assess. Text or a publicly accessible URL."
    },
    "partyAPosition": {
      "type": "string",
      "minLength": 10,
      "maxLength": 2000,
      "description": "One side of the dispute. The expert evaluates both impartially — order is arbitrary."
    },
    "partyBPosition": {
      "type": "string",
      "minLength": 10,
      "maxLength": 2000,
      "description": "The other side of the dispute."
    },
    "context": {
      "type": "string",
      "minLength": 10,
      "maxLength": 2000,
      "description": "Optional context. Use to clarify intent, constraints, audience, or anything that helps the expert evaluate."
    },
    "termsHash": {
      "type": "string",
      "pattern": "^(sha256:)?0x[0-9a-fA-F]{64}$",
      "description": "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). Persisted on the ruling for the receipt + precedent lookups."
    },
    "termsUri": {
      "type": "string",
      "format": "uri",
      "description": "Where the att/v1 manifest is hosted (https/ipfs). Convenience only — the hash is the identity."
    },
    "termsJson": {
      "type": "object",
      "additionalProperties": {},
      "description": "The full att/v1 terms manifest object. If provided it must be a valid manifest whose keccak256 equals termsHash."
    }
  },
  "required": [
    "contractDescription",
    "deliverable",
    "partyAPosition",
    "partyBPosition"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "offering": {
      "type": "string"
    },
    "priceUsdc": {
      "type": "number"
    },
    "message": {
      "type": "string"
    },
    "tip": {
      "type": "string"
    }
  },
  "required": [
    "sessionId",
    "status",
    "offering",
    "priceUsdc",
    "message",
    "tip"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪request_human_approval(actionDescription, stakes, timeoutMinutes, context)

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 Schema

{
  "type": "object",
  "properties": {
    "actionDescription": {
      "type": "string",
      "minLength": 20,
      "maxLength": 3000,
      "description": "Describe the action awaiting approval. Include numbers (amounts, recipients, URLs) the human needs to see."
    },
    "stakes": {
      "type": "string",
      "enum": [
        "reversible",
        "irreversible",
        "financial",
        "public"
      ],
      "description": "What kind of risk the action carries. Reversible: undoable. Irreversible: cannot be undone. Financial: moves value. Public: visible externally."
    },
    "timeoutMinutes": {
      "type": "integer",
      "minimum": 1,
      "maximum": 120,
      "description": "Maximum minutes to wait for a human response before returning denied_timeout. Default 30, max 120."
    },
    "context": {
      "type": "string",
      "minLength": 10,
      "maxLength": 2000,
      "description": "Optional context. Use to clarify intent, constraints, audience, or anything that helps the expert evaluate."
    }
  },
  "required": [
    "actionDescription",
    "stakes"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "offering": {
      "type": "string"
    },
    "priceUsdc": {
      "type": "number"
    },
    "message": {
      "type": "string"
    },
    "tip": {
      "type": "string"
    }
  },
  "required": [
    "sessionId",
    "status",
    "offering",
    "priceUsdc",
    "message",
    "tip"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪verify_certificate(contentHash, certificateId)

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 Schema

{
  "type": "object",
  "properties": {
    "contentHash": {
      "type": "string",
      "description": "keccak256 hash of the content, as 0x-prefixed hex. Provide this OR certificateId."
    },
    "certificateId": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^\\d+$"
        },
        {
          "type": "integer",
          "exclusiveMinimum": 0
        }
      ],
      "description": "Numeric certificate id. Provide this OR contentHash."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "found": {
      "type": "boolean"
    },
    "valid": {
      "type": "boolean"
    },
    "certificateId": {
      "type": "string"
    },
    "contentHash": {
      "type": "string"
    },
    "agent": {
      "type": "string"
    },
    "offeringType": {
      "type": "string"
    },
    "verdict": {
      "type": "string"
    },
    "domain": {
      "type": "string"
    },
    "issuedAt": {
      "type": "string"
    },
    "reason": {
      "type": "string"
    },
    "evidence": {
      "type": "object",
      "properties": {
        "tier": {
          "type": "string",
          "enum": [
            "evidence-verified",
            "legacy",
            "unverified"
          ]
        },
        "reason": {
          "type": "string"
        },
        "reviewer": {
          "type": "string"
        },
        "reviewedAt": {
          "type": "string"
        },
        "sessionIdHash": {
          "type": "string"
        },
        "easAttestationUid": {
          "type": "string"
        },
        "attestation": {
          "type": "object",
          "properties": {
            "attester": {
              "type": "string"
            },
            "schema": {
              "type": "string"
            },
            "issuedAt": {
              "type": "string"
            },
            "expiresAt": {
              "type": [
                "string",
                "null"
              ]
            },
            "revoked": {
              "type": "boolean"
            },
            "validAtCertIssuance": {
              "type": "boolean"
            },
            "passingScore": {
              "type": "boolean"
            },
            "score": {
              "type": "number"
            },
            "threshold": {
              "type": "number"
            },
            "scorerId": {
              "type": "string"
            }
          },
          "required": [
            "attester",
            "schema",
            "issuedAt",
            "expiresAt",
            "revoked",
            "validAtCertIssuance"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "tier"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "found"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢order_think_tank_session_30(description, mediaUrls, requestedDeliverables, buyerWalletAddress)

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 Schema

{
  "type": "object",
  "properties": {
    "description": {
      "type": "string",
      "minLength": 20,
      "maxLength": 5000,
      "description": "The idea, concept, or problem you want the think tank to work on. Be specific about the goal and any constraints."
    },
    "mediaUrls": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uri"
      },
      "maxItems": 10,
      "description": "Optional. Publicly accessible URLs to reference material (images, decks, docs, links) the team should review."
    },
    "requestedDeliverables": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 3,
        "maxLength": 300
      },
      "maxItems": 10,
      "description": "Optional. What you want out of the session — e.g. \"5 campaign concepts\", \"a positioning statement\", \"product name ideas\"."
    },
    "buyerWalletAddress": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Optional. An EVM wallet address. If provided, you can later retrieve the deliverable on humantaste.app by connecting this wallet."
    }
  },
  "required": [
    "description"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "string"
    },
    "referenceCode": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "offering": {
      "type": "string"
    },
    "priceUsdc": {
      "type": "number"
    },
    "revisionTurns": {
      "type": "number"
    },
    "message": {
      "type": "string"
    },
    "tip": {
      "type": "string"
    }
  },
  "required": [
    "sessionId",
    "referenceCode",
    "status",
    "offering",
    "priceUsdc",
    "revisionTurns",
    "message",
    "tip"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢order_think_tank_session_60(description, mediaUrls, requestedDeliverables, buyerWalletAddress)

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 Schema

{
  "type": "object",
  "properties": {
    "description": {
      "type": "string",
      "minLength": 20,
      "maxLength": 5000,
      "description": "The idea, concept, or problem you want the think tank to work on. Be specific about the goal and any constraints."
    },
    "mediaUrls": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uri"
      },
      "maxItems": 10,
      "description": "Optional. Publicly accessible URLs to reference material (images, decks, docs, links) the team should review."
    },
    "requestedDeliverables": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 3,
        "maxLength": 300
      },
      "maxItems": 10,
      "description": "Optional. What you want out of the session — e.g. \"5 campaign concepts\", \"a positioning statement\", \"product name ideas\"."
    },
    "buyerWalletAddress": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Optional. An EVM wallet address. If provided, you can later retrieve the deliverable on humantaste.app by connecting this wallet."
    }
  },
  "required": [
    "description"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "string"
    },
    "referenceCode": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "offering": {
      "type": "string"
    },
    "priceUsdc": {
      "type": "number"
    },
    "revisionTurns": {
      "type": "number"
    },
    "message": {
      "type": "string"
    },
    "tip": {
      "type": "string"
    }
  },
  "required": [
    "sessionId",
    "referenceCode",
    "status",
    "offering",
    "priceUsdc",
    "revisionTurns",
    "message",
    "tip"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢consult_domain_expert(question, domain, context, referenceUrls, parentSessionId, ...)

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 Schema

{
  "type": "object",
  "properties": {
    "question": {
      "type": "string",
      "minLength": 20,
      "maxLength": 3000,
      "description": "The specific question to ask the expert. Be precise — the more specific the question, the better the answer."
    },
    "domain": {
      "type": "string",
      "minLength": 3,
      "maxLength": 200,
      "description": "Area of expertise needed. Examples of currently listed domains: \"Professional musician\", \"Cantor\", \"Writer\", \"Farmer\", \"UX designer\", \"Person living in the Swedish Archipelago\", \"Stockholm local\", \"Protestant priest\", \"Art curator\", \"Museum staff\", \"Culture journalist\", \"Food critic\". Free-form — describe the kind of expert you need."
    },
    "context": {
      "type": "string",
      "minLength": 10,
      "maxLength": 2000,
      "description": "Optional. Why you are asking and what you are working on (essay, research, product decision, etc.). Helps the expert frame their answer."
    },
    "referenceUrls": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uri"
      },
      "maxItems": 5,
      "description": "Optional. Publicly accessible URLs the expert should review before answering."
    },
    "parentSessionId": {
      "type": "string",
      "description": "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."
    },
    "requireListedDomain": {
      "type": "boolean",
      "description": "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."
    },
    "buyerWalletAddress": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Optional. An EVM wallet address. If provided, you can later retrieve the deliverable on humantaste.app by connecting this wallet."
    }
  },
  "required": [
    "question",
    "domain"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "offering": {
      "type": "string"
    },
    "priceUsdc": {
      "type": "number"
    },
    "parentSessionId": {
      "type": "string"
    },
    "followupsRemaining": {
      "type": "number"
    },
    "message": {
      "type": "string"
    },
    "tip": {
      "type": "string"
    }
  },
  "required": [
    "sessionId",
    "status",
    "offering",
    "priceUsdc",
    "message",
    "tip"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ask_a_human(question)

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 Schema

{
  "type": "object",
  "properties": {
    "question": {
      "type": "string",
      "minLength": 2,
      "maxLength": 5000,
      "description": "The plain-text question for a human to answer. Anything you want a quick human take on."
    }
  },
  "required": [
    "question"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "offering": {
      "type": "string"
    },
    "priceUsdc": {
      "type": "number"
    },
    "message": {
      "type": "string"
    },
    "tip": {
      "type": "string"
    }
  },
  "required": [
    "sessionId",
    "status",
    "offering",
    "priceUsdc",
    "message",
    "tip"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢review_plan(plan, goal, context)

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 Schema

{
  "type": "object",
  "properties": {
    "plan": {
      "type": "string",
      "minLength": 50,
      "maxLength": 20000,
      "description": "The implementation or project plan to review. Paste the full plan — steps, approach, architecture, sequencing."
    },
    "goal": {
      "type": "string",
      "minLength": 10,
      "maxLength": 1000,
      "description": "What the plan is meant to achieve — the objective or task it addresses."
    },
    "context": {
      "type": "string",
      "minLength": 10,
      "maxLength": 2000,
      "description": "Optional context. Use to clarify intent, constraints, audience, or anything that helps the expert evaluate."
    }
  },
  "required": [
    "plan",
    "goal"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "offering": {
      "type": "string"
    },
    "priceUsdc": {
      "type": "number"
    },
    "message": {
      "type": "string"
    },
    "tip": {
      "type": "string"
    }
  },
  "required": [
    "sessionId",
    "status",
    "offering",
    "priceUsdc",
    "message",
    "tip"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢review_code(code, intent, context)

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 Schema

{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "minLength": 20,
      "maxLength": 20000,
      "description": "The code to review. Paste it inline, or pass a publicly accessible URL (e.g. a gist or raw file)."
    },
    "intent": {
      "type": "string",
      "minLength": 10,
      "maxLength": 2000,
      "description": "What the code is meant to do — the behaviour and constraints, plus any correctness or security concerns to focus on."
    },
    "context": {
      "type": "string",
      "minLength": 10,
      "maxLength": 2000,
      "description": "Optional context. Use to clarify intent, constraints, audience, or anything that helps the expert evaluate."
    }
  },
  "required": [
    "code",
    "intent"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "sessionId": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "offering": {
      "type": "string"
    },
    "priceUsdc": {
      "type": "number"
    },
    "message": {
      "type": "string"
    },
    "tip": {
      "type": "string"
    }
  },
  "required": [
    "sessionId",
    "status",
    "offering",
    "priceUsdc",
    "message",
    "tip"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded20 tools
verifiedversion not recorded20 tools
verifiedversion not recorded20 tools