Documentation

One interface to discover, inspect, and run tools & APIs — billed against a single workspace balance. No per-provider keys.

Overview

OpenTools brokers calls to third-party tools on your agent's behalf. The workflow is always the same:

discover → inspect → run → poll

  1. discover — search the catalog in natural language.
  2. inspect — read the exact input schema and price.
  3. run — execute; pay per call from one balance.
  4. poll — async runs return a runId to check.

Connect three ways — a Skill, a remote MCP server, or the CLI. All share the same registry and balance. Browse the catalog →

Verify a first outcome for free

From the repository, use an owned disposable local PostgreSQL database named opentools_demo_test. The demo resets that database, refuses the application database, and disables Stripe and CDP credentials.

$ pnpm install --frozen-lockfile

Supply E2E_DATABASE_URL privately, set E2E_DISPOSABLE=1, and choose an unused E2E_PORT. Then run:

$ pnpm demo:free

It discovers and inspects a deterministic free OpenAPI fixture, sets daily and per-call caps to zero, executes and checks persisted output, retries once and performs independent repeat work. A priced local fixture must be blocked. The final JSON verifies unchanged balance, no holds and no Stripe payments or provider earnings.

This proves the local integration loop. It provides no checkout, customer revenue or on-chain settlement evidence. Run pnpm preflight for offline configuration readiness; optional read-only metadata probes are documented in the repository E2E guide.

Fixture setup, readiness checks and pilot instructions →

Quickstart

Skill

Drop the OpenTools skill into your agent's chat:

$ set up https://opentools.fulinlabs.com/SKILL.md

MCP

Point any MCP client at the remote server:

› https://opentools.fulinlabs.com/mcp

Authenticate with a Bearer API key (below). Visit the endpoint in a browser for connection details.

CLI

Install the binary and complete setup:

› npm i -g @aeither/opentools
› opentools setup --client <your-agent-name>

Authentication

Create a key in the dashboard under API Keys, then authorize requests with a Bearer token:

Authorization: Bearer opentools_live_…

Or register it with the CLI:

› opentools keys add -k <opentools_live_...> -l main

CLI reference

Run opentools <command> --help for exact flags — the CLI is the source of truth.

opentools discover -q "<need>"

Search the catalog. -l <limit>, -s <minScore>, -j for JSON.

opentools inspect -p <provider> -e <endpoint>

Show the input schema and pricing.

opentools run -p <provider> -e <endpoint> -i '<json>'

Execute. -f <file>, --query, --path, -w (wait), -o <file>.

opentools runs list

Recent runs.

opentools runs get -r <runId> -w

Poll a run to completion.

opentools runs stop -r <runId>

Stop a stoppable in-flight run.

opentools balance

Show the workspace balance.

opentools keys ...

add / list / activate / remove.

API reference

The HTTP API lives under /v1 at https://opentools.fulinlabs.com. All routes take a Bearer API key.

POST/v1/discover

Search the catalog for endpoints matching a natural-language query.

GET/v1/inspect

Full input schema, pricing, and notes for one endpoint.

POST/v1/run

Execute an endpoint. Sync returns results; async returns a runId.

GET/v1/runs

List recent runs for the workspace.

GET/v1/runs/:runId

Status and results of a run.

GET/v1/wallet/balance

Current workspace balance.

GET/v1/keys

List API keys. POST to create, DELETE to revoke.

Pricing & billing

  • Every endpoint publishes its provider rate up front — per call or per result. OpenTools adds a 10% service fee on top, shown before every run. For example, a $0.001 provider rate bills $0.0011. No subscriptions or minimums.
  • A run is billed only when the provider delivers results. Provider errors cost nothing.
  • New workspaces start with $1 in free credit. It is used first and works on every endpoint except pay-per-call x402 ones, which need purchased credit. Top up any time from the Balance page.
  • Set daily and per-call spend caps under Budgets. A run blocked by a cap is terminal — adjust the cap and retry.

Ready to try it? Create a workspace and get your $1 in free credit.

Get started →