Storika

Storika MCP reference

Storika runs two MCP servers. The Rate Oracle answers questions about published creator-rate benchmarks and needs no sign-in. The Storika connector works in your Storika organization after you sign in in the browser with the account you use for Storika.

The Rate Oracle section is read from the server itself each time the site is built: the tool list, the input and output fields, the limits and every example response are what the server returns.

Rate Oracle

Published creator-rate benchmarks for AI assistants. Every answer is an aggregate from Storika's published report, with its sample size, period, caveat and source.

https://www.storika.ai/mcp
  • Address: https://www.storika.ai/mcp (Streamable HTTP). Clients connect with POST, one JSON-RPC message per request, accepting both application/json and text/event-stream. Answers come back as JSON. Each request stands alone, with no session to keep.
  • Sign-in: none. There is no account or API key.
  • Browser origins allowed: https://chatgpt.com, https://claude.ai, https://platform.openai.com, https://www.storika.ai. A client that sends no Origin header can connect too. Any other origin gets HTTP 403.
  • Limit: each server instance gives every IP address a burst of 600 requests, refilled at 10 requests a second. Over it, the server answers HTTP 429 with Retry-After: 1.
  • Data: the benchmark snapshot updated 2026-08-12. Published formats: reels, general, story, feed, tiktok, bundle, youtube_shorts, youtube, clean_copy, illustration. Published markets: Global creators, Korean creators. Published platform: instagram.

Rate Oracle tools

Send each call as one JSON-RPC message in a POST request to the address above. The tool's answer comes back in structuredContent, with the same JSON as text in content.

get_creator_rate_benchmark

Get creator rate benchmark. Retrieve one published creator-rate aggregate by content format, market, and optional platform.

Declares: read-only, not destructive, closed world (calls no outside service).

Input

FieldTypeRequiredNotes
formatstringyesnot empty. Published content format, such as reels or story
marketstringnonot empty. Published market label
platformstringnonot empty. Published platform label

Output (structuredContent)

FieldTypeAlways presentNotes
statobjectyes
stat.mediannumberyesat least 0
stat.p25numberyesat least 0
stat.p75numberyesat least 0
stat.currencyalways "USD"yes
nwhole numberyes5 to 9,007,199,254,740,991
periodstringyesdate format
caveatstringyesnot empty
source_urlstringyesuri format
retrievedAtstringyesdate-time format
attributionstringyesnot empty
platformstringyes
formatstringyes
marketstringyes

Example request

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_creator_rate_benchmark",
    "arguments": {
      "format": "reels",
      "market": "Korean creators"
    }
  }
}

Example response (structuredContent)

{
  "stat": {
    "median": 231,
    "p25": 136,
    "p75": 476,
    "currency": "USD"
  },
  "n": 215,
  "period": "2026-08-12",
  "caveat": "Aggregate from 215 distinct creators; actual quotes vary by audience, niche, usage rights, and timing.",
  "source_url": "https://www.storika.ai/reports/creator-rate-benchmarks-2026",
  "retrievedAt": "2026-10-23T13:26:59.395Z",
  "attribution": "Source: Storika Creator Rate Benchmarks 2026 (https://www.storika.ai/reports/creator-rate-benchmarks-2026)",
  "platform": "instagram",
  "format": "reels",
  "market": "Korean creators"
}

compare_creator_rate_benchmarks

Compare creator rate benchmarks. Compare two published Instagram creator-rate aggregates without blending their samples.

Declares: read-only, not destructive, closed world (calls no outside service).

Input

FieldTypeRequiredNotes
aobjectyes
a.formatstringyesnot empty
a.marketstringyesnot empty
bobjectyes
b.formatstringyesnot empty
b.marketstringyesnot empty

Output (structuredContent)

FieldTypeAlways presentNotes
statobjectyes
stat.aobjectyes
stat.a.mediannumberyesat least 0
stat.a.p25numberyesat least 0
stat.a.p75numberyesat least 0
stat.a.currencyalways "USD"yes
stat.bobjectyes
stat.b.mediannumberyesat least 0
stat.b.p25numberyesat least 0
stat.b.p75numberyesat least 0
stat.b.currencyalways "USD"yes
stat.medianDifferenceUsdnumberyes
stat.medianDifferencePercentnumberyes
nobjectyes
n.awhole numberyes5 to 9,007,199,254,740,991
n.bwhole numberyes5 to 9,007,199,254,740,991
periodstringyesdate format
caveatstringyesnot empty
source_urlstringyesuri format
retrievedAtstringyesdate-time format
attributionstringyesnot empty
aobjectyes
a.platformstringyesnot empty
a.formatstringyesnot empty
a.marketstringyesnot empty
bobjectyes
b.platformstringyesnot empty
b.formatstringyesnot empty
b.marketstringyesnot empty

Example request

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "compare_creator_rate_benchmarks",
    "arguments": {
      "a": {
        "format": "reels",
        "market": "Global creators"
      },
      "b": {
        "format": "reels",
        "market": "Korean creators"
      }
    }
  }
}

