Open Source·AI Agent Infrastructure

Ocean.io. Agent-Native.

Lookalike search. People search. Enrichment. Email + phone reveal. Full Ocean.io control from the terminal.

Ocean.io is the best lookalike GTM platform going — 67M+ companies, 250M+ people, and the ability to clone your best customers into net-new TAM.
So we built ocean-agent-cli — 20 commands across 8 groups, all exposed as 18 MCP tools, wired for autonomous prospecting from day one. Your agent can finally fish in the ocean.

20
Commands
8
Command Groups
18
MCP Tools
OpenClaw
OpenClaw
CLI / MCP
20 commands · 8 command groups · 18 MCP tools · one npm install

Why ocean-agent-cli Exists

Ocean.io is the best lookalike GTM platform out there — clone your best customers, search 67M+ companies and 250M+ people, enrich accounts, and reveal contacts. But all of that lived behind a web app and a raw REST API. This puts the whole platform behind one CLI that’s also an MCP server: install it, set one token, and your agent can search, enrich, and reveal.

Without ocean-agent-cli

  • Hand-rolled REST calls — auth headers, v2/v3 base URLs, pagination, all bespoke
  • Reveal and bulk enrich are async — you wire up webhook plumbing every time
  • Filters fail silently — no field list or autocomplete means empty result sets
  • Lookalike discovery is locked inside the web app, not scriptable
  • No MCP wrapper — every agent integration starts from scratch

With ocean-agent-cli

  • 20 commands with flat, JSON-first output — pipe straight into an agent
  • Search, enrich, lookup, reveal, and autocomplete behind one interface
  • Pass --webhook-url and bulk reveal / enrich just works
  • data-fields + autocomplete so filters match on the first try
  • 18 MCP tools — plug directly into Claude Code, Claude Desktop, or Cursor

In Plain English

No API docs required. Here is what your agent can do, the way you would actually say it.

  • 🔎

    Clone your best accounts. Hand it your top customers and it finds lookalike companies to go after next.

  • 👥

    Find the right people. Search by job title, seniority, location, and company size across 250M profiles.

  • Enrich anything. Drop in a domain or a LinkedIn URL and get the full company or person back.

  • 📧

    Reveal contacts. Pull verified work emails and direct dial phone numbers, in bulk.

  • 🤖

    Plug into your agent. Every command is also an MCP tool, so Claude or Cursor can run it natively.

And getting started takes exactly one line:

npm install ocean-agent-cli

That is it. Your agent can now fish in the ocean. 🎣

What Your Agent Can Do

20 commands across 8 groups — every Ocean.io GTM operation your agent needs.

Lookalike Company Search

Ocean.io's superpower, now agent-native. Feed it your best customers and surface companies that look just like them — filtered by industry, headcount, geography, and tech. Your agent builds a net-new TAM from the accounts you already win.

Company & People Search

Query 67M+ company profiles and 250M+ people with JSON filters — job titles, seniority, locations, industries, headcount, keywords. The v3 search endpoints return clean, paginated results your agent can act on in one pass.

Single & Bulk Enrichment

Enrich a company by domain, or a person by LinkedIn URL, ocean ID, or name + company domain — synchronously, no webhook needed. Need volume? Bulk enrich thousands of companies or people async, delivered to your webhook.

Email & Phone Reveal

Reveal verified work emails and direct-dial phone numbers for any ocean ID. Runs async through a webhook so your agent fires a batch, then picks up the contacts the moment Ocean.io returns them — no polling a UI.

Lookup by Identifier

Already have domains, LinkedIn handles, or ocean IDs? Resolve them straight to full company or people records — no search query required. Perfect for hydrating a list your agent pulled from somewhere else in the stack.

Filter Normalization

Autocomplete for companies, job titles, locations, keywords, and skills. Agents normalize "VP of Sales" or "Greater Boston" into values Ocean.io actually recognizes before searching — so filters match instead of returning empty.

Credits & Data Fields

Check search, email, and phone credits plus daily limits before a run, so an agent never blows the budget mid-task. List every valid filter field name up front to build queries that pass on the first try.

MCP Server Mode

18 MCP tools registered for direct AI agent connectivity. Run ocean-agent-cli as an MCP stdio server — or point at the hosted endpoint — and give Claude, Cursor, or any MCP-compatible agent full Ocean.io access with one config entry.

