Provider catalog
Every callable provider tool, discoverable through one interface.
The catalog is the set of provider tools you can call from a tool column, an enrichment waterfall, a workflow step, or directly via oxygen tools run.
Two surfaces
| Surface | Naming | Implementation |
|---|---|---|
| Native | <provider>.<operation> (e.g. blitzapi.person_enrich) | Oxygen-normalized schema, costs, and errors |
| App actions | composio.<toolkit>.<action> | Broad app-action coverage when a native adapter is not available |
Prefer the native equivalent when both exist.
Tool descriptor shape
| Field | Notes |
|---|---|
tool_id | provider.operation |
provider | Provider name |
display_name | Human-readable |
description | What the tool does |
categories | Capability tags |
cost.cost_hint | Rough credit cost per call |
estimated_credits_per_call | Concrete estimate |
side_effect_class | read or write |
latency_band | fast, medium, slow |
rate_limit | Provider limit |
fallback_to | Recommended providers if this one fails |
prefer_over | Older providers this one supersedes |
supports_managed | True if Oxygen holds the key |
supports_byok | True if you can connect your own key |
byok_required | True if only BYOK works (no managed option) |
input_schema, output_schema | JSON Schema for inputs and outputs |
enum_catalogs | Allowed values for enum inputs |
Searching
oxygen tools search <query> --json
oxygen tools search people --capability mobile_phone --only-runnable --json
oxygen tools get <tool-id> --json
oxygen tools enums list --json
oxygen tools enums get blitzapi industry --query software --jsontools search accepts free-text plus capability filters. tools get returns the full descriptor, including input and output schemas.
Running a tool
oxygen tools run <tool-id> --input-json '{"first_name":"Ada","domain":"acme.com"}' --mode dry-run --json
oxygen tools run <tool-id> --input-json '{...}' --mode live --jsonUse dry-run first. Live calls can consume credits or write externally depending on the tool, so keep one-off live runs small and prefer table runs for batches.
Bulk runs go through a run:
oxygen table-ingestions create-tool-page <table-id> --tool <tool-id> --request-json '{...}' --jsonThis writes each result as a row.
Checking access
oxygen tools search <query> --only-runnable --json
oxygen integrations list --json--only-runnable filters to tools the active org can currently call. If a tool is missing, check whether it requires a connected integration. MCP also exposes oxygen_tools_check_access for agents that need a structured access check.
Related
- Columns — wrapping a tool as a per-row column.
- Waterfalls — running providers in fallback order.
- Integrations — connecting BYOK accounts.