Example response (structuredContent)

{
  "stat": {
    "a": {
      "median": 1400,
      "p25": 750,
      "p75": 2250,
      "currency": "USD"
    },
    "b": {
      "median": 231,
      "p25": 136,
      "p75": 476,
      "currency": "USD"
    },
    "medianDifferenceUsd": 1169,
    "medianDifferencePercent": 506.06
  },
  "n": {
    "a": 26,
    "b": 215
  },
  "period": "2026-08-12",
  "caveat": "Thin sample (n=26); use this aggregate as directional evidence, not a guaranteed quote. Aggregate from 215 distinct creators; actual quotes vary by audience, niche, usage rights, and timing. Samples remain separate and are not blended.",
  "source_url": "https://www.storika.ai/reports/creator-rate-benchmarks-2026",
  "retrievedAt": "2026-10-23T13:26:59.401Z",
  "attribution": "Source: Storika Creator Rate Benchmarks 2026 (https://www.storika.ai/reports/creator-rate-benchmarks-2026)",
  "a": {
    "platform": "instagram",
    "format": "reels",
    "market": "Global creators"
  },
  "b": {
    "platform": "instagram",
    "format": "reels",
    "market": "Korean creators"
  }
}

estimate_campaign_budget

Estimate creator campaign budget. Multiply one published per-creator rate range by a creator count to estimate a campaign budget.

Declares: read-only, not destructive, closed world (calls no outside service).

Input

FieldTypeRequiredNotes
formatstringyesnot empty
marketstringyesnot empty
creatorCountwhole numberyes1 to 100,000

Output (structuredContent)

FieldTypeAlways presentNotes
statobjectyes
stat.mediannumberyesat least 0
stat.p25numberyesat least 0
stat.p75numberyesat least 0
stat.currencyalways "USD"yes
nwhole numberyes5 to 9,007,199,254,740,991
periodstringyesdate format
caveatstringyesnot empty
source_urlstringyesuri format
retrievedAtstringyesdate-time format
attributionstringyesnot empty
platformstringyes
formatstringyes
marketstringyes
creatorCountwhole numberyes1 to 9,007,199,254,740,991

Example request

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "estimate_campaign_budget",
    "arguments": {
      "format": "reels",
      "market": "Korean creators",
      "creatorCount": 10
    }
  }
}

Example response (structuredContent)

{
  "stat": {
    "median": 2310,
    "p25": 1360,
    "p75": 4760,
    "currency": "USD"
  },
  "n": 215,
  "period": "2026-08-12",
  "caveat": "Aggregate from 215 distinct creators; actual quotes vary by audience, niche, usage rights, and timing. This estimate multiplies per-creator aggregates and excludes usage rights, fees, tax, and production costs.",
  "source_url": "https://www.storika.ai/reports/creator-rate-benchmarks-2026",
  "retrievedAt": "2026-10-23T13:26:59.405Z",
  "attribution": "Source: Storika Creator Rate Benchmarks 2026 (https://www.storika.ai/reports/creator-rate-benchmarks-2026)",
  "platform": "instagram",
  "format": "reels",
  "market": "Korean creators",
  "creatorCount": 10
}

plan_creator_view_goal

Plan creators for a view goal. Divide a view goal by the published median average views of public TikTok creator profiles in one category (beauty, food or wellness) to get the number of creators it takes, rounded up. Average views are not a forecast of sponsored post delivery.

Declares: read-only, not destructive, closed world (calls no outside service).

Input

FieldTypeRequiredNotes
viewGoalwhole numberyes1,000 to 1,000,000,000. Total views wanted, a whole number
categoryone of "beauty", "food", "wellness"yesCreator category

Output (structuredContent)

FieldTypeAlways presentNotes
categorystringyes
benchmarkLabelstringyes
viewGoalwhole numberyes-9,007,199,254,740,991 to 9,007,199,254,740,991
creatorsAtMedianwhole numberyes1 to 9,007,199,254,740,991
medianAverageViewsnumberyesabove 0
nwhole numberyes5 to 9,007,199,254,740,991
periodstringyesdate format
caveatstringyesnot empty
source_urlstringyesuri format
methodology_urlstringyesuri format
retrievedAtstringyesdate-time format
attributionstringyesnot empty

Example request

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "plan_creator_view_goal",
    "arguments": {
      "viewGoal": 1000000,
      "category": "beauty"
    }
  }
}

Example response (structuredContent)

{
  "category": "beauty",
  "benchmarkLabel": "Beauty & Personal Care",
  "viewGoal": 1000000,
  "creatorsAtMedian": 292,
  "medianAverageViews": 3435,
  "n": 8257,
  "period": "2026-10-13",
  "caveat": "Average views on a public profile are not a forecast of sponsored post delivery: a sponsored post can earn more or fewer views than the creator's average.",
  "source_url": "https://www.storika.ai/benchmarks/category-beauty-and-personal-care",
  "methodology_url": "https://www.storika.ai/benchmarks/methodology",
  "retrievedAt": "2026-10-23T13:26:59.407Z",
  "attribution": "Source: Storika TikTok Creator Benchmarks, Beauty & Personal Care (https://www.storika.ai/benchmarks/category-beauty-and-personal-care)"
}