Agent Workflows

Real use cases — what your agent can run autonomously today.

Lookalike Expansion — Clone Your Best Accounts

Here are my 10 best customers. Find me 100 companies that look just like them and enrich the top matches.

This is what Ocean.io was built for. The agent pulls valid filter fields, searches companies that mirror your winners by industry, size, and geography, then enriches the strongest matches into a ready-to-work account list — net-new TAM from the accounts you already close.

01
ocean data-fields list --pretty

Pull valid filter field names before building the query

02
ocean search companies --company-filters '{"industries":["software"],"employeeCount":{"min":50,"max":500},"countries":["us"]}' --limit 100 --pretty

Surface 100 lookalike companies in one call

03
ocean enrich company --domain acme.com --pretty

Enrich each top match into a full company record

Persona Prospecting — Find the People + Their Emails

Find VP Sales at US SaaS companies with 50-200 employees, then reveal their work emails.

Agent normalizes the job title so the filter actually matches, runs a people search across 250M profiles, then fires an async email reveal to a webhook. A full persona list with verified contacts, no manual list-building.

01
ocean autocomplete job-titles --query "VP Sales" --pretty

Normalize the title to values Ocean.io recognizes

02
ocean search people --people-filters '{"jobTitleKeywords":{"anyOf":["VP Sales"]},"countries":["us"]}' --limit 25 --pretty

Search people matching the persona

03
ocean reveal emails --ocean-ids "id1,id2,id3" --webhook-url "https://yourapp.com/webhooks/ocean"

Reveal verified emails async to your webhook

Inbound Enrichment — Identify a Form Fill in Seconds

Someone from tesla.com just filled out the demo form. Tell me everything about the company and the person.

Agent enriches the company by domain and the person by name + domain in two synchronous calls — no webhook, no waiting. By the time the rep opens the lead, the firmographics and contact context are already attached.

01
ocean enrich company --domain tesla.com --pretty

Pull firmographics for the inbound domain

02
ocean enrich person --name "Jane Doe" --company-domain tesla.com --pretty

Resolve the person from name + company

03
ocean enrich person --linkedin "https://linkedin.com/in/janedoe" --pretty

Or enrich straight from a LinkedIn URL

Reveal at Scale — Hydrate a List with Contacts

I have 5,000 ocean IDs from this morning's search. Get me every email and direct-dial phone.

Reveal runs async by design — the agent fires a bulk email job and a bulk phone job to a webhook, then continues working while Ocean.io processes. Contacts land back at your endpoint, ready for the next stage of the pipeline.

01
ocean credits balance --pretty

Confirm enough email + phone credits before the run

02
ocean reveal emails --ocean-ids "id1,id2,...,id5000" --webhook-url "https://yourapp.com/webhooks/ocean"

Fire the bulk email reveal job

03
ocean reveal phones --ocean-ids "id1,id2,...,id5000" --webhook-url "https://yourapp.com/webhooks/ocean"

Fire the bulk direct-dial phone reveal job

GTM Loop — Ocean to Clay to Instantly

Build a lookalike list, enrich and reveal contacts, then hand it to Clay and Instantly for outreach.

Wired into your OpenClaw GTM agent, ocean-agent-cli becomes the discovery and contact layer for the whole stack. Lookalike companies in, enriched + revealed contacts out — handed to Clay for further enrichment and Instantly for send. One connected loop, zero manual exports.

01
ocean search companies --company-filters '{"similarTo":["yourbestcustomer.com"]}' --limit 200 --pretty

Surface lookalike companies from a seed account

02
ocean search people --people-filters '{"jobTitleKeywords":{"anyOf":["Head of Growth"]}}' --limit 50 --pretty

Find the right persona inside those companies

03
ocean reveal emails --ocean-ids "..." --webhook-url "https://yourapp.com/webhooks/ocean"

Reveal contacts, then pipe to Clay + Instantly

Quick Start

1Install

terminal
npm install -g ocean-agent-cli
ocean --version

# Or run without installing
npx ocean-agent-cli credits balance --pretty

2Authenticate

One token gets you everything. Use the OCEAN_API_TOKEN environment variable, an interactive ocean login, or a per-command flag — credentials are stored at ~/.ocean/config.json.

