Ask Claude or Cursor about a company by domain and the agent calls get_company for you. One URL, OAuth sign-in, 1 record per lookup.
This page is about setup and prompts. For the REST endpoint and the full field list, see Enrich Company. Other clients are on the MCP hub.
Connect the server
The server is https://api.leadocean.io/mcp. It signs in with OAuth 2.1, so there is no key to paste. Create a free account first.
Claude Code. The command format is from the Claude Code MCP docs, September 2026:
claude mcp add --transport http leadocean https://api.leadocean.io/mcpThen run /mcp in a session and finish the browser sign-in. claude mcp login leadocean does the same from the shell.
Cursor. Add a remote server to mcp.json, in the url form shown in the Cursor MCP docs, September 2026:
{
"mcpServers": {
"leadocean": {
"url": "https://api.leadocean.io/mcp"
}
}
}Cursor starts the OAuth sign-in the first time the server is used. Other clients follow the same pattern, see the LeadOcean MCP docs.
The tool
The tool is get_company. The server lists it as leadocean_get_company. It costs 1 record per call.
| Input | Type | Meaning |
|---|---|---|
domain | string | Website domain, for example stripe.com. Preferred key. |
linkedin_url | URL | LinkedIn company page. Use it when you have no domain. |
Send one of the two. Name-only lookups do not work, so the agent asks for a domain. The REST twin is POST /v1/companies/enrich, and it is the same lookup.
Use the domain when you have it. A LinkedIn URL works, but a domain is the preferred key and the less ambiguous one.
Prompts that work
| Prompt | What the agent calls | Records |
|---|---|---|
| "Enrich stripe.com and give me headcount band, HQ country and five detected technologies." | get_company with domain | 1 |
| "Check my balance, then enrich these 20 domains into a table. Skip any you cannot find." | get_account, then get_company per domain | 20 at most |
| "How many people can I email at stripe.com? Do not pull anyone yet." | count_leads with domain | 0 |
Put the record limit in the prompt. "Stop after 25 records" is enough for the agent to hold a batch.
The agent picks the tool from your wording. A question about size or reach goes to count_leads, which is free. A request for firmographics on a named company goes to get_company, which costs 1 record.
What the agent gets back
The result is one leadocean.company.v1 object plus a meta block. Field groups are from the company docs, September 2026. Values below are placeholders.
{
"company": {
"company_data": {
"company_name": "Example Inc",
"company_domain": "example.com",
"company_employees": { "number_of_employees": 1200, "number_of_employees_code": "1001-5000" },
"company_linkedin_followers": 50000,
"company_primary_address": { "city": "City", "country_code": "US" }
},
"company_detected_technologies": [
{ "technology_product": { "name": "Product" }, "technology_category": { "name2": "Category" } }
],
"company_metrics": { "completion_score": 90, "marketability_score": 80 }
},
"meta": { "source": "...", "schema": "leadocean.company.v1" }
}Unknown values are null, never guessed. Revenue and funding are thinly held, so an empty field is normal, not an error. Tell the agent to write "not held" in the table rather than fill the gap.
Free checks first
count_leads, list_enum_values and get_account spend no records. Run them before any paid call.
We ran count_leads with domain: ["stripe.com"] on 2026-09-30. It returned total: 10301, totalIsExact: true, credits: 0. That is mailable people at that domain (verified, catch_all_valid or catch_all), not everyone we hold. Sizing the people first tells the agent whether a company is worth a paid lookup.
Troubleshooting
| Error | Cause | Fix |
|---|---|---|
| 401 | The OAuth sign-in is missing or expired. | Run /mcp in Claude Code and re-authenticate. In Cursor, sign in again from the MCP settings. |
| 402 | The free 1,000 records are spent. The free plan is one-off, it does not reset. | Move to Pro at $499 a month. |
| 429 | Too many calls at once. The limit is 100 requests per second per key. | Wait one second and retry. Ask the agent to run lookups in small batches. |
| Wrong enum | A filter value is not in the catalogue, for example a made-up industry. | Call list_enum_values with a search term and use the exact string it returns. |
FAQ
Do I need an API key for MCP?
No. The MCP server uses OAuth sign-in. The REST API uses an x-api-key header. Both draw on the same records.
What does a call cost, and what does a miss cost?
A found company costs 1 record. A miss costs nothing, over MCP or REST. The REST endpoint returns a 404 for a company we hold nothing for, and the MCP tool does the same without charging a record.
Can the agent enrich by company name?
No. It needs a domain or a LinkedIn company URL. If you have a person instead, the agent can read the employer domain from their profile, then call get_company. A related field-level view is company revenue with MCP.
The free plan is 1,000 records, one-off, no card. For a packaged version of these steps, see the Enrich Company skill.
Enrich your first company from Claude, free
Free to start. No credit card. 1,000 records to spend whenever you like.
Get your free API key →