FIRMSapi
Look up, search and validate U.S. CBP FIRMS facility codes for piers, CFS, warehouses and FTZs.
我该使用它吗
质量与安全性
发现(7)
- HIGH
- MEDIUM在 lookup_firms_code 中
- MEDIUM在 validate_firms_code 中
- MEDIUM在 get_cbp_port 中
- INFO在 lookup_firms_code 中
- INFO在 validate_firms_code 中
- INFO在 get_cbp_port 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"mcp": {
"url": "https://api.firmsapi.com/mcp"
}
}
}远程端点
https://api.firmsapi.com/mcpstreamable-http它能做什么
工具清单
工具(6)
🟢lookup_firms_code(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 returned with warnings. A code that is not on the list returns a not_found error, which still counts as a call. Wraps GET /v1/firms/{code}. Live keys (fapi_live_...): one counted call. Test keys (fapi_test_...): fixture sample data, not counted.
输入模式
{
"type": "object",
"properties": {
"code": {
"type": "string",
"pattern": "^[A-Za-z0-9]{4}$",
"description": "4-character FIRMS code, e.g. E430."
}
},
"required": [
"code"
],
"additionalProperties": false
}🟢search_firms_facilities(query, state, port, types, include_deleted, ...)
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 per search, however many results. Wraps GET /v1/search. Live keys (fapi_live_...): one counted call. Test keys (fapi_test_...): fixture sample data, not counted.
输入模式
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2,
"maxLength": 200,
"description": "Name and/or address."
},
"state": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "2-letter state, e.g. NJ."
},
"port": {
"type": "string",
"pattern": "^[0-9]{4}$",
"description": "4-digit CBP port code, e.g. 4601."
},
"types": {
"type": "array",
"items": {
"type": "string",
"enum": [
"01",
"02",
"03",
"04",
"05",
"06",
"07",
"08",
"09",
"10",
"11"
]
},
"description": "Only these facility types: 01 Container freight station (CFS), 02 Foreign trade zone (FTZ), 03 Pier or terminal, 04 Bonded warehouse, 05 Inspection facility, 06 Importer premises, 07 DP site, 08 CBP administrative, 09 Centralized examination station (CES), 10 Rail or air terminal (inferred), 11 CBP test."
},
"include_deleted": {
"type": "boolean",
"default": false,
"description": "Include deleted codes (ranked after active ones)."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 10
}
},
"required": [
"query"
],
"additionalProperties": false
}🟢find_nearby_firms_facilities(lat, lon, code, address, radius_km, ...)
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). meta.origin says which point was used. Facilities whose address could not be geocoded are not included. Test keys use approximate coordinates. Wraps GET /v1/nearby. Live keys (fapi_live_...): one counted call. Test keys (fapi_test_...): fixture sample data, not counted.
输入模式
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"lon": {
"type": "number",
"minimum": -180,
"maximum": 180
},
"code": {
"type": "string",
"pattern": "^[A-Za-z0-9]{4}$",
"description": "Search around this FIRMS code."
},
"address": {
"type": "string",
"minLength": 3,
"maxLength": 200,
"description": "Search around this US street address, e.g. 231 Tyler St, Newark, NJ 07114."
},
"radius_km": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 100,
"default": 10
},
"types": {
"type": "array",
"items": {
"type": "string",
"enum": [
"01",
"02",
"03",
"04",
"05",
"06",
"07",
"08",
"09",
"10",
"11"
]
},
"description": "Only these facility types: 01 Container freight station (CFS), 02 Foreign trade zone (FTZ), 03 Pier or terminal, 04 Bonded warehouse, 05 Inspection facility, 06 Importer premises, 07 DP site, 08 CBP administrative, 09 Centralized examination station (CES), 10 Rail or air terminal (inferred), 11 CBP test."
},
"include_deleted": {
"type": "boolean",
"default": false,
"description": "Include deleted codes (ranked after active ones)."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
}
},
"additionalProperties": false
}🟢validate_firms_code(code, port, use)
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: FTZ 02; exam_site: CES 09; location_of_goods: not 07 or 08), not a placeholder. Returns valid, checks_passed, checks_failed, checks_skipped, checks_not_possible (bond status, FTZ zone ID, direct delivery, port clusters: not in the FIRMS list) and a note. valid: true is not ACE acceptance: FIRMSapi has no ACE connection, so confirm in ACE before filing. A failing code is a normal result (valid: false) and counts as a call. Wraps POST /v1/validate. Live keys (fapi_live_...): one counted call. Test keys (fapi_test_...): fixture sample data, not counted.
输入模式
{
"type": "object",
"properties": {
"code": {
"type": "string",
"minLength": 1,
"maxLength": 32,
"description": "The code as it appears in your system. A malformed code is a failed check."
},
"port": {
"type": "string",
"maxLength": 8,
"description": "4-digit CBP port of entry of the filing."
},
"use": {
"type": "string",
"enum": [
"warehouse_entry",
"ftz_admission",
"exam_site",
"location_of_goods"
],
"description": "How the code will be used; enables the facility type check."
}
},
"required": [
"code"
],
"additionalProperties": false
}🟢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.
输入模式
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢get_cbp_port(port, types, include_deleted, limit, cursor)
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 call. Wraps GET /v1/ports/{port}. Live keys (fapi_live_...): one counted call. Test keys (fapi_test_...): fixture sample data, not counted.
输入模式
{
"type": "object",
"properties": {
"port": {
"type": "string",
"pattern": "^[0-9]{4}$",
"description": "4-digit CBP port code, e.g. 4601."
},
"types": {
"type": "array",
"items": {
"type": "string",
"enum": [
"01",
"02",
"03",
"04",
"05",
"06",
"07",
"08",
"09",
"10",
"11"
]
},
"description": "Only these facility types: 01 Container freight station (CFS), 02 Foreign trade zone (FTZ), 03 Pier or terminal, 04 Bonded warehouse, 05 Inspection facility, 06 Importer premises, 07 DP site, 08 CBP administrative, 09 Centralized examination station (CES), 10 Rail or air terminal (inferred), 11 CBP test."
},
"include_deleted": {
"type": "boolean",
"default": false,
"description": "Include deleted codes (ranked after active ones)."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 100
},
"cursor": {
"type": "string",
"pattern": "^[A-Za-z0-9]{4}$",
"description": "meta.next_cursor."
}
},
"required": [
"port"
],
"additionalProperties": false
}社区
证据