terminal
# Option A — environment variable (recommended)
export OCEAN_API_TOKEN="your-token"
ocean credits balance --pretty

# Option B — interactive login (validates + saves)
ocean login --api-token your-token

# Option C — per command
ocean search companies --api-token your-token --pretty

3First commands

terminal
# Check credits and list valid filter fields
ocean credits balance --pretty
ocean data-fields list --pretty

# Enrich a company by domain (sync, no webhook)
ocean enrich company --domain tesla.com --pretty

# Search companies and people with JSON filters
ocean search companies --company-filters '{"industries":["software"],"countries":["us"]}' --limit 10 --pretty
ocean search people --people-filters '{"jobTitleKeywords":{"anyOf":["VP Sales"]},"countries":["us"]}' --limit 10 --pretty

Commands Reference

20 commands across 8 groups. Default output is JSON; add --pretty for human-readable, --quiet for exit-code-only automation, or --fields to select specific output fields.

search2 commands
search companiesQuery 67M+ companies with JSON filters (v3) — industry, size, geo, keywords
search peopleQuery 250M+ people with JSON filters (v3) — titles, seniority, location
enrich4 commands
enrich companyEnrich a single company by domain (sync, no webhook)
enrich personEnrich a person by LinkedIn, ocean ID, or name + company domain (sync)
enrich companiesBulk-enrich many domains async — delivered to your webhook
enrich peopleBulk-enrich many people async — delivered to your webhook
lookup2 commands
lookup companiesResolve domains straight to full company records
lookup peopleResolve LinkedIn handles or ocean IDs to full people records
reveal2 commands
reveal emailsReveal verified work emails for ocean IDs (async, webhook)
reveal phonesReveal direct-dial phone numbers for ocean IDs (async, webhook)
autocomplete5 commands
autocomplete companiesSuggest matching company names for a query
autocomplete job-titlesNormalize a job title to recognized filter values
autocomplete locationsResolve a location string to valid geo filters
autocomplete keywordsSuggest valid keyword filter values
autocomplete skillsSuggest valid skill filter values
warmup1 command
warmup companiesPre-warm company records for faster downstream calls
credits1 command
credits balanceCheck search, email, and phone credits plus daily limits
data-fields1 command
data-fields listList every valid filter field name for building searches

Plus login, logout, and mcp to round out the set. Bulk enrich and reveal run async — pass --webhook-url and results land at your endpoint. Every data command is also registered as an MCP tool — 18 in total.

MCP Server Setup

Add ocean-agent-cli as an MCP server to give Claude or Cursor full Ocean.io access — all 18 tools available natively, no custom integration required.

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

claude_desktop_config.json
{
  "mcpServers": {
    "ocean": {
      "command": "npx",
      "args": ["ocean-agent-cli", "mcp"],
      "env": {
        "OCEAN_API_TOKEN": "your-token"
      }
    }
  }
}

Claude Code (CLI)

terminal
claude mcp add ocean -- npx ocean-agent-cli mcp

Make sure OCEAN_API_TOKEN is set in your environment before running Claude Code.

Cursor / VS Code

Add to .cursor/mcp.json or .vscode/mcp.json in your project:

.cursor/mcp.json
{
  "mcpServers": {
    "ocean": {
      "command": "npx",
      "args": ["ocean-agent-cli", "mcp"],
      "env": {
        "OCEAN_API_TOKEN": "your-token"
      }
    }
  }
}

Hosted MCP Endpoint

No local process? Point an MCP-aware client straight at Ocean.io’s hosted endpoint:

hosted endpoint
https://api.ocean.io/mcp/?api-token=<your-token>
OpenClaw
Ocean.io

Want us to build this into your stack?

We set up ocean-agent-cli as part of your OpenClaw agent infrastructure — wired to lookalike discovery, enrichment, and contact reveal, then handed to Clay and Instantly. Ocean.io becomes the live prospecting engine your agent drives end to end.

🌊 Lookalike discovery — agent clones your best customers into net-new TAM
🤖 Agent integration — ocean-agent-cli wired into your OpenClaw GTM agent as MCP tools
🔄 Full-stack automation — Ocean.io + Clay + Instantly + n8n in one connected loop
Star on GitHub