> ## Documentation Index
> Fetch the complete documentation index at: https://docs.baselayer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP Tools

The Baselayer MCP server exposes 19 tools. Each one calls the same service that backs the matching REST endpoint, so billing, sandbox behavior, permissions, and response shapes are identical across both surfaces. The linked API reference page for each tool documents the full response schema.

Tools come in pairs: a tool that starts work and a `get_*` tool that reads it back by `id`. The [MCP Overview](/docs/mcp.md#synchronous-and-asynchronous-tools) explains when your assistant needs to poll.

> [!NOTE]
>
> ### Field names
>
> Field names below are the exact JSON keys the tool accepts. Your assistant fills them in from your conversation, so you rarely type them yourself, but knowing them helps when you want to be specific ("search liens in Texas and Oklahoma only").

### Business Search

The foundation product ([Business Search basics](/docs/business-search-basics.md)). A business search matches a legal name and address against Secretary of State registrations and returns the verified entity, its officers, and verification signals.

#### `search_business`

Search for a business by its legal name and legal address. Returns a completed business search with matched registrations, officer details, and verification signals such as TIN match and address match. Synchronous, with a 30 second wait.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `name` | string | Yes | Registered legal name of the business. |
| `address` | string | Yes | Registered legal address of the business. |
| `officer_names` | string\[] | No | Officer names to include in matching. |
| `website` | URL | No | Business website. |
| `phone_number` | string | No | Business phone number. |
| `email` | string | No | Business email address. |
| `alternative_names` | string\[] | No | DBA or trade names. |
| `tin` | string | No | Nine digit TIN or EIN. Enables TIN matching. |
| `reference_id` | string | No | Your own identifier for this search, up to 128 characters. |

**Returns** a business search: `id`, `state`, the matched business with its registrations and officers, and verification signals. See [Create a business search](/api-reference/search/post-search.md) in the API reference.

**Example prompt:** "Verify Acme Holdings LLC at 500 Main St, Austin TX 78701. The EIN is 12-3456789."

#### `search_business_with_orders`

Start a business search that also orders add-on products. At least one option is required. Asynchronous: returns the `PENDING` search immediately, and your assistant polls `get_business_search` until it completes.

Accepts every `search_business` parameter plus:

| Parameter | Type | Required | Description |
| - | - | - | - |
| `options` | string\[] | Yes | One or more of `Order.WebsiteAnalysis`, `Order.NaicsPrediction`, `Order.Pep`, `Order.Enhanced`. |

`Order.Enhanced` requires both `Order.WebsiteAnalysis` and `Order.NaicsPrediction` in the same request.

**Example prompt:** "Run a full KYB on Acme Holdings LLC at 500 Main St, Austin TX, including website analysis and industry classification."

#### `get_business_search`

Retrieve a business search by `id`: its state and, once `COMPLETED`, the matched registrations, verification signals, and results of any ordered add-ons.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `id` | UUID | Yes | The search `id` returned by a search tool. |

#### `get_business`

Retrieve a business's full verified record by `id`: registrations, officers, watchlist hits, industry classification, and risk signals. Use it to expand a business found through `search_business`.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `id` | UUID | Yes | The business `id` from a completed search. |

**Returns** the business record. See [Get a business](/api-reference/business/get-business.md) in the API reference.

### International Business Search

Verify a business registered outside the US directly at its country's corporate registry ([International products](/docs/baselayer-international-products.md)). For a business registered in a US state or territory, use `search_business` instead.

#### `search_international_business`

Search for a business at its country's registry by name and address, by registration (filing) number, or both. Returns the matched registration, KYB and Risk scores, and watchlist hits. Synchronous, with a 30 second wait. A search that is still `PENDING` after that (usual with `Order.Enhanced`) is returned as is, and your assistant polls `get_international_business_search` until it completes.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `iso2_country_code` | string | Yes | Two letter code of the country of registration. Must be one of the [supported countries](/docs/baselayer-international-products.md#supported-countries). |
| `name` | string | No | Registered name of the business. Required together with `address` unless `filing_number` is given. |
| `address` | string | No | Registered address of the business. Required together with `name` unless `filing_number` is given. |
| `filing_number` | string | No | The company's registration number at the registry. Searched first. A `name`, if also given, is the fallback when no company matches the number. Up to 128 characters. |
| `officer_names` | string\[] | No | Officer names to include in matching. |
| `website` | string | No | Business website. |
| `phone_number` | string | No | Business phone number. |
| `email` | string | No | Business email address. |
| `alternative_names` | string\[] | No | Trade or alternative names. |
| `options` | string\[] | No | Add-ons, each billed separately: `Order.Pep` (politically exposed person screening) and `Order.Enhanced` (directors, beneficial owners, shareholders, share capital). |
| `reference_id` | string | No | Your own identifier for this search, up to 128 characters. |

`Order.Enhanced` is available only in [countries marked ★](/docs/baselayer-international-products.md#supported-countries). In any other country the tool returns an error saying so, and nothing is ordered.

**Returns** an international business search: `id`, `state`, and once `COMPLETED` the matched registration, KYB and Risk scores, and watchlist hits. See [Post International Search](/api-reference/international/post-international-search.md) in the API reference.

**Example prompt:** "Verify Northwind Trading Ltd in the UK, company number 01234567, and include beneficial owners."

#### `get_international_business_search`

Retrieve an international business search by `id`: its state and, once `COMPLETED`, the matched registration and KYB and Risk scores.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `id` | UUID | Yes | The search `id` returned by `search_international_business`. |

**Returns** the international business search. See [Get International Search](/api-reference/international/get-international-search.md) in the API reference.

### Industry Classification

See the [Industry Prediction user guide](/docs/industry-prediction-user-guide.md).

#### `predict_naics`

Predict a business's NAICS industry classification from its name, address, and any other context you have. Returns the predicted NAICS code, SIC codes, a risk level, and reasoning. Synchronous, with a 30 second wait.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `name` | string | Yes | Business name. |
| `address` | string | Yes | Business address. |
| `alternative_names` | string\[] | No | DBA names, up to 10. |
| `officer_names` | string\[] | No | Officer names. |
| `website` | string | No | Business website. |
| `phone_number` | string | No | Business phone number. |
| `email` | string | No | Business email address. |
| `reference_id` | string | No | Your own identifier for this request. |

See [Create a NAICS prediction request](/api-reference/industry-prediction/post-naics-prediction-request.md) in the API reference for the full response.

**Example prompt:** "What industry is Ray's Famous Pizza at 27 Prince St, New York NY in? Give me the NAICS code."

#### `get_naics_prediction`

Retrieve a NAICS prediction by `id`: its state and, once `COMPLETED`, the predicted NAICS code, SIC codes, risk level, and reasoning.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `id` | UUID | Yes | The prediction request `id`. |

### Lien Search

See [Lien Search basics](/docs/lien-search-basics.md) for how lien data is sourced.

#### `search_liens`

Search UCC and tax lien filings for a business or person name in the US states you specify. Returns the filings found. Synchronous, with a 30 second wait.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `name` | string | Yes | Business or person name to search. |
| `search_states` | string\[] | Yes | Two letter state codes. All 50 states are supported; DC and territories are not. |

**Returns** a liens search: `id`, `state`, and filings with filing number, type, date, status, and secured and debtor parties. See [Start an ad hoc lien search](/api-reference/lien-search/start-liens-adhoc-search.md) in the API reference.

**Example prompt:** "Are there any UCC filings or tax liens against Acme Holdings LLC in Texas or Delaware?"

#### `get_liens_search`

Retrieve a liens search by `id`: its state and, once `COMPLETED`, the lien filings found.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `id` | UUID | Yes | The liens search `id`. |

### Docket Search

See [Litigation and Bankruptcy Search basics](/docs/litigation-bankruptcy-search-basics.md).

#### `search_litigations`

Search court dockets for civil litigations and bankruptcies involving a business or person name. Searches both by default. Synchronous, with a 30 second wait.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `name` | string | Yes | Business or person name to search. |
| `options` | string\[] | No | `Order.Litigations`, `Order.Bankruptcy`, or both. Defaults to both. |

**Returns** a docket search: `id`, `state`, and the dockets found with court, case number, filing date, parties, and case type. See [Start an ad hoc docket search](/api-reference/litigation-&-bankruptcy/start-docket-adhoc-search.md) in the API reference.

**Example prompt:** "Has Acme Holdings LLC filed for bankruptcy or been party to any lawsuits?"

#### `get_litigations_search`

Retrieve a docket search by `id`: its state and, once `COMPLETED`, the court dockets found.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `id` | UUID | Yes | The docket search `id`. |

### Employment Verification

#### `verify_employment`

Verify that a person is employed by a business using public web evidence. Returns whether the person was verified, their role title, department, and the evidence and sources behind the conclusion. Synchronous, with a 30 second wait.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `person_name` | string | Yes | Full name of the person. |
| `business_name` | string | Yes | Name of the business to check against. |
| `business_address` | string | No | Business address, used to disambiguate similarly named businesses. |
| `alternative_names` | string\[] | No | DBA names for the business, up to 10. |

See [Start an employee verification request](/api-reference/employee-verification/start-employee-verification-request.md) in the API reference for the full response.

**Example prompt:** "Confirm that Jane Doe works at Acme Holdings LLC in Austin and tell me her title."

#### `get_employment_verification`

Retrieve an employment verification by `id`: its state and, once `COMPLETED`, the outcome with evidence and sources.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `id` | UUID | Yes | The verification request `id`. |

### Online Presence

See [Online Presence basics](/docs/online-presence-basics.md) and the [response reference](/docs/online-presence-response-reference.md).

#### `analyze_online_presence`

Start an online presence analysis for a business in the US or elsewhere: discovers and analyzes its website and wider online footprint. Asynchronous: returns the `PENDING` request immediately, and your assistant polls `get_online_presence_analysis` until it completes.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `name` | string | Yes | Business name. |
| `address` | string | Yes | Business address. |
| `options` | string\[] | No | Any of `Order.NaicsPrediction`, `Order.WebsiteAnalysis`, `Order.SocialMedia`, `Order.ReviewSummary`, `Order.ReviewFull`, `Order.DirectoryListing`. Defaults to `Order.NaicsPrediction` and `Order.WebsiteAnalysis`. |
| `alternative_names` | string\[] | No | DBA names, up to 10. |
| `officer_names` | string\[] | No | Officer names. |
| `website` | string | No | Known website, if you have one. |
| `phone_number` | string | No | Business phone number. |
| `email` | string | No | Business email address. |
| `social_profiles` | object\[] | No | Known social media profiles, up to 10. |
| `iso2_country_code` | string | No | Country of the business. Omit it (or send `US`) for a US business. US territories such as `PR` and `GU` count as US. Any other code runs the international analysis, which adds an international surcharge. |
| `reference_id` | string | No | Your own identifier for this request. |

**Returns** a web presence request. Once `COMPLETED` it carries the discovered website, website analysis, and results for each ordered option. See [Create a web presence request](/api-reference/web-presence/post-web-presence-request.md) in the API reference.

**Example prompt:** "Find Ray's Famous Pizza's website and social profiles and summarize their online reviews."

#### `get_online_presence_analysis`

Retrieve an online presence analysis by `id`: its state and, once `COMPLETED`, the discovered website and findings.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `id` | UUID | Yes | The web presence request `id`. |

### Watchlist Screening

See [Watchlists and Sanctions basics](/docs/watchlists-sanctions-basics.md).

#### `search_watchlists`

Screen a name against government watchlists, grouped by source. Synchronous. One billable order is written per watchlist requested.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `q` | string | Yes | The name to screen. |
| `watchlists` | string\[] | Yes | One or more of `OFAC`, `PEP`, `CSL`, `FBI`, `CNS`, `OIG`. |
| `similarity_threshold` | number | No | Minimum match similarity from 0 to 1. Defaults to `0.9`. |
| `limit` | integer | No | Maximum matches per watchlist, 1 to 50. Defaults to `5`. |

| Watchlist | Source |
| - | - |
| `OFAC` | US Treasury sanctions lists (SDN and consolidated) |
| `PEP` | Politically exposed persons |
| `CSL` | US Consolidated Screening List (Commerce, State, Treasury) |
| `FBI` | FBI most wanted |
| `CNS` | Canadian sanctions |
| `OIG` | HHS Office of Inspector General exclusions |

**Returns** `results` grouped by watchlist, each with matched entries and a similarity score, plus `total_matches`. See [Search multiple watchlists](/api-reference/watchlists/search-multiple-watchlists.md) in the API reference.

**Example prompt:** "Screen John Smith against OFAC and PEP lists with a 0.85 similarity threshold."

### TIN Verification

#### `verify_tin`

Verify a TIN or EIN against IRS records by business name. Synchronous. If the IRS service is unavailable the request stays `PENDING` and is retried later, and your assistant polls `get_tin_verification` for the outcome.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `name` | string | Yes | Business name as registered with the IRS. |
| `tin` | string | Yes | Nine digit TIN or EIN. Hyphens are accepted. |
| `address` | string | No | Business address. |

**Returns** `tin_matched` (boolean) and `tin_match_type`. See [Submit a TIN verification](/api-reference/tin-verification/submit-tin-verification.md) in the API reference.

**Example prompt:** "Does EIN 12-3456789 match Acme Holdings LLC?"

#### `get_tin_verification`

Retrieve a TIN verification by `id`: its state and, once resolved, `tin_matched` and `tin_match_type`.

| Parameter | Type | Required | Description |
| - | - | - | - |
| `id` | UUID | Yes | The TIN verification `id`. |

### Retries and `idempotency_key`

Every tool that starts a search or verification also accepts an optional `idempotency_key` string. If a call is retried with the same key and the same arguments, the tool returns the resource the first call created instead of ordering, and billing, the work again. Reusing a key with different arguments, or on a different tool, returns an error that names the existing resource. This works the same way as the REST API's `Idempotency-Key` header.

### Request states

Every search and verification carries a `state`:

| State | Meaning |
| - | - |
| `PENDING` | Queued, not yet started. |
| `EXECUTING` | Running. |
| `COMPLETED` | Finished. Results are populated. |
| `FAILED` | Finished with an error. |
| `CANCELLED` | Stopped before completion. |

`COMPLETED`, `FAILED`, and `CANCELLED` are terminal. Anything else should be polled with the matching `get_*` tool.

### Permissions

Tools check the same role permissions as the REST API. If your role lacks a permission the tool returns an error naming it, and an organization admin can grant it in the Console.

| Tools | Permission |
| - | - |
| `search_business`, `search_business_with_orders`, `predict_naics`, `verify_employment`, `analyze_online_presence`, `search_watchlists`, `verify_tin` | `searches:create` |
| `get_business_search`, `get_naics_prediction`, `get_employment_verification`, `get_online_presence_analysis`, `get_tin_verification` | `searches:read` |
| `get_business` | `businesses:read` |
| `search_liens` / `get_liens_search` | `liens.searches:create` / `liens.searches:read` |
| `search_litigations` / `get_litigations_search` | `dockets.searches:create` / `dockets.searches:read` |
| `search_international_business` / `get_international_business_search` | `international.searches:create` / `international.searches:read` |

International Business Search is available on enterprise plans. On other plans the international tools return a permission error.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.