# com.eckari/capabilities (remote · api.eckari.com)

Deterministic company, entity and location lookups for agents - per call, x402 or API key.

- Trust score: 63/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-20

## Components

- remote · `api.eckari.com`: 63/100 (this document), [markdown](https://verifymcp.io/servers/com-eckari-capabilities/api.md), [page](https://verifymcp.io/servers/com-eckari-capabilities/api)

## Channel facts

- Endpoint: `https://api.eckari.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.1.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-20.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS enforcement could not be verified: the plaintext port answered with HTTP 405, which proves neither a plaintext path nor enforcement.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 65/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 9415 tokens (~392/item across 24 items; 24 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability check failed: schema churn in the 2 days we've observed: 0 tool removals, 11 breaking changes, 0 auth/transport breaks, 0 additions.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### Claude

```bash
claude mcp add --transport http com-eckari-capabilities https://api.eckari.com/mcp
```

### Codex

```toml
[mcp_servers.com-eckari-capabilities]
url = "https://api.eckari.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-eckari-capabilities": {
      "type": "remote",
      "url": "https://api.eckari.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-eckari-capabilities --url https://api.eckari.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-eckari-capabilities:
    url: "https://api.eckari.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "com-eckari-capabilities": {
      "type": "http",
      "url": "https://api.eckari.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-19 (score 63, 0)

- [security regression] Stability: unverified → fail
- [security regression] A breaking change shipped without a version bump: still 0.1.0
- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “company_uk_accounts” rewrote its description, which is the text the model reads
- [security] Tool “company_uk_charges” rewrote its description, which is the text the model reads
- [security] Tool “company_uk_directors” rewrote its description, which is the text the model reads
- [security] Tool “company_uk_filings” rewrote its description, which is the text the model reads
- [security] Tool “company_uk_owners” rewrote its description, which is the text the model reads
- [security] Tool “company_uk_profile” rewrote its description, which is the text the model reads
- [security] Tool “company_uk_registered_office” rewrote its description, which is the text the model reads
- [security] Tool “company_uk_search” rewrote its description, which is the text the model reads
- [security] Tool “company_uk_status” rewrote its description, which is the text the model reads
- [security] Tool “company_us_filings” rewrote its description, which is the text the model reads
- [security] Tool “company_us_filings_latest” rewrote its description, which is the text the model reads
- [security] Tool “company_us_profile” rewrote its description, which is the text the model reads
- [security] Tool “company_us_resolve” rewrote its description, which is the text the model reads
- [security] Tool “domain_expiry” rewrote its description, which is the text the model reads
- [security] Tool “domain_registration” rewrote its description, which is the text the model reads
- [security] Tool “entity_lei_profile” rewrote its description, which is the text the model reads
- [security] Tool “entity_lei_search” rewrote its description, which is the text the model reads
- [security] Tool “fx_reference_rate” rewrote its description, which is the text the model reads
- [security] Tool “location_us_geocode” rewrote its description, which is the text the model reads
- [security] Tool “location_us_geographies” rewrote its description, which is the text the model reads
- [security] Tool “parcel_detect_carrier” rewrote its description, which is the text the model reads
- [security] Tool “weather_us_alerts” rewrote its description, which is the text the model reads
- [security] Tool “weather_us_forecast” rewrote its description, which is the text the model reads
- [security] Tool “weather_us_observation” rewrote its description, which is the text the model reads
- [functional regression] “company_uk_accounts” added a required parameter “company_number”, so existing callers break
- [functional regression] “company_uk_charges” added a required parameter “company_number”, so existing callers break
- [functional regression] “company_uk_directors” added a required parameter “company_number”, so existing callers break
- [functional regression] “company_uk_filings” added a required parameter “company_number”, so existing callers break
- [functional regression] “company_uk_owners” added a required parameter “company_number”, so existing callers break
- [functional regression] “company_uk_profile” added a required parameter “company_number”, so existing callers break
- [functional regression] “company_uk_registered_office” added a required parameter “company_number”, so existing callers break
- [functional regression] “company_uk_status” added a required parameter “company_number”, so existing callers break
- [functional regression] “company_us_filings” added a required parameter “id”, so existing callers break
- [functional regression] “company_us_filings_latest” added a required parameter “id”, so existing callers break
- [functional regression] “company_us_profile” added a required parameter “id”, so existing callers break
- [functional regression] “company_uk_accounts” dropped the required parameter “companyNumber”
- [functional regression] “company_uk_charges” dropped the required parameter “companyNumber”
- [functional regression] “company_uk_directors” dropped the required parameter “companyNumber”
- [functional regression] “company_uk_filings” dropped the required parameter “companyNumber”
- [functional regression] “company_uk_owners” dropped the required parameter “companyNumber”
- [functional regression] “company_uk_profile” dropped the required parameter “companyNumber”
- [functional regression] “company_uk_registered_office” dropped the required parameter “companyNumber”
- [functional regression] “company_uk_status” dropped the required parameter “companyNumber”
- [functional regression] “company_us_filings” dropped the required parameter “cik”
- [functional regression] “company_us_filings_latest” dropped the required parameter “cik”
- [functional regression] “company_us_profile” dropped the required parameter “cik”
- [functional improvement] Schema quality: 478 → 392
- [cosmetic] “company_uk_charges” added an optional parameter “detail”
- [cosmetic] “company_uk_charges” added an optional parameter “status”
- [cosmetic] “company_uk_directors” added an optional parameter “role”
- [cosmetic] “company_uk_filings” added an optional parameter “detail”
- [cosmetic] “entity_lei_search” added an optional parameter “offset”
- [cosmetic] “location_us_geocode” added an optional parameter “offset”
- [cosmetic] “weather_us_alerts” added an optional parameter “detail”
- [cosmetic] “weather_us_alerts” added an optional parameter “limit”
- [cosmetic] “weather_us_alerts” added an optional parameter “offset”
- [cosmetic] “weather_us_forecast” added an optional parameter “detail”
- [cosmetic] “weather_us_forecast” added an optional parameter “hours”
- [cosmetic] “weather_us_forecast” added an optional parameter “period_limit”
- [cosmetic] “company_uk_charges” reworded the description of “limit”
- [cosmetic] “company_uk_charges” reworded the description of “offset”
- [cosmetic] “company_uk_directors” reworded the description of “limit”
- [cosmetic] “company_uk_directors” reworded the description of “offset”
- [cosmetic] “company_uk_filings” reworded the description of “category”
- [cosmetic] “company_uk_filings” reworded the description of “limit”
- [cosmetic] “company_uk_filings” reworded the description of “offset”
- [cosmetic] “company_uk_owners” reworded the description of “limit”
- [cosmetic] “company_uk_owners” reworded the description of “offset”
- [cosmetic] “company_uk_search” reworded the description of “limit”
- [cosmetic] “company_uk_search” reworded the description of “offset”
- [cosmetic] “company_us_filings” reworded the description of “limit”
- [cosmetic] “company_us_filings” reworded the description of “offset”
- [cosmetic] “company_us_resolve” reworded the description of “limit”
- [cosmetic] “entity_lei_profile” reworded the description of “lei”
- [cosmetic] “location_us_geocode” reworded the description of “limit”
- [cosmetic] “weather_us_forecast” reworded the description of “hourly”
- [cosmetic] Tool “company_uk_directors” changed its title: List UK company directors and officers from Companies House → List UK company directors from the Companies House officers register
- [cosmetic] Tool “company_us_filings” changed its title: List SEC EDGAR filings filed by or about a US company → List SEC EDGAR filings for a US company by ticker or CIK
- [cosmetic] Tool “company_us_filings_latest” changed its title: Get latest 10-K, 10-Q and 8-K filings for a US company → Latest 10-K, 10-Q or 8-K for a US company by ticker or CIK
- [cosmetic] Tool “company_us_profile” changed its title: Get US public company profile from SEC EDGAR → US public company profile from SEC EDGAR by ticker or CIK
- [cosmetic] Tool “company_us_resolve” changed its title: Resolve a US company name or ticker to its SEC CIK → Resolve a US company name to its SEC CIK and ticker
- [cosmetic] Tool “domain_registration” changed its title: Look up domain registration details (RDAP WHOIS) → WHOIS lookup for a domain, from the registry RDAP record
- [cosmetic] Tool “fx_reference_rate” changed its title: Get the ECB euro reference exchange rate for a pair → Get the official ECB reference exchange rate for a pair (accounting, invoicing, reporting)

### 2026-08-18 (score 63)

First indexed and scored.

## MCP tools (24)

### `company_uk_accounts` (~212 tokens)

Check UK company accounts due dates on Companies House

Return the accounts filing status of a UK company from the Companies House register — the accounting reference date, the last accounts filed (type and period), the next accounts due date and a derived overdue flag. Use when: When are this UK company's accounts due? Not for: You need financial figures (turnover, profit, balance sheet) — not on the public register API. Related: company_uk_filings; company_uk_profile; company_uk_status. Price: USD 0.003/call (x402), 0.002 (account key).

Input parameters:

- `company_number` (string, required): Companies House company number, also called the company registration number (CRN). The identifier itself is 1-8 letters/digits; surrounding whitespace is ignored (which is why maxLength is 10), but t…

Output parameters:

- `data` (object): Capability output; full JSON Schema at https://api.eckari.com/v1/capabilities/company.uk.accounts
- `meta` (object)

### `company_uk_charges` (~460 tokens)

List UK company charges and mortgages from Companies House

Charges registered against a UK company at Companies House — mortgages, debentures and other security — with dates, classification, particulars and the persons entitled. Use when: Establish whether a UK company has outstanding security over its assets, and who holds it. Not for: You need insolvency proceedings — not currently supported (see the resource flags on company.uk.profile). Related: company_uk_profile; company_uk_filings; company_uk_status. Price: USD 0.006/call (x402), 0.005 (account key).

Input parameters:

- `company_number` (string, required): Companies House company number, also called the company registration number (CRN). The identifier itself is 1-8 letters/digits; surrounding whitespace is ignored (which is why maxLength is 10), but t…
- `detail` (string): How much of each charge to return. Default summary. `full` adds the four members the register populates only for particular filings — acquired_on, resolved_on, assets_ceased_released and more_than_fo…
- `limit` (integer): Maximum charges to return per page (1-100). Default 3: a charge carries free-text particulars, secured details and the persons entitled, so it is several times the size of an officer or a filing row…
- `offset` (integer): Zero-based index into the register's charge list (not into the filtered result). Pass back page.next_offset from the previous response to page.
- `status` (string): Which charges to return. Default `all`. `outstanding` returns the charges that are still security over the company (everything the register has not marked satisfied or fully-satisfied, including part…

Output parameters:

- `data` (object): Capability output; full JSON Schema at https://api.eckari.com/v1/capabilities/company.uk.charges
- `meta` (object)

### `company_uk_directors` (~482 tokens)

List UK company directors from the Companies House officers register

Directors of a UK company from the Companies House officers register — the register of directors, secretaries and LLP members — including corporate and nominee directors, with appointment and resignation dates, nationality, country of residence, occupation, month/year of birth and correspondence address. Use when: Identify who is legally responsible for a UK company - the directors on the Companies House officers register. Not for: You need beneficial owners / persons with significant control — use company.uk.owners. Price: USD 0.005/call (x402), 0.004 (account key).

Input parameters:

- `company_number` (string, required): Companies House company number, also called the company registration number (CRN). The identifier itself is 1-8 letters/digits; surrounding whitespace is ignored (which is why maxLength is 10), but t…
- `include_resigned` (boolean): Include resigned officers. Default false.
- `limit` (integer): Maximum officers to return per page (1-100). Default 5. Eckari reads up to three register pages of 100 entries to fill this after the role and resigned filters are applied; if the limit is still unme…
- `offset` (integer): Zero-based index into the register's own officer list (not into the filtered result). Pass back page.next_offset from the previous response to page.
- `role` (string): Which appointments to return. Default `director` — the capability's name is its contract. The register encodes the office in officer_role, so the filter is a substring test on it: `director` matches…

Output parameters:

- `data` (object): Capability output; full JSON Schema at https://api.eckari.com/v1/capabilities/company.uk.directors
- `meta` (object)

### `company_uk_filings` (~396 tokens)

List UK company filing history from Companies House

Return the filing history of a UK company from the Companies House register — accounts, confirmation statements, officer appointments, address and capital changes, resolutions and mortgages — most recent first, optionally filtered by category, with date, form type (AA, CS01, AP01, TM01), the readable register description, registrar annotations and a document_url for every filed image. Use when: What has this UK company filed recently? Not for: You need the current directors themselves rather than the filing events — use company.uk.directors. Price: USD 0.005/call (x402), 0.004 (account key).

Input parameters:

- `category` (string): Optional comma-separated register categories to include (e.g. accounts, address, annual-return, capital, change-of-name, incorporation, liquidation, miscellaneous, mortgage, officers, resolution, con…
- `company_number` (string, required): Companies House company number. The identifier itself is 1-8 letters/digits; surrounding whitespace is ignored (which is why maxLength is 10), but the value must not contain internal spaces. Short nu…
- `detail` (string): How much of each filing to return. Default summary: the readable description, its source, the register's annotations, the form type and the document URL. `full` adds the register's raw description_ke…
- `limit` (integer): Maximum filings to return per page (1-100). Default 5.
- `offset` (integer): Zero-based index into the register's filing list for the applied category filter. Nothing is filtered out after reading, so page.has_more is simply offset + returned < page.total; pass back page.next…

Output parameters:

- `data` (object): Capability output; full JSON Schema at https://api.eckari.com/v1/capabilities/company.uk.filings
- `meta` (object)

### `company_uk_owners` (~306 tokens)

List UK company beneficial owners (PSC) from Companies House

An empty items list is never the same as "no owner": ownership_status and the filed PSC statements/exemptions explain why the register discloses none. Use when: Who owns this UK company? Not for: You need directors/officers rather than owners — use company.uk.directors. Related: company_uk_directors; company_uk_profile; company_uk_status. Price: USD 0.008/call (x402), 0.006 (account key).

Input parameters:

- `company_number` (string, required): Companies House company number. The identifier itself is 1-8 letters/digits; surrounding whitespace is ignored (which is why maxLength is 10), but the value must not contain internal spaces. Short nu…
- `include_ceased` (boolean): Include PSCs whose control has ceased. Default false.
- `limit` (integer): Maximum PSCs to return per page (1-100). Default 10. Eckari reads up to three register pages of 100 entries to fill this after the ceased filter is applied; if the limit is still unmet, page.has_more…
- `offset` (integer): Zero-based index into the register's own PSC list (not into the filtered result). Pass back page.next_offset from the previous response to page.

Output parameters:

- `data` (object): Capability output; full JSON Schema at https://api.eckari.com/v1/capabilities/company.uk.owners
- `meta` (object)

### `company_uk_profile` (~222 tokens)

Get UK company profile from Companies House

Return the core registered profile of a UK company from the Companies House register: name, status with derived is_active and is_striking_off, type, jurisdiction, incorporation and cessation dates, SIC codes with their official UK SIC 2007 descriptions, registered office address, previous names, and the accounts and confirmation-statement summary. Use when: You have a UK company number and need the standard registered record. Not for: You only need to know if the company is active — use company.uk.status (cheaper). Price: USD 0.004/call (x402), 0.003 (account key).

Input parameters:

- `company_number` (string, required): Companies House company number, also called the company registration number (CRN). The identifier itself is 1-8 letters/digits; surrounding whitespace is ignored (which is why maxLength is 10), but t…

Output parameters:

- `data` (object): Capability output; full JSON Schema at https://api.eckari.com/v1/capabilities/company.uk.profile
- `meta` (object)

### `company_uk_registered_office` (~223 tokens)

Get UK registered office address from Companies House

Return the current registered office address of a UK company from the Companies House register as structured fields (premises, address lines, locality, region, postcode, country) plus a single-line rendering for correspondence, address matching and verification. Use when: What is the registered office address of company 00445790? Not for: You need the whole registered profile as well — use company.uk.profile (it already includes this address). Related: company_uk_profile; company_uk_status; company_uk_search. Price: USD 0.003/call (x402), 0.002 (account key).

Input parameters:

- `company_number` (string, required): Companies House company number, also called the company registration number (CRN). The identifier itself is 1-8 letters/digits; surrounding whitespace is ignored (which is why maxLength is 10), but t…

Output parameters:

- `data` (object): Capability output; full JSON Schema at https://api.eckari.com/v1/capabilities/company.uk.registered_office
- `meta` (object)

### `company_uk_search` (~198 tokens)

Search Companies House for UK companies by name

Search the UK Companies House register by name or keyword and return matching companies with company number, register status and a derived is_active, type, incorporation and cessation dates and the register's one-line address snippet. Use when: Look up a UK company by name. Not for: You already have the company number — call company.uk.profile or company.uk.status directly. Related: company_uk_status; company_uk_profile; company_uk_directors; company_uk_owners. Price: USD 0.002/call (x402), 0.0015 (account key).

Input parameters:

- `limit` (integer): Maximum results to return (1-50). Default 10.
- `offset` (integer): Zero-based offset into the register's result set for paging. Pass back page.next_offset from the previous response; page.has_more says whether there is one.
- `q` (string, required): Company name or keyword to search for.

Output parameters:

- `data` (object): Capability output; full JSON Schema at https://api.eckari.com/v1/capabilities/company.uk.search
- `meta` (object)

### `company_uk_status` (~249 tokens)

Check UK company status on Companies House

Return the current legal status of a UK company from the Companies House register — active, dissolved, liquidation, administration, receivership, voluntary-arrangement and others — with status detail, cessation date, a derived is_active (true for the live-on-the-register statuses active, open and registered) and a derived is_striking_off for an active company with a proposal to strike off. Use when: Is this UK company still active? Not for: You need the full registered profile (type, SIC codes, incorporation date) — use company.uk.profile. Price: USD 0.003/call (x402), 0.002 (account key).

Input parameters:

- `company_number` (string, required): Companies House company number, also called the company registration number (CRN), e.g. 00445790, SC123456, NI000001, BR008975. The identifier itself is 1-8 letters/digits; surrounding whitespace is…

Output parameters:

- `data` (object): Capability output; full JSON Schema at https://api.eckari.com/v1/capabilities/company.uk.status
- `meta` (object)

### `company_us_filings` (~418 tokens)

List SEC EDGAR filings for a US company by ticker or CIK

Return the recent EDGAR filing history of a US company identified by stock ticker (AAPL) or CIK, optionally filtered by form type and filing date and paged. Use when: List every 8-K on this ticker's EDGAR index this year, with links to the documents. Not for: You need to know who submitted a filing — EDGAR's submissions index carries no filer identity, so a Form 4 or SCHEDULE 13G here tells you the filing exists, not who made it. Related: company_us_filings_latest; company_us_profile; company_us_resolve; company_uk_filings. Price: USD 0.005/call (x402), 0.004 (account key).

Input parameters:

- `form` (string): Comma-separated EDGAR form types to keep, e.g. "10-K,10-Q,8-K". Matching is exact and case-insensitive; omit to return every form.
- `id` (string, required): SEC CIK or exchange ticker symbol. All digits is read as a CIK (leading zeros and an EDGAR CIK prefix are both accepted: 320193, 0000320193, CIK0000320193); anything else is read as a ticker (1-10 ch…
- `limit` (integer): Maximum number of filings to return from the filtered set. Defaults to 5 so a first call stays small; raise it explicitly when you need more.
- `offset` (integer): Zero-based offset into the filtered set, for paging. Pass page.next_offset from the previous response.
- `since` (string): Keep only filings with a filing_date on or after this ISO date (YYYY-MM-DD).

Output parameters:

- `data` (object): Capability output; full JSON Schema at https://api.eckari.com/v1/capabilities/company.us.filings
- `meta` (object)

### `company_us_filings_latest` (~336 tokens)

Latest 10-K, 10-Q or 8-K for a US company by ticker or CIK

Give a stock ticker (AAPL) or CIK and get the most recent EDGAR filing of each requested form — by default the latest 10-K, 10-Q and 8-K — with filing and report dates and a direct sec.gov link to each primary document. Use when: What is Apple's latest 8-K, and where is the document? Not for: You need to know who submitted the filing — EDGAR's submissions index carries no filer identity, and for ownership forms (3, 4, 5, SCHEDULE 13G) the submitter is a third party, not the company. Price: USD 0.003/call (x402), 0.002 (account key).

Input parameters:

- `form` (string): Comma-separated EDGAR form types to report the latest filing of. Defaults to "10-K,10-Q,8-K". Matching is exact and case-insensitive; output order follows the requested order.
- `id` (string, required): SEC CIK or exchange ticker symbol. All digits is read as a CIK (leading zeros and an EDGAR CIK prefix are both accepted: 320193, 0000320193, CIK0000320193); anything else is read as a ticker (1-10 ch…

Output parameters:

- `data` (object): Capability output; full JSON Schema at https://api.eckari.com/v1/capabilities/company.us.filings.latest
- `meta` (object)

### `company_us_profile` (~272 tokens)

US public company profile from SEC EDGAR by ticker or CIK

Look up an SEC filer by stock ticker (AAPL) or CIK and return its registered profile — legal name, entity type, SIC industry code and description, EIN, filer category, fiscal year end, state of incorporation, tickers and exchanges, former names, business and mailing addresses and phone. Use when: Which exchanges and tickers does this filer trade under? Not for: You need to know whether the filer is still submitting periodic reports — check the filing dates with company.us.filings.latest; EDGAR publishes no reporting-status field. Price: USD 0.004/call (x402), 0.003 (account key).

Input parameters:

- `id` (string, required): SEC CIK or exchange ticker symbol. All digits is read as a CIK (leading zeros and an EDGAR CIK prefix are both accepted: 320193, 0000320193, CIK0000320193); anything else is read as a ticker (1-10 ch…

Output parameters:

- `data` (object): Capability output; full JSON Schema at https://api.eckari.com/v1/capabilities/company.us.profile
- `meta` (object)

### `company_us_resolve` (~204 tokens)

Resolve a US company name to its SEC CIK and ticker

Turn a company-name fragment or stock ticker into the SEC EDGAR identifiers. Use when: Which SEC filer and CIK does the company name "Apple" belong to? Not for: You already have a ticker or a CIK and want profile or filings — company.us.profile, company.us.filings and company.us.filings.latest accept either identifier directly, so this extra call is unnecessary. Related: company_us_profile; company_us_filings_latest; company_us_filings; entity_lei_search. Price: USD 0.002/call (x402), 0.0015 (account key).

Input parameters:

- `limit` (integer): Maximum number of ranked matches to return. Ranking is applied before the limit; page.total reports how many matched in full.
- `q` (string, required): Ticker symbol (e.g. AAPL) or company-name fragment (e.g. Apple). Matching is case-insensitive and trimmed; no fuzzy matching is applied.

Output parameters:

- `data` (object): Capability output; full JSON Schema at https://api.eckari.com/v1/capabilities/company.us.resolve
- `meta` (object)

### `domain_expiry` (~168 tokens)

Check domain expiry date and days remaining (RDAP)

Registry expiry date for a domain read live from the authoritative registry RDAP server, with whole days remaining, the registry status codes, the registrar name and the registry's own last-update timestamp. A focused, cheaper subset of domain.registration for renewal monitoring and portfolio checks. Use when: When does this domain expire? Not for: You also need nameservers, DNSSEC, the creation date or the registrar's abuse contact - use domain.registration. Related: domain_registration. Price: USD 0.002/call (x402), 0.0015 (account key).

Input parameters:

- `domain` (string, required): Bare domain name such as example.com or bbc.co.uk. Internationalised names are converted to punycode (IDNA). URLs, paths, ports and single-label names are rejected.

Output parameters:

- `data` (object): Capability output; full JSON Schema at https://api.eckari.com/v1/capabilities/domain.expiry
- `meta` (object)

### `domain_registration` (~169 tokens)

WHOIS lookup for a domain, from the registry RDAP record

The WHOIS lookup for a domain, answered from the registry's own RDAP service - the structured successor to port-43 WHOIS, read live via the IANA bootstrap, never scraped WHOIS text. Use when: Answer a WHOIS question about a domain - registrar, creation date, expiry, transfer lock - from the registry record. Not for: You only need the expiry date and days remaining - use domain.expiry (cheaper). Related: domain_expiry. Price: USD 0.004/call (x402), 0.003 (account key).

Input parameters:

- `domain` (string, required): Bare domain name such as example.com or bbc.co.uk. Internationalised names are converted to punycode (IDNA). URLs, paths, ports and single-label names are rejected.

Output parameters:

- `data` (object): Capability output; full JSON Schema at https://api.eckari.com/v1/capabilities/domain.registration
- `meta` (object)

### `entity_lei_profile` (~246 tokens)

Get legal entity profile by LEI from the GLEIF register

Return the registry-authoritative GLEIF record for a Legal Entity Identifier — legal and previous names, legal and headquarters addresses, jurisdiction, legal form, entity and registration status, renewal dates (with days until renewal), managing LOU, corroboration level, BIC codes and the named local registry. Use when: Look up everything the LEI register holds for this identifier. Not for: You only have a company name — use entity.lei.search first. Related: entity_lei_search; company_uk_profile; company_uk_status; company_us_profile. Price: USD 0.004/call (x402), 0.003 (account key).

Input parameters:

- `lei` (string, required): 20-character ISO 17442 Legal Entity Identifier (18 alphanumerics + 2 check digits). Case-insensitive. The structure is checked before payment, so a wrong-shaped LEI is rejected on the 402 (details.in…

Output parameters:

- `data` (object): Capability output; full JSON Schema at https://api.eckari.com/v1/capabilities/entity.lei.profile
- `meta` (object)

### `entity_lei_search` (~353 tokens)

Search legal entities by name in the GLEIF LEI register

Find Legal Entity Identifiers by company name in the global GLEIF register, optionally narrowed to one country. Returns the LEI, legal name, registration and entity status, jurisdiction, legal address and the local registry the entity is registered at — the identifier bridge between national company registers worldwide. Use when: What is the LEI for this company? Not for: You already have the LEI — use entity.lei.profile. Related: entity_lei_profile; company_uk_search; company_us_resolve. Price: USD 0.003/call (x402), 0.002 (account key).

Input parameters:

- `country` (string): ISO 3166-1 alpha-2 country code of the entity's legal address, used to narrow the search (e.g. GB, US, DE).
- `limit` (integer): Maximum number of entities to return. Capped at 25 because that is the most records one fuzzy-completion fill-in pass can hydrate; a larger page could not be filled and would misreport how much GLEIF…
- `offset` (integer): Zero-based offset into the result set for paging. Pass back page.next_offset from the previous response; page.has_more says whether there is one. GLEIF pages by page number, so an offset that is a mu…
- `q` (string, required): Legal entity name or name fragment. GLEIF applies its own matching to this value; Eckari does not re-rank the results.

Output parameters:

- `data` (object): Capability output; full JSON Schema at https://api.eckari.com/v1/capabilities/entity.lei.search
- `meta` (object)

### `fx_reference_rate` (~261 tokens)

Get the official ECB reference exchange rate for a pair (accounting, invoicing, reporting)

European Central Bank euro foreign exchange reference rate for a pair - the official daily fix used for accounting, invoicing and reporting - latest or any date in the last 90 days. The ECB publishes EUR/XXX only, so inverse and cross rates are computed from the same fix and named in rate_derivation. Use when: Convert or report an amount at an official daily rate both sides of a contract can verify against the ECB. Not for: You need an executable, tradable, live or intraday market rate - this is a daily fix only. Price: USD 0.002/call (x402), 0.0015 (account key).

Input parameters:

- `base` (string, required): ISO 4217 code of the base currency. EUR is always available; other currencies must be in the ECB reference rate list for the selected date.
- `date` (string): Optional ISO calendar date (YYYY-MM-DD) within the last 90 days. When the ECB published no fix on that date (a TARGET closing day), the latest prior fix is returned with a note.
- `quote` (string, required): ISO 4217 code of the quote currency. EUR is always available; other currencies must be in the ECB reference rate list for the selected date.

Output parameters:

- `data` (object): Capability output; full JSON Schema at https://api.eckari.com/v1/capabilities/fx.reference_rate
- `meta` (object)

### `location_us_geocode` (~261 tokens)

Geocode a US street address (Census, TIGER interpolated)

Convert a one-line US street address into coordinates using the US Census Bureau Geocoder. Returns the standardised matched address, latitude and longitude to 6 decimal places, the TIGER/Line segment and parsed address components. Coordinates are interpolated along street address ranges, not rooftop or parcel positions. Use when: Convert this US street address to latitude and longitude. Not for: You need rooftop or parcel-level precision — Census coordinates are TIGER address-range interpolations. Related: location_us_geographies. Price: USD 0.003/call (x402), 0.002 (account key).

Input parameters:

- `address` (string, required): One-line US street address including city and state, e.g. "1600 Pennsylvania Ave NW, Washington, DC 20500".
- `limit` (integer): Maximum number of candidate matches to return, in the Census Bureau's own order. page.total always reports how many the Census Bureau returned in total, so a low limit never hides an ambiguous addres…
- `offset` (integer): Zero-based index of the first candidate to return. The Census Bureau returns every match in one response, so paging is applied by Eckari over that set - pass page.next_offset to walk the remaining ca…

Output parameters:

- `data` (object): Capability output; full JSON Schema at https://api.eckari.com/v1/capabilities/location.us.geocode
- `meta` (object)

### `location_us_geographies` (~185 tokens)

Get US Census geographies for coordinates (state to ZCTA)

Return the US Census Bureau geographies containing a latitude/longitude — state, county, census tract, block group, census block, incorporated place, congressional district and ZIP Code Tabulation Area — each with its FIPS or GEOID. The standard way to attach official US statistical geography to a point. Use when: Which county and census tract is this coordinate in? Not for: You have an address rather than coordinates — use location.us.geocode first. Related: location_us_geocode. Price: USD 0.003/call (x402), 0.002 (account key).

Input parameters:

- `lat` (number, required): Latitude in decimal degrees (WGS 84), e.g. 38.8977.
- `lon` (number, required): Longitude in decimal degrees (WGS 84), negative in the western hemisphere, e.g. -77.0365.

Output parameters:

- `data` (object): Capability output; full JSON Schema at https://api.eckari.com/v1/capabilities/location.us.geographies
- `meta` (object)

### `parcel_detect_carrier` (~242 tokens)

Detect the carrier from a tracking number

Identify which carrier issued a tracking number using a deterministic, versioned signature set - prefixes, lengths, carrier check digits and UPU S10 structure - returning the carrier, how distinctive the match is, every ranked candidate with typed evidence, and the parsed S10 details. No upstream call and no carrier account required. Use when: Which carrier is this tracking number from? Not for: You need tracking events, status or delivery estimates - not yet available. Price: USD 0.001/call (x402), 0.001 (account key).

Input parameters:

- `destination_country` (string): Optional ISO 3166-1 alpha-2 destination country hint. Used only as a small tie-breaker; it never invents a candidate.
- `origin_country` (string): Optional ISO 3166-1 alpha-2 origin country hint. Used only as a small tie-breaker; it never invents a candidate.
- `tracking_number` (string, required): Tracking or consignment number. Spaces and hyphens are removed and letters upper-cased before matching (4-40 letters and digits after normalisation). Digits and letters are never altered.

Output parameters:

- `data` (object): Capability output; full JSON Schema at https://api.eckari.com/v1/capabilities/parcel.detect_carrier
- `meta` (object)

### `weather_us_alerts` (~430 tokens)

Get active US weather alerts for a point or state (NWS)

Active National Weather Service watches, warnings and advisories for a US coordinate or a two-letter state or marine area code - event, severity, certainty, urgency, headline, affected areas and zone codes, and effective/onset/expiry times in UTC. Read at request time, so an empty list means nothing is active. Use when: Decide whether an active US weather warning affects a location before dispatching or travelling. Not for: You need the forecast rather than alerts - use weather.us.forecast. Related: weather_us_forecast; weather_us_observation. Price: USD 0.003/call (x402), 0.002 (account key).

Input parameters:

- `detail` (string): compact (default) returns the fields an agent decides on. full adds the two NWS narrative members - description (the multi-paragraph WHAT/WHERE/WHEN/IMPACTS text, truncated at 2000 characters with de…
- `lat` (number): Latitude in decimal degrees (WGS84). Provide lat and lon together, or provide state.
- `limit` (integer): Maximum number of active alerts to return, in the order NWS returns them. The default of 5 keeps the answer compact - a busy state can have dozens of active alerts, each covering tens of zones - and…
- `lon` (number): Longitude in decimal degrees (WGS84). Provide lat and lon together, or provide state.
- `offset` (integer): Zero-based index of the first alert to return, for paging through the active set with limit. The whole active set is read in one upstream request and returned in that order, so a window over it is co…
- `state` (string): Two-letter US state, territory or NWS marine area code such as CA / TX / PR. Alternative to lat and lon; one of the two forms is required.

Output parameters:

- `data` (object): Capability output; full JSON Schema at https://api.eckari.com/v1/capabilities/weather.us.alerts
- `meta` (object)

### `weather_us_forecast` (~382 tokens)

Get the US weather forecast for coordinates (NWS)

Official National Weather Service forecast for any US coordinate - six 12-hour day/night periods by default, or hourly - each with temperature in C and F, precipitation probability, a wind speed range in km/h, wind direction and a short forecast, plus the NWS issue time so an agent can judge its age. Use when: What is the weather forecast for these US coordinates? Not for: You need the latest observed conditions and their age - use weather.us.observation. Related: weather_us_observation; weather_us_alerts. Price: USD 0.003/call (x402), 0.002 (account key).

Input parameters:

- `detail` (string): compact (default) returns the fields an agent acts on. full adds the NWS narrative (detailed_forecast), the icon URL, the trend note and, for hourly periods, dewpoint_c and humidity_pct.
- `hourly` (boolean): Return hourly periods instead of the default 12-hour day/night periods. Hourly periods have no name and, at detail=full, carry dewpoint and humidity.
- `hours` (integer): Number of hourly periods to return, soonest first. Applies when hourly is true; use period_limit for day/night forecasts.
- `lat` (number, required): Latitude in decimal degrees (WGS84). Rounded to 4 decimal places before the National Weather Service lookup.
- `lon` (number, required): Longitude in decimal degrees (WGS84). Rounded to 4 decimal places before the National Weather Service lookup.
- `period_limit` (integer): Maximum number of 12-hour day/night periods to return, soonest first. Applies when hourly is false; use hours for hourly forecasts. NWS issues 14 periods (7 days); the default of 6 is three days. Nam…

Output parameters:

- `data` (object): Capability output; full JSON Schema at https://api.eckari.com/v1/capabilities/weather.us.forecast
- `meta` (object)

### `weather_us_observation` (~197 tokens)

Get the latest US weather observation with its age (NWS)

Latest surface observation from the nearest National Weather Service station to a US coordinate, with the station identity, the observation time (observed_at), its age in seconds and an is_stale flag. Station observations are reported roughly every 20-60 minutes, so this is the most recent measurement, not a real-time reading. Use when: What was the most recently observed temperature at these US coordinates? Not for: You need a prediction rather than a measurement - use weather.us.forecast. Related: weather_us_forecast; weather_us_alerts. Price: USD 0.003/call (x402), 0.002 (account key).

Input parameters:

- `lat` (number, required): Latitude in decimal degrees (WGS84). Rounded to 4 decimal places before the National Weather Service lookup.
- `lon` (number, required): Longitude in decimal degrees (WGS84). Rounded to 4 decimal places before the National Weather Service lookup.

Output parameters:

- `data` (object): Capability output; full JSON Schema at https://api.eckari.com/v1/capabilities/weather.us.observation
- `meta` (object)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-eckari-capabilities/api#diagnostics

## Score history

- 2026-08-20: 63
- 2026-08-19: 63
- 2026-08-18: 63

## Links

- Remote endpoint: https://api.eckari.com/mcp
- Website: https://eckari.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-eckari-capabilities/api.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-eckari-capabilities/api.json
- HTML version of this page: https://verifymcp.io/servers/com-eckari-capabilities/api
