Skip to content

Core Concepts

Tools

A tool is a piece of code you deploy to the platform and execute via an API call. Each tool has:

  • A unique name scoped to your organization (org-slug/tool-name)
  • A type: function, mcp, or storm
  • One or more versions
  • Optional pricing (free or paid per execution)

Tool types

Function

The standard type. You write a handler in Python, JavaScript, or Lua. The handler receives an event object (your input) and a context object (execution metadata) and returns a result.

MCP (Model Context Protocol)

An MCP tool exposes functions as tools for AI agents. It follows the Model Context Protocol specification. You write the server logic in Python, JavaScript, or Lua. See the MCP guide for details.

Storm

A specialized type for batch data processing. Storm tools work on digital assets (files stored in the platform) rather than inline code. The runtime is automatically set to storm. See the Storm guide for details.


Runtimes

RuntimeDisplay nameAvailable for
python:3.13Python 3.13Function, MCP
javascriptJavaScript V8Function, MCP
luaLuaFunction, MCP
stormStormStorm only (set automatically)

Python 3.13 is the default runtime when you create a new tool.


Versions

Every time you publish your code, a new version is created. Versions are immutable — once published, the code for that version cannot change. You can create new versions on top of existing ones.

Each version has:

  • A semantic version number (e.g. 1.0.0, 1.0.1)
  • A runtime
  • One or more code files
  • Environment variable configuration
  • Memory and timeout limits
  • An optional price per execution

A version can be in one of these states:

  • Draft — only visible to you and your organization
  • Private — published but visible to your organization only
  • Public — published to the marketplace and discoverable by everyone

Organizations

Your tools are owned by an organization (your account or a team). Each organization has a unique slug that appears in all your tool URLs: marketplace.rival.io/org-slug/tool-name.


Billing and balance

Every execution has two cost components:

Cost componentWhat it coversCharged to
Compute costInfrastructure: memory × runtime × rate (CPU) or runtime × rate (GPU)Always charged, regardless of who runs the tool
Function cost (BasePrice)Fee set by the tool creator (price_per_api_request)Charged only when executing a tool outside your own organization

Own organization — You pay compute cost only. The function fee (BasePrice) is waived because you are the owner.

Outside your organization — You pay compute cost + function cost. The tool creator earns the function fee.


Digital assets

Digital assets are files stored in the platform’s cloud storage. You can upload and manage them from the Digital Assets section in the UI.

Each digital asset has:

  • A unique ID (UUID) used to reference it in API calls
  • A file reference path — copy it by clicking the Copy Ref button on the asset

Digital assets are used as input/output with Storm tools. The file reference (copied via Copy Ref) maps to the asset.file property and is used as the topic_file field in a Storm execution event. The asset ID is used for source_asset_id and target_asset_id fields. See the Storm guide for details.