Skip to content
FIRMSapi logo

FIRMSapi MCP server

Which MCP servers are FIRMSapi's own, from the official registry and from asking its own domain, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.

read 2026-10-29

← Back to FIRMSapi

Whose server it is
  • Registry namecom.firmsapi/mcpverified in the MCP registry

The registry name sits under firmsapi.com. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.

When we asked itchecked 2026-10-29
  • Stateanswerschecked 2026-10-29
  • Tools6
  • Server calls itselffirmsapi
  • Server version1.0.0
  • Protocol version2025-06-18

On 2026-10-29 the server answered initialize and tools/list without a sign-in. First answer in 306 ms.

Should an agent connect itNot proven either way yet
  • Its tools do every use case we checked: look up CBP facility codes by terminal name; check a code's address, status and registered port; validate a facility code against the port on a filing.
  • Checked on 4 of the 7 days it takes to judge reliability.

Once connected

  • For "look up CBP facility codes by terminal name", the likely first call is search_firms_facilities.
  • For "check a code's address, status and registered port", the likely first call is lookup_firms_code.
  • For "validate a facility code against the port on a filing", the likely first call is validate_firms_code.

Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.

Measured dailydaily checks: 4, the first on 2026-10-29
  • INITE MCP scoreafter a weeka score needs 7 daily checks: 4 so far
  • What an agent can do with it3 of 3 use cases
  • Answeredmeasuring4 of the 7 daily checks it takes to print a share
  • Median first answer300 ms
  • Space in an agent's context≈ 1,819 tokensthe definitions of all its tools (6), which an agent carries on every turn
  • Tool definitionsA · 100 of 100
  • Typed results0 of 6 toolsdeclared outputSchema: results come typed, read once
  • Every tool passes all six checks.

What an agent can do with it

  • can do · look up CBP facility codes by terminal name
  • can do · check a code's address, status and registered port
  • can do · validate a facility code against the port on a filing

Each of the product's use cases, put to Jev against this server's tool list: can an agent do it with these tools?

Worth a look

None of the five warning signs in these definitions.

A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (25%), doing the product's job (25%), definitions (20%), context (10%), use (10%) and how readily a client connects (10%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →

Tools it offers6 tools · read 2026-10-29
  • lookup_firms_code

    Get the CBP FIRMS record for one code: facility name, status (active or deleted), facility type, address, CBP port, location, and the other codes registered at the same address. Deleted codes and "DO NOT USE" placeholders (junk: true) are…

  • search_firms_facilities

    Find FIRMS codes from a facility name and/or street address, e.g. 'maher terminal elizabeth' or '231 tyler st newark'. Typo-tolerant; returns ranked matches with a 0-100 score. Active codes only unless include_deleted is true. One call…

  • find_nearby_firms_facilities

    List FIRMS facilities within radius_km, nearest first. Pass exactly one origin: lat and lon; code (another FIRMS facility, left out of the results); or address (a US street address, geocoded unless it is a FIRMS facility's own address)…

  • validate_firms_code

    Pre-filing checks of a FIRMS code against the published CBP list, in order: format, exists (catches ACE reject 158), active (159), in the stated port (164), facility type fits the use (warehouse_entry: bonded warehouse 04; ftz_admission…

  • list_cbp_ports

    Every CBP port that has FIRMS codes, with name, state, region, facility_count and active_count, in one call. Wraps GET /v1/ports. Live keys (fapi_live_...): one counted call. Test keys (fapi_test_...): fixture sample data, not counted.

  • get_cbp_port

    One CBP port with a page of its FIRMS facilities, ordered by code. Placeholders are left out; active codes only unless include_deleted is true. For the next page pass cursor = meta.next_cursor (null on the last page); each page is one…

How to connect

Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:

{
  "mcpServers": {
    "firmsapi": {
      "type": "http",
      "url": "https://api.firmsapi.com/mcp"
    }
  }
}

Add it

Claude Code, in a terminal

claude mcp add --transport http firmsapi https://api.firmsapi.com/mcp

Add to CursorAdd to VS Code

claude.ai, ChatGPT and other clients: add https://api.firmsapi.com/mcp as a custom connector in the settings.

Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.