OfferSheet

The catalogue

Qloo tool catalogue

For a promoter: these are the ten Qloo look-ups OfferSheet runs to judge your offer — who the fans are, which openers fit, how the city responds.
You never call them yourself; the table shows what each one does and where it appears in your verdict.

The 10 Qloo tools behind every verdict, in plain verbs. OfferSheet also runs its own MCP server — 33 tools: 23 OfferSheet tools + 10 guarded Qloo tools. A full verdict run invokes all 10 Qloo tools below; a leg that is skipped or returns empty invokes fewer and is labelled skipped or empty, never receipted as data. Every verdict leg that returns data earns a receipt; empty REST and re-rank legs earn no receipt, replay re-runs are comparisons against the original receipt rather than new receipts, and offline tools (arithmetic, hash checks, lists, arms) carry no receipt by design. Standalone proxy calls are a separate surface: the proxy records a receipt unconditionally after a non-throwing call, so a proxy receipt alone does not prove an ok leg — filter receipts on operation, never on claim. The ID-threading resolution helper records its own receipt ('opener description (resolution helper)'); the ID it resolves is receipted downstream when it is used. The full 33-tool catalogue is served by the OfferSheet server.

ToolWhat it doesWhere it shows up
qloo_capabilitiesLists what Qloo can do before any verdict runsReadiness probe
qloo_find_tagsTurns the artist and city into Qloo tags before any audience callTag discovery
qloo_describeResolves one named artist to its Qloo entity cardHeadliner resolution
qloo_recommendFinds opener candidates from the headliner's fansOpener shortlist
qloo_rankRanks a shortlist for one city audienceGraph pick
qloo_where_popularFinds where the headliner is popularAudience areas
qloo_audience_demographicsReturns full age and gender bands for an audienceWho this audience is
qloo_entity_tagsReturns tags shared between two entitiesShared tags
qloo_trendsReturns 90-day momentum for an entityWhether the artist is rising
qloo_compare_audiencesCompares two audiences' overlapHow the fan bases overlap

Install OfferSheet's own MCP server (agent setup)

This wires OfferSheet's own server into your agent. It is a stdio server, zero-dependency Node, started from a clone of the public repo. The 10 qloo_ tools are guarded proxies of Qloo's tools — they reuse the same allowlists, call-budget guards, and receipt store as the hosted verdict. The per-visitor cap applies to the hosted HTTP verdict and replay endpoints only — a stdio server has no visitor identity, so its guards are the monthly budget and the per-run call cap. Keys come from the host environment only, never from a tool argument.

node backend/mcp-server.js

Then add this block to your agent's MCP config — .mcp.json for Claude Code, or the MCP settings file for Cursor. Replace the path with the clone's location on your machine.

{
  "mcpServers": {
    "offersheet": {
      "command": "node",
      "args": ["/path/to/OfferSheet/backend/mcp-server.js"]
    }
  }
}

Proven 29 Oct 2026: a fresh clone of the public repo answers tools/list with exactly 33 tools (23 offersheet_ + 10 qloo_) with no keys configured, and a live receipt replayed through the deployed backend returned the same ID list in the same order. Artifacts, served on this page's own site: fresh-clone tools/list transcript · live receipt round-trip record.

offersheet_deal_breakeven, offersheet_verdict_run, and offersheet_verdict_race take an optional fixed-cost stack: venue cost (roomCost), production cost, marketing cost, other fixed costs, and a sponsor offset that is subtracted. Omit a field when it is blank. Blank is not entered and is not zero. The catalogue stays 33 tools: 23 OfferSheet tools + 10 guarded Qloo tools.

Install Qloo's official local server (agent setup)

This wires Qloo's own MCP server into your agent — it is not an OfferSheet server, and it adds no new OfferSheet surface. The verdict itself still runs in the hosted app.

npm install --global @qloo/qloo-harness
qloo mcp

Then add this block to your agent's MCP config — .mcp.json for Claude Code, or the MCP settings file for Cursor. The server name is your local label; the command is Qloo's verified invocation.

{
  "mcpServers": {
    "qloo": {
      "command": "qloo",
      "args": ["mcp"]
    }
  }
}

If the key is missing, Qloo's own setup reports it — run qloo setup --status and follow its prompt. OfferSheet never invents a verdict while the key is missing, and your key never leaves the server: receipts carry hashes and request IDs, never keys.

Back to the app · How the verdict is proven