Creating a Tool
Overview
A tool on Rival packages executable logic - a Function, an MCP server, or a Storm workflow - into a reusable, versioned endpoint that you can run from the app or call via API.
You build tools in Studio, which pairs a RivalBot chat with a tabbed editor. There are two ways to work:
- Describe it to RivalBot (recommended). Tell RivalBot what you want and it generates the code, test cases, metadata, and icon - you review and refine in the tabs.
- Edit directly. Write code, add test cases, and fill in the listing yourself.
Either way it’s the same Studio - the chat and the tabs stay side by side the whole time.
Before you start
- You have access to an organization.
- You know what your tool should do and what its inputs and outputs look like.
- The language/runtime (Python, Python 3.13 — Fast, JavaScript, Lua, or Storm) is set when the tool is created - RivalBot picks one from your description, and it’s shown read-only on the listing afterward.
Opening Studio
- Sign in at cortexone.rival.io.
- On the home screen, describe what you want in the RivalBot prompt (“What do you want to get done?”) - or open Studio from the sidebar.
- To start from a blank tool, click New tool; to have RivalBot draft one, just describe it.
When RivalBot finishes, you land in the Studio editor at /studio/{org}/{tool} with code, test cases, and metadata already drafted. See Building with RivalBot for the chat-first flow.
The Studio editor
Studio has two halves: the RivalBot chat on the left (resizable) and a row of tabs on the right. Nothing is a rigid step - move between tabs freely and chat with RivalBot at any point to generate or fix things.
Tabs
- Preview - the test playground. Create, import, and manage test cases (events), edit each event’s input as JSON or with the Form Builder (which also defines the input schema), and Run the tool against your draft to see output.
- Analytics - the consumer-facing view of the published tool: stats (earnings, executions, rating, price), reviews, Q&A, and version history. Also where you Deprecate or Delete.
- Code - the code editor. Add and edit files (Python and Python 3.13 — Fast support multiple files; JavaScript and Lua are single-file), Save, and attach Secrets from the sidebar (see Secrets). For Storm tools this is a Topic File tab instead.
- Integrate - ready-to-copy API snippets (cURL, JavaScript, Python) plus the REST and webhook endpoints (and an MCP endpoint for MCP tools). See APIs.
- Listing - your marketplace listing: Identity (icon, name, one-line tagline, category, sectors, tags), Overview (what it does, how it works, strengths, limitations), Documentation, and Changelog. Most fields have a Generate / Improve with AI button that hands off to RivalBot.
Publishing your tool
Publish from the Publish button in the Studio header - it opens a menu where you set:
- Distribution - Unlisted (private, runnable via a direct link) or Marketplace (public, listed, earns revenue). Only Owners and Admins can publish to the Marketplace.
- Version bump - major, minor, or patch.
- Events to include, and for Marketplace tools a price per run.
The menu also shows a Requirements checklist you must clear first:
- Tagline written (Listing → Identity)
- Overview written - what it does, how it works, strengths, and limitations (Listing → Overview)
- Documentation written (Listing → Documentation)
- Icon set (Listing → Identity)
- At least 1 use case - a test case on the Preview tab
- Changelog written
- Pricing chosen (Marketplace only)
Each item links to the tab where you fix it. Once everything’s checked you can publish - public tools are queued for marketplace review and go live once approved. See Versions & Publishing for the full release flow.
After publishing
Your tool gets a stable URL and is callable via the Rival API. It also shows up in My Tools (/my-tools) under the Built by you tab, where you can monitor runs, publish new versions, edit the listing, or deprecate / delete it.