Rate Oracle errors

A tool error comes back as a normal result with isError set to true. Its text is CODE: message, or the MCP layer's input validation message.

CodeToolsMeaningExample callText returned
AMBIGUOUS_BUCKETget_creator_rate_benchmarkThe format matches more than one published aggregate. Add the market, and the platform if needed.get_creator_rate_benchmark {"format":"reels"}AMBIGUOUS_BUCKET: More than one published aggregate matches; specify market and platform.
UNPUBLISHED_BUCKETget_creator_rate_benchmark, compare_creator_rate_benchmarks, estimate_campaign_budgetNo published aggregate matches. Use a format and market from the published values; compare_creator_rate_benchmarks and estimate_campaign_budget look only at the instagram platform.get_creator_rate_benchmark {"format":"youtube_shorts","market":"Global creators"}UNPUBLISHED_BUCKET: No published aggregate matches that platform, format, and market.
INVALID_REQUESTget_creator_rate_benchmark, compare_creator_rate_benchmarks, estimate_campaign_budgetThe format is blank.get_creator_rate_benchmark {"format":" "}INVALID_REQUEST: format is required
SUPPRESSED_BUCKETget_creator_rate_benchmark, compare_creator_rate_benchmarks, estimate_campaign_budgetNever returned by these tools: the rate snapshot is checked before a tool runs, so a group below the 5-creator publication floor makes every request to /mcp fail with HTTP 500.
INVALID_SNAPSHOTget_creator_rate_benchmark, compare_creator_rate_benchmarks, estimate_campaign_budgetNever returned by these tools: the rate snapshot is checked before a tool runs, so a malformed snapshot makes every request to /mcp fail with HTTP 500.
UNPUBLISHED_BUCKETplan_creator_view_goalThe benchmark manifest has no rollup for one of the planner's categories (beauty, food, wellness). The planner checks the whole benchmark manifest on each call, so it then fails for every category; the rate tools keep working.
SUPPRESSED_BUCKETplan_creator_view_goalA planner category's rollup has fewer than 30 distinct creators (the larger of 5 and the manifest's minimumDistinctCreators). The planner checks the whole benchmark manifest on each call, so it then fails for every category; the rate tools keep working.
INVALID_SNAPSHOTplan_creator_view_goalThe benchmark manifest failed validation: missing or unordered average views, a missing page slug, or an invalid or future date. The planner checks the whole benchmark manifest on each call, so it then fails for every category; the rate tools keep working.
Input validation errorget_creator_rate_benchmark, compare_creator_rate_benchmarks, estimate_campaign_budget, plan_creator_view_goalArguments outside the tool's input schema (a missing field, a number out of range, a value not in the list) are refused before the tool runs.estimate_campaign_budget {"format":"reels","market":"Korean creators","creatorCount":0}MCP error -32602: Input validation error: Invalid arguments for tool estimate_campaign_budget: Invalid input at creatorCount

Request errors come back as an HTTP status with a JSON-RPC error body.

HTTP statusMessageWhen
400Parse error: Invalid JSON.The body was not valid JSON.
400Batch requests are not supported.The body was a JSON-RPC batch. Send one message per request.
403Origin is not allowed.A browser sent an Origin that is not on the allowed list.
405Method not allowed.The URL was opened with GET (or DELETE). MCP clients connect with POST.
406Not Acceptable: Client must accept both application/json and text/event-streamThe request did not accept both application/json and text/event-stream.
415Unsupported Media Type: Content-Type must be application/jsonThe request body was not sent as application/json.
429Rate limit exceeded.One IP address used up its burst of 600 requests on one server instance faster than it refills (10 a second). Wait 1 second (the Retry-After header) and try again.
500Internal server error.The server failed, including when the rate snapshot fails its checks. Try again, then report it.

Storika connector

The connector your assistant uses to work in your Storika organization. Find creators and set up campaigns from Claude, ChatGPT, Cursor or Grok through Storika's MCP connector. Find creators across sources with one ask, set up your brand and campaigns, send TikTok Shop invites and messages, and message creators on Meta Creator Marketplace. Nothing sends without your yes.

https://api.storika.ai/mcp
  • Address: https://api.storika.ai/mcp
  • Every assistant uses the same address. There is no separate address for testing.
  • You sign in with the account you use for Storika in the browser, so there is no API key to copy.
  • Storika is added by its address as a custom connector. It is not listed in app directories yet.
  • Limit: 100 requests every 60 seconds for each signed-in connection. Over it, the connector answers HTTP 429.

Ask your assistant to call whoami . It returns the Storika organization you are connected to, which is the fastest way to confirm you signed in to the right one.

After sign-in, your assistant reads the connector's current tools with tools/list. The tool set can change between versions, so an agent should fetch tools/list again at the start of each new session. The rules an agent follows once connected are in the agent setup guide.

Set it up in your assistant · Agent setup guide