Once connected, your assistant can call any of the tools below. Each is documented as a synthetic
POST /tools/{name} operation with its complete input schema, output schema, and required permissions —
see the note on each operation for how this maps to the real MCP transport. The same information is also
available at connect time via the MCP tools/list method.
Search rates, request pricing, and create bookings.
rates_search_instant_price — Search and evaluate instant prices for a shipment lane.rates_evaluate_total_price_from_instant_price_search — Get the full priced breakdown for a specific instant price search result.rates_instant_book — Book a shipment against a confirmed instant price.rates_book_without_rate — Book a shipment without an existing rate, for supplier flows.rates_request_rate — Request a rate quote for a lane that isn't instantly bookable.rates_browse_quote_requests — List your organization's rate quote requests.rates_get_quote_request_details — Get the detail of a specific rate quote request.rates_get_quote_details — Get the detail of a specific quote.Find shipments and triage the ones that need action.
track_shipment — Find any shipment and see where it is in its lifecycle.browse_shipments — Search shipments by status, mode, date range, task, or demurrage/detention risk, with combinable filters.Search Flexport's network of addresses, companies, ports, and commodity codes.
network_search_addresses — Search and autocomplete addresses in your organization's network.network_search_google_addresses — Search addresses via Google Places, for addresses not yet in your network.network_search_company_entities — Search Flexport company entities and trading partners.network_search_ports — Search sea and air port locations by name or code.network_search_hs_codes — Search Harmonized System codes for commodity classification.network_search_fulfillment_inbound_addresses — Search eligible Flexport warehouse destinations for a booking that should auto-create a fulfillment inbound.list_active_company_users — List active users on your organization's Flexport account.Browse Flexport-managed shipments matching status, mode, date range, task, or demurrage/detention filters, paginated. Returns up to 100 tenant-scoped shipments per page with the same tracking detail as track_shipment: route stops, containers with last-free-day info, customs entries, exceptions, open work item tasks, and metadata tags.
This operation is a synthetic representation of an MCP tools/call invocation, not a literal REST endpoint. The Flexport MCP server exposes a single JSON-RPC 2.0 endpoint at POST https://mcp.flexport.com/mcp (MCP Streamable HTTP transport) — the tool name and arguments below are carried in the JSON-RPC request body, not in the HTTP path.
Permissions (any of): Admin, Analyst, Billing, Member, Tracker
Successful tool call.
{- "after": "string",
- "arrival_range": {
- "from": "string",
- "to": "string"
}, - "demurrage_risk": {
- "from": "string",
- "to": "string"
}, - "departure_range": {
- "from": "string",
- "to": "string"
}, - "detention_risk": {
- "from": "string",
- "to": "string"
}, - "first": 1,
- "flags": [
- "HAS_OPEN_TASK"
], - "is_completed": true,
- "modes": [
- "OCEAN_FCL"
], - "statuses": [
- "SHIPPER_LOCATION"
]
}{- "end_cursor": "string",
- "has_next_page": true,
- "shipments": [
- {
- "containers": [
- {
- "container_number": "string",
- "demurrage_last_free_day": "string",
- "detention_last_free_day": "string"
}
], - "created_at": "string",
- "customs": [
- {
- "entry_number": "string",
- "hold_agencies": [
- "string"
], - "status": "string"
}
], - "exceptions": [
- {
- "category": "string",
- "created_at": "string",
- "status": "string",
- "type": "string"
}
], - "flex_id": "string",
- "incoterm": "string",
- "is_completed": true,
- "milestones": [
- {
- "date": "string",
- "id": "string",
- "label": "string",
- "status": "string"
}
], - "mode": "string",
- "name": "string",
- "priority": "string",
- "route": [
- {
- "arrival_at": "string",
- "city": "string",
- "country": "string",
- "departure_at": "string",
- "name": "string",
- "street_address": "string",
- "type": "string"
}
], - "status": "string",
- "tags": [
- {
- "name": "string",
- "value": "string"
}
], - "tasks": [
- {
- "due_at": "string",
- "state": "string",
- "title": "string",
- "work_item_type": "string"
}
]
}
]
}List or search active users in your company, including yourself. Useful for looking up a quote request submitter by name or email, or for browsing all active users to pick one from.
This operation is a synthetic representation of an MCP tools/call invocation, not a literal REST endpoint. The Flexport MCP server exposes a single JSON-RPC 2.0 endpoint at POST https://mcp.flexport.com/mcp (MCP Streamable HTTP transport) — the tool name and arguments below are carried in the JSON-RPC request body, not in the HTTP path.
Permissions (any of): Admin, Analyst, Billing, Member
Successful tool call.
{- "after": "string",
- "first": 1,
- "query": "string"
}{- "end_cursor": "string",
- "has_next_page": true,
- "total_count": 0,
- "users": [
- {
- "email": "string",
- "name": "string",
- "user_id": 0
}
]
}Search addresses already onboarded in your Flexport network, by name, street, city, state, or company legal name. Returns address identifiers for use in other tools, such as rates_search_instant_price.
This operation is a synthetic representation of an MCP tools/call invocation, not a literal REST endpoint. The Flexport MCP server exposes a single JSON-RPC 2.0 endpoint at POST https://mcp.flexport.com/mcp (MCP Streamable HTTP transport) — the tool name and arguments below are carried in the JSON-RPC request body, not in the HTTP path.
Permissions (any of): Admin, Analyst, Billing, Member, Tracker
| limit | integer Maximum number of results to return. Must be between 1 and 50. Defaults to 10. |
| query required | string Address name, street, city, or state. The backend ANDs per-word prefix matches; postal/ZIP codes and country names or codes are not searched. Hyphens in street and unit identifiers, such as 1-7357 or Unit-321, are significant — searching for 7357 or 321 alone will not match those values. |
{- "limit": 0,
- "query": "string"
}{- "addresses": [
- {
- "address": "string",
- "address_fid": "string",
- "city": "string",
- "country_code": "string",
- "latitude": 0,
- "longitude": 0,
- "name": "string",
- "state": "string"
}
], - "count": 0,
- "has_more": true
}Search active Flexport company entities in your network by legal name. Matches on whole normalized legal-name similarity, not substrings — does not search DBA names or tax IDs. Returns company entity identifiers for use in other tools.
This operation is a synthetic representation of an MCP tools/call invocation, not a literal REST endpoint. The Flexport MCP server exposes a single JSON-RPC 2.0 endpoint at POST https://mcp.flexport.com/mcp (MCP Streamable HTTP transport) — the tool name and arguments below are carried in the JSON-RPC request body, not in the HTTP path.
Permissions (any of): Admin, Analyst, Billing, Member, Tracker
| limit | integer Number of results to return. Default 10, maximum 50. |
| query required | string Company entity legal name. The backend compares the complete normalized legal name using whole-string similarity rather than prefix matching. Corporate suffixes such as Inc, LLC, and Ltd are optional. Partial names, missing words, or typos may not match. |
Successful tool call.
required | Array of objects | ||||||||||||||
Array
| |||||||||||||||
| count required | integer Number of company entities returned in this response (at most the requested limit). | ||||||||||||||
| errors | Array of strings | ||||||||||||||
| has_more required | boolean True if more results exist beyond the current limit than were returned. | ||||||||||||||
{- "limit": 0,
- "query": "string"
}{- "company_entities": [
- {
- "business_registration_country_code": "string",
- "company": {
- "company_id": 0,
- "display_name": "string",
- "is_self_managed": true
}, - "company_entity_id": 0,
- "is_archived": true,
- "is_primary": true,
- "legal_name": "string",
- "shipment_roles": [
- "string"
]
}
], - "count": 0,
- "errors": [
- "string"
], - "has_more": true
}Search eligible Flexport warehouse destinations for a booking that should automatically create a fulfillment inbound. Eligibility depends on your account and the booking's origin. Returns address identifiers for use as the destination in rates_book_without_rate.
This operation is a synthetic representation of an MCP tools/call invocation, not a literal REST endpoint. The Flexport MCP server exposes a single JSON-RPC 2.0 endpoint at POST https://mcp.flexport.com/mcp (MCP Streamable HTTP transport) — the tool name and arguments below are carried in the JSON-RPC request body, not in the HTTP path.
Permissions (any of): Admin, Billing, Member
| cursor | string Opaque cursor from a previous response. Omit for the first page. |
| limit | integer Maximum number of results to return. Must be between 1 and 50. Defaults to 10. |
| origin_address_fid required | string Booking origin address FID used to determine eligible Flexport fulfillment warehouses. |
| query | string Optional warehouse name, street, city, or state search text. Defaults to empty. |
{- "cursor": "string",
- "limit": 0,
- "origin_address_fid": "string",
- "query": "string"
}{- "addresses": [
- {
- "address": "string",
- "address_fid": "string",
- "city": "string",
- "country_code": "string",
- "latitude": 0,
- "longitude": 0,
- "name": "string",
- "state": "string"
}
], - "count": 0,
- "has_more": true,
- "next_cursor": "string"
}Search Google Places for cities, postal codes, and general place matches not yet onboarded in your Flexport network. Returns address identifiers for use in other tools.
This operation is a synthetic representation of an MCP tools/call invocation, not a literal REST endpoint. The Flexport MCP server exposes a single JSON-RPC 2.0 endpoint at POST https://mcp.flexport.com/mcp (MCP Streamable HTTP transport) — the tool name and arguments below are carried in the JSON-RPC request body, not in the HTTP path.
Permissions (any of): Admin, Analyst, Billing, Member, Tracker
Successful tool call.
{- "country_codes": [
- "string"
], - "language_code": "string",
- "query": "string"
}{- "cities": [
- {
- "city": "string",
- "commerce_address_fid": "string",
- "coordinates": {
- "latitude": 0,
- "longitude": 0
}, - "country_code": "string",
- "formatted_address": "string",
- "name": "string",
- "postal_code": "string",
- "state": "string",
- "type": "string"
}
], - "count": 0,
- "errors": [
- "string"
], - "google_places": [
- {
- "city": "string",
- "commerce_address_fid": "string",
- "coordinates": {
- "latitude": 0,
- "longitude": 0
}, - "country_code": "string",
- "formatted_address": "string",
- "name": "string",
- "postal_code": "string",
- "state": "string",
- "type": "string"
}
], - "postal_codes": [
- {
- "city": "string",
- "commerce_address_fid": "string",
- "coordinates": {
- "latitude": 0,
- "longitude": 0
}, - "country_code": "string",
- "formatted_address": "string",
- "name": "string",
- "postal_code": "string",
- "state": "string",
- "type": "string"
}
]
}Search Flexport's six-digit international HS-code catalog by product description or code, for classifying goods when booking without a rate.
This operation is a synthetic representation of an MCP tools/call invocation, not a literal REST endpoint. The Flexport MCP server exposes a single JSON-RPC 2.0 endpoint at POST https://mcp.flexport.com/mcp (MCP Streamable HTTP transport) — the tool name and arguments below are carried in the JSON-RPC request body, not in the HTTP path.
Permissions (any of): Admin, Billing, Member
Successful tool call.
{- "limit": 0,
- "query": "string"
}{- "count": 0,
- "has_more": true,
- "hs_codes": [
- {
- "code": "string",
- "country_code": "string",
- "description": "string",
- "hs_code_dbid": 0
}
]
}Search Flexport's sea and air ports by name, city, UN/LOCODE, IATA code, ICAO code, or customs port code. Returns port identifiers for use in other tools.
This operation is a synthetic representation of an MCP tools/call invocation, not a literal REST endpoint. The Flexport MCP server exposes a single JSON-RPC 2.0 endpoint at POST https://mcp.flexport.com/mcp (MCP Streamable HTTP transport) — the tool name and arguments below are carried in the JSON-RPC request body, not in the HTTP path.
Permissions (any of): Admin, Analyst, Billing, Member, Tracker
| country_codes | Array of strings Filter by ISO-3166 alpha-2 country codes, e.g. ["US", "CN"]. Multiple codes are OR-combined. |
| limit | integer Number of results to return. Default 10, maximum 50. |
| query required | string Search text — matches port name, city, UN/LOCODE, IATA code, ICAO code, or customs port code. Must contain at least one letter or digit. |
| transportation_mode | string Filter by transportation mode. |
Successful tool call.
| count required | integer Number of ports returned in this response (at most the requested limit). | ||||||||||||||||||||
| errors | Array of strings | ||||||||||||||||||||
| has_more required | boolean True if more results exist beyond the current limit. Refine the query or increase limit to retrieve them. | ||||||||||||||||||||
required | Array of objects | ||||||||||||||||||||
Array
| |||||||||||||||||||||
{- "country_codes": [
- "string"
], - "limit": 0,
- "query": "string",
- "transportation_mode": "AIR"
}{- "count": 0,
- "errors": [
- "string"
], - "has_more": true,
- "ports": [
- {
- "city": "string",
- "codes": {
- "customs_port_code": "string",
- "iata": "string",
- "icao": "string",
- "un_locode": "string"
}, - "country_code": "string",
- "is_archived": true,
- "port_id": 0,
- "port_name": "string",
- "port_types": [
- "string"
], - "state": "string",
- "timezone": "string",
- "transportation_modes": [
- "string"
]
}
]
}Create and submit an unrated supplier booking for consignee acceptance — for suppliers or shippers booking without a rate. Flexport prepares the quote for the consignee after submission. Dangerous-goods cargo and document uploads aren't supported through this tool; use the Flexport web app for those.
This operation is a synthetic representation of an MCP tools/call invocation, not a literal REST endpoint. The Flexport MCP server exposes a single JSON-RPC 2.0 endpoint at POST https://mcp.flexport.com/mcp (MCP Streamable HTTP transport) — the tool name and arguments below are carried in the JSON-RPC request body, not in the HTTP path.
Permissions (any of): Admin, Billing, Member
| booking_confirmation_token | string Payload fingerprint returned by a previous preflight of these exact booking details. Reuse the token unchanged on retry; any change to the booking details invalidates it. | ||||||||||||||||||||||
required | Array of objects HS commodity lines for the shipment. Codes can be found via network_search_hs_codes. Exact duplicate code/description pairs are rejected rather than merged. At least one complete entry is required for a non-trucking booking. | ||||||||||||||||||||||
Array
| |||||||||||||||||||||||
required | object Total cargo measurements, packaging, piece counts, and dangerous-goods screening answers. This tool supports only false for every dangerous-goods field. | ||||||||||||||||||||||
| |||||||||||||||||||||||
| cargo_ready_date required | string Date in YYYY-MM-DD format when the supplier expects the cargo to be packed and available for pickup or handoff. | ||||||||||||||||||||||
| consignee_entity_id required | integer Consignee company entity numeric ID. Obtained from an active entity with the CONSIGNEE role via network_search_company_entities, using its company_entity_id field. | ||||||||||||||||||||||
| declared_as_strategy | string Whether the cargo contains strategic or export-controlled goods: yes, no, or notsure. Relevant when either the loading or unloading port is in Hong Kong. Provide eccn_codes when yes. | ||||||||||||||||||||||
| delivery_date | string Supplier's requested target arrival date at the final destination in YYYY-MM-DD format. This is a planning target, not a carrier-confirmed ETA or delivery appointment. | ||||||||||||||||||||||
| description_of_products | string Plain-language description of the products being shipped. | ||||||||||||||||||||||
| eccn_codes | string Comma-separated Export Control Classification Numbers for controlled goods, for example '3A001, 5A002'. | ||||||||||||||||||||||
| estimated_commercial_invoice_value | integer Estimated total merchandise value that will appear on the commercial invoice, in whole USD. This is cargo value, not freight cost, customs duty, or insurance premium. | ||||||||||||||||||||||
| memo | string Optional booking note or handling instruction for Flexport operations. | ||||||||||||||||||||||
required | Array of objects Optional booking shipment tags configured by the consignee. The tool validates supplied tags against the consignee's active booking metadata schema. Provide an empty list when no tags should be added. | ||||||||||||||||||||||
| name required | string Supplier-facing reference name used to identify this booking or shipment. | ||||||||||||||||||||||
| notify_party | string Party to notify when the cargo arrives. Required when notify_party_same_as_consignee is false. | ||||||||||||||||||||||
| notify_party_same_as_consignee required | boolean Whether the notify party is the consignee. When true, omit notify_party. When false, provide notify_party. | ||||||||||||||||||||||
| origin_address_fid required | string Cargo's origin location, normally the supplier facility where cargo is available for pickup — a Flexport FID string beginning 'flx::', NOT a numeric ID. Obtained from the address_fid field returned by network_search_addresses. If no matching address exists, it must be added in Flexport first. | ||||||||||||||||||||||
| origin_delivery_note | string Optional pickup instructions or access details for the origin location. Provide only when pickup service is selected. | ||||||||||||||||||||||
| origin_localized_address | string Localized-language pickup address, primarily the Chinese version of a China origin address. Provide only when pickup service is selected. | ||||||||||||||||||||||
| origin_needs_help_unloading | boolean Whether additional labor is needed to help load or unload cargo at pickup. Provide only when pickup service is selected. | ||||||||||||||||||||||
| policy_violations_confirmed | boolean Whether previously returned non-blocking Stoplight policy violations have been reviewed and confirmed. False on the initial attempt. | ||||||||||||||||||||||
| service_selection_confirmed required | boolean Whether the applicable service choices (pickup, delivery, export customs, and, where relevant, Hong Kong trade declaration) have been confirmed. Truck is always pickup and delivery door to door. For air and ocean, pickup defaults to true for EXW and FCA Factory and false for other incoterms; delivery defaults false. Export customs defaults true only for EXW. | ||||||||||||||||||||||
| shipper_entity_id required | integer Supplier company entity numeric ID. Obtained from an active entity with the SHIPPER role via network_search_company_entities, using its company_entity_id field. | ||||||||||||||||||||||
required | object or object or object | ||||||||||||||||||||||
Any of: Transportation choices. Select exactly one freight_method branch. Air and ocean require incoterm; truck requires truck_type and payment_terms and is always door to door. One of: Transportation choices. Select exactly one freight_method branch. Air and ocean require incoterm; truck requires truck_type and payment_terms and is always door to door.
| |||||||||||||||||||||||
| wants_create_fulfillment_inbound | boolean Whether Flexport should automatically create a fulfillment inbound from the shipment's LPNs. Selecting this limits the destination to Flexport warehouses; candidate destinations can be found via network_search_fulfillment_inbound_addresses using this booking's origin_address_fid. | ||||||||||||||||||||||
| wants_export_customs_service | boolean Whether Flexport should handle export customs clearance. Defaults to true for EXW and false for other incoterms. | ||||||||||||||||||||||
| wants_trade_declaration_service | boolean Whether Flexport should handle Hong Kong trade declaration. Relevant when the origin is in Hong Kong; otherwise defaults to false. | ||||||||||||||||||||||
Successful tool call.
| booking_id required | integer Numeric database ID of the created and submitted booking. |
| flex_id | string Created shipment FLEX-ID (e.g. "FLEX-1234567"), null if the booking failed. |
| next_action required | string Human-readable explanation of what happens next for the booking. |
object Consignee auto-approval cutoff settings when configured for this booking. | |
required | Array of objects Non-blocking consignee policy warnings or approval requirements returned by Stoplight. |
| shipment_id | integer Numeric database ID of the shipment created when the booking was submitted, or null if not returned. |
| url | string URL to view the created shipment in the Flexport app, null if the booking failed. |
| workflow_status required | string Current outcome of the booking workflow, such as submitted or pending_consignee_quote_acceptance. |
{- "booking_confirmation_token": "string",
- "booking_hs_codes": [
- {
- "description": "string",
- "description_for_export_customs": "string",
- "hs_code_dbid": 0
}
], - "cargo": {
- "contains_hazmat": true,
- "contains_li_ion": true,
- "contains_magnets": true,
- "contains_non_li_ion_battery": true,
- "contains_other_dangerous_goods": true,
- "marks_and_numbers": "string",
- "metric_units": true,
- "shipping_units": [
- {
- "atomic_count": 0,
- "count": 0,
- "dimension_metric_units": true,
- "height": 0,
- "length": 0,
- "name": "string",
- "unit_type": "bag",
- "volume": 0,
- "volume_metric_units": true,
- "weight": 0,
- "weight_metric_units": true,
- "width": 0
}
], - "slac": 0,
- "volume": 0,
- "weight": 0
}, - "cargo_ready_date": "string",
- "consignee_entity_id": 0,
- "declared_as_strategy": "yes",
- "delivery_date": "string",
- "description_of_products": "string",
- "eccn_codes": "string",
- "estimated_commercial_invoice_value": 0,
- "memo": "string",
- "metadatas": [
- {
- "attribute": "string",
- "values": [
- "string"
]
}
], - "name": "string",
- "notify_party": "string",
- "notify_party_same_as_consignee": true,
- "origin_address_fid": "string",
- "origin_delivery_note": "string",
- "origin_localized_address": "string",
- "origin_needs_help_unloading": true,
- "policy_violations_confirmed": true,
- "service_selection_confirmed": true,
- "shipper_entity_id": 0,
- "transportation": {
- "destination_address_fid": "string",
- "fca_subcategory": "port_cfs",
- "incoterm": "FCA",
- "port_of_loading_id": 0,
- "port_of_unloading_id": 0,
- "wants_delivery_service": true,
- "wants_pickup_service": true,
- "freight_method": "air"
}, - "wants_create_fulfillment_inbound": true,
- "wants_export_customs_service": true,
- "wants_trade_declaration_service": true
}{- "booking_id": 0,
- "flex_id": "string",
- "next_action": "string",
- "policy_approval_cutoff": {
- "cutoff_days": 0,
- "default_action": "string"
}, - "policy_violations": [
- {
- "action": "string",
- "additional_data": "string",
- "key": "string",
- "type": "string"
}
], - "shipment_id": 0,
- "url": "string",
- "workflow_status": "string"
}Find or browse your organization's rate quote requests by name, FLEX-ID, status, freight mode, origin/destination, or submitter. Returns each request's status, route, cargo, submitter, and a link to it in the Flexport web app.
This operation is a synthetic representation of an MCP tools/call invocation, not a literal REST endpoint. The Flexport MCP server exposes a single JSON-RPC 2.0 endpoint at POST https://mcp.flexport.com/mcp (MCP Streamable HTTP transport) — the tool name and arguments below are carried in the JSON-RPC request body, not in the HTTP path.
Permissions (any of): Admin, Analyst, Billing, Member
| address_fids | Array of strings Network addresses to filter by — Flexport FID strings beginning 'flx::', NOT numeric IDs. Matches either origin or destination. |
| after | string Pagination cursor. Pass end_cursor from the previous response to get the next page. |
| first | integer [ 1 .. 100 ] Number of results to return. Defaults to 10, maximum 100. |
| modes | Array of strings Freight modes to include: OCEAN, AIR, or TRUCK. |
| port_ids | Array of integers Ports to filter by — numeric IDs. Matches either origin or destination. |
| query | string Quote request name or FLEX-ID. Omit to list matching quote requests. |
| requestor_ids | Array of integers User IDs of specific submitters to filter by. Omit to return requests from all visible submitters. |
| status | string Quote status view. Defaults to ACTIVE, matching the web UI. Use ALL to include historical quote requests. |
Successful tool call.
| end_cursor | string | ||||||||||||||||||||||||||||||||
| has_next_page required | boolean | ||||||||||||||||||||||||||||||||
required | Array of objects | ||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||
| total_count required | integer | ||||||||||||||||||||||||||||||||
{- "address_fids": [
- "string"
], - "after": "string",
- "first": 1,
- "modes": [
- "OCEAN"
], - "port_ids": [
- 0
], - "query": "string",
- "requestor_ids": [
- 0
], - "status": "ACTIVE"
}{- "end_cursor": "string",
- "has_next_page": true,
- "quote_requests": [
- {
- "action_url": "string",
- "calculated_volume_cbm": 0,
- "calculated_weight_kg": 0,
- "cargo_description": "string",
- "cargo_ready_date": "string",
- "client_quote_status": "string",
- "containers": [
- {
- "count": 0,
- "type": "string"
}
], - "flex_id": "string",
- "freight_type": "string",
- "name": "string",
- "quote_count": 0,
- "quote_status": "string",
- "route": {
- "destination_address": {
- "country_code": "string",
- "name": "string"
}, - "destination_port": {
- "country_code": "string",
- "name": "string"
}, - "origin_address": {
- "country_code": "string",
- "name": "string"
}, - "origin_port": {
- "country_code": "string",
- "name": "string"
}
}, - "shipment_id": 0,
- "submitted_by": {
- "name": "string",
- "user_id": 0
}, - "transportation_mode": "string"
}
], - "total_count": 0
}Get the full, live-evaluated price breakdown — including any selected add-on services and detention options — for a rate selected from rates_search_instant_price results. Returns the total price, itemized charges by category, and a confirmation token used to complete the booking with rates_instant_book.
This operation is a synthetic representation of an MCP tools/call invocation, not a literal REST endpoint. The Flexport MCP server exposes a single JSON-RPC 2.0 endpoint at POST https://mcp.flexport.com/mcp (MCP Streamable HTTP transport) — the tool name and arguments below are carried in the JSON-RPC request body, not in the HTTP path.
Permissions (any of): Admin, Billing, Member
| detention_addon_free_days | integer Additional detention free days beyond the base free days included in the rate, corresponding to an add-on tier from detention_addon_options in the search result. Equal to the chosen tier's total_free_days minus the base free days. Omit (null) to price with only the base free days included in the rate. |
| item_snapshot_id required | string Identifier for the offering bundle to evaluate, taken from the item_snapshot_id field of a rates_search_instant_price result. |
| search_snapshot_id required | string search_snapshot_id from the rates_search_instant_price result. Carries the search form data (cargo, routing, incoterm, dates) used to reconstruct the pricing request. |
| wants_export_customs | boolean Whether to include Flexport export customs service in the evaluated price. True if the service is force-included (force_included=true) or was selected as an add-on, false otherwise. |
| wants_hk_trade_declaration | boolean Whether to include Hong Kong trade declaration service in the evaluated price. True if the service is force-included (force_included=true) or was selected as an add-on, false otherwise. |
| wants_import_customs | boolean Whether to include Flexport import customs service in the evaluated price. True if the service is force-included (force_included=true) or was selected as an add-on, false otherwise. |
| wants_inbond_transit | boolean Whether to include in-bond transit in the evaluated price. True if the service is force-included (force_included=true) or was selected as an add-on, false otherwise. |
| wants_insurance | boolean Whether to include cargo insurance in the evaluated price. True if the service is force-included (force_included=true) or was selected as an add-on, false otherwise. |
Successful tool call.
required | Array of objects Itemized charge line items. Each item includes a category (freight, origin, destination, customs, additional, capital), title, amount, and unit. |
| price_confirmation_token required | string Deterministic selection fingerprint returned with the evaluated price. Must be passed unchanged to rates_instant_book, which rejects bookings whose search_snapshot_id, item_snapshot_id, wants_* flags, or detention_addon_free_days differ from this value. This is a workflow guard, not a security credential or proof that this tool ran. |
required | object Total evaluated price for the selected offering bundle. |
{- "detention_addon_free_days": 0,
- "item_snapshot_id": "string",
- "search_snapshot_id": "string",
- "wants_export_customs": true,
- "wants_hk_trade_declaration": true,
- "wants_import_customs": true,
- "wants_inbond_transit": true,
- "wants_insurance": true
}{- "charge_line_items": [
- {
- "amount": "string",
- "category": "string",
- "title": "string",
- "unit": "string"
}
], - "price_confirmation_token": "string",
- "total_price": {
- "amount": "string",
- "currency": "string"
}
}Get one quote option's complete transit, route, and itemized rate detail, including charges, subtotals, total price, expiration, and a link to it in the Flexport web app.
This operation is a synthetic representation of an MCP tools/call invocation, not a literal REST endpoint. The Flexport MCP server exposes a single JSON-RPC 2.0 endpoint at POST https://mcp.flexport.com/mcp (MCP Streamable HTTP transport) — the tool name and arguments below are carried in the JSON-RPC request body, not in the HTTP path.
Permissions (any of): Admin, Analyst, Billing, Member, Tracker
Successful tool call.
| action_url required | string | ||||||||||||
| carrier | string | ||||||||||||
| carrier_transit_description | string | ||||||||||||
object | |||||||||||||
object | |||||||||||||
| freight_service | string | ||||||||||||
| main_service_type | string | ||||||||||||
| quote_id required | integer | ||||||||||||
| quote_reference required | string | ||||||||||||
| rate_expiration | string | ||||||||||||
required | Array of objects | ||||||||||||
required | object | ||||||||||||
| |||||||||||||
| shipment_id required | integer | ||||||||||||
| status required | string | ||||||||||||
required | object | ||||||||||||
required | object | ||||||||||||
| transportation_mode required | string | ||||||||||||
{- "quote_id": 0
}{- "action_url": "string",
- "carrier": "string",
- "carrier_transit_description": "string",
- "carrier_transit_estimate": {
- "maximum": 0,
- "minimum": 0,
- "unit": "string"
}, - "flexport_transit_estimate": {
- "maximum": 0,
- "minimum": 0,
- "unit": "string"
}, - "freight_service": "string",
- "main_service_type": "string",
- "quote_id": 0,
- "quote_reference": "string",
- "rate_expiration": "string",
- "rate_groups": [
- {
- "category": "string",
- "line_items": [
- {
- "currency_code": "string",
- "is_virtual": true,
- "name": "string",
- "name_annotation": "string",
- "price": 0,
- "price_display": "string",
- "quantity": 0,
- "quantity_description": "string",
- "rate": 0,
- "rate_description": "string",
- "unit": "string"
}
], - "subtotal": {
- "amount": 0,
- "currency_code": "string"
}, - "subtotal_display": "string"
}
], - "route": {
- "destination_addresses": [
- {
- "country_code": "string",
- "name": "string"
}
], - "destination_port": {
- "country_code": "string",
- "name": "string"
}, - "origin_address": {
- "country_code": "string",
- "name": "string"
}, - "origin_port": {
- "country_code": "string",
- "name": "string"
}, - "places_of_delivery": [
- {
- "country_code": "string",
- "name": "string"
}
], - "via_ports": [
- {
- "country_code": "string",
- "name": "string"
}
]
}, - "shipment_id": 0,
- "status": "string",
- "total_price": {
- "amount": 0,
- "currency_code": "string"
}, - "total_transit_time": {
- "destination_days": 0,
- "destination_deconsolidation_days": 0,
- "destination_dwell_days": 0,
- "maximum_days": 0,
- "maximum_p50_days": 0,
- "minimum_days": 0,
- "origin_consolidation_days": 0,
- "origin_days": 0,
- "origin_dwell_days": 0,
- "port_to_port_days": 0,
- "port_to_port_p50_days": 0
}, - "transportation_mode": "string"
}Get a quote request's submission details and every priced quote option it received, including carrier, transit estimates, costs, total price, expiration, and a link to it in the Flexport web app.
This operation is a synthetic representation of an MCP tools/call invocation, not a literal REST endpoint. The Flexport MCP server exposes a single JSON-RPC 2.0 endpoint at POST https://mcp.flexport.com/mcp (MCP Streamable HTTP transport) — the tool name and arguments below are carried in the JSON-RPC request body, not in the HTTP path.
Permissions (any of): Admin, Analyst, Billing, Member, Tracker
{- "shipment_id": 0
}{- "client_quote_status": "string",
- "flex_id": "string",
- "name": "string",
- "quote_options": [
- {
- "action_url": "string",
- "carrier": "string",
- "carrier_transit_description": "string",
- "carrier_transit_estimate": {
- "maximum": 0,
- "minimum": 0,
- "unit": "string"
}, - "flexport_transit_estimate": {
- "maximum": 0,
- "minimum": 0,
- "unit": "string"
}, - "freight_cost": {
- "amount": 0,
- "basis": "string",
- "currency_code": "string"
}, - "freight_service": "string",
- "inclusive_cost": {
- "amount": 0,
- "basis": "string",
- "currency_code": "string"
}, - "main_service_type": "string",
- "quote_id": 0,
- "quote_reference": "string",
- "rate_expiration": "string",
- "status": "string",
- "total_price": {
- "amount": 0,
- "currency_code": "string"
}, - "transportation_mode": "string"
}
], - "quote_status": "string",
- "shipment_id": 0,
- "submission_details": {
- "calculated_volume_cbm": 0,
- "calculated_weight_kg": 0,
- "cargo_ready_date": "string",
- "containers": [
- {
- "count": 0,
- "type": "string"
}
], - "freight_type": "string",
- "incoterm": "string",
- "route": {
- "destination_address": {
- "country_code": "string",
- "name": "string"
}, - "destination_port": {
- "country_code": "string",
- "name": "string"
}, - "origin_address": {
- "country_code": "string",
- "name": "string"
}, - "origin_port": {
- "country_code": "string",
- "name": "string"
}
}, - "services": {
- "delivery": true,
- "export_customs": true,
- "import_customs": true,
- "insurance": true,
- "pickup": true
}, - "submitter": {
- "id": 0,
- "name": "string"
}, - "transportation_mode": "string"
}
}Instantly create a real, binding booking, either against a prior rates_search_instant_price result or against a known client rate identifier. Booking against a search result requires first calling rates_evaluate_total_price_from_instant_price_search and passing its confirmation token.
This operation is a synthetic representation of an MCP tools/call invocation, not a literal REST endpoint. The Flexport MCP server exposes a single JSON-RPC 2.0 endpoint at POST https://mcp.flexport.com/mcp (MCP Streamable HTTP transport) — the tool name and arguments below are carried in the JSON-RPC request body, not in the HTTP path.
Permissions (any of): Admin, Billing, Member
object Cargo details for the booking. Required when booking via client_rate_id, and must match the rate's transportation mode (container_info for ocean_fcl, loose_cargo_info for ocean_lcl or air). Ignored when booking via search_snapshot_id/item_snapshot_id, since cargo is reused from the original search snapshot so the booking matches what was priced. | |||||||
| |||||||
| cargo_ready_date | string Cargo ready date in YYYY-MM-DD format. Required when booking via client_rate_id. Ignored when booking via search_snapshot_id/item_snapshot_id — the date from the original search is reused so the booking matches what was priced. | ||||||
| client_note | string Optional note from client | ||||||
| client_rate_id | integer Numeric client rate ID to book. No currently available endpoint returns this value directly; search_snapshot_id paired with item_snapshot_id from a search_instant_price call is the preferred way to identify a rate to book. Provide this field, or both search_snapshot_id and item_snapshot_id, but not both. | ||||||
| description_of_product | string Optional description of products being shipped | ||||||
| detention_addon_free_days | integer Additional detention free days selected from detention_addon_options on the search result, expressed as the add-on days only (not the total including base days). Omitting this field books with the base free days. | ||||||
| item_snapshot_id | string PREFERRED. Item snapshot ID identifying which search_instant_price result to book. Must be paired with search_snapshot_id. | ||||||
| name | string Optional name/description for the booking | ||||||
| price_confirmation_token | string Required in snapshot mode. Must be the price_confirmation_token returned by rates_evaluate_total_price_from_instant_price_search for the same search_snapshot_id, item_snapshot_id, wants_* flags, and detention_addon_free_days being booked; this endpoint recomputes the same selection fingerprint and rejects the booking if it does not match. This is a workflow-consistency guard, not an authentication credential. Ignored for client_rate_id mode. | ||||||
| search_snapshot_id | string PREFERRED. Search snapshot ID from a prior search_instant_price call. Must be paired with item_snapshot_id. Provide this pair OR client_rate_id — never both. | ||||||
object SSAT sailing week preference. Required in snapshot mode when the search result includes nac_allocation (rate_type=NAC with allocation data), using the year and week of one of the feasible weeks listed there (each described by week_date_range, available_allocation, and requested_teus). Omitted when nac_allocation is absent. | |||||||
| wants_export_customs | boolean Whether to include Flexport export customs service. Must be true if it is force_included=true on the search result's addon_service_options, and should be kept in sync with the value passed to rates_evaluate_total_price_from_instant_price_search. Snapshot mode only (search_snapshot_id + item_snapshot_id); ignored for client_rate_id. Fails if this rate does not offer or allow export customs. | ||||||
| wants_hk_trade_declaration | boolean Whether to include Hong Kong trade declaration service. Must be true if it is force_included=true on the search result's addon_service_options, and should be kept in sync with the value passed to rates_evaluate_total_price_from_instant_price_search. Snapshot mode only (search_snapshot_id + item_snapshot_id); ignored for client_rate_id. Fails if this rate does not offer or allow Hong Kong trade declaration. | ||||||
| wants_import_customs | boolean Whether to include Flexport import customs service. Must be true if it is force_included=true on the search result's addon_service_options, and should be kept in sync with the value passed to rates_evaluate_total_price_from_instant_price_search. Snapshot mode only (search_snapshot_id + item_snapshot_id); ignored for client_rate_id. Fails if this rate does not offer or allow import customs. | ||||||
| wants_inbond_transit | boolean Whether to include in-bond transit. Must be true if it is force_included=true on the search result's addon_service_options, and should be kept in sync with the value passed to rates_evaluate_total_price_from_instant_price_search. Snapshot mode only (search_snapshot_id + item_snapshot_id); ignored for client_rate_id. Fails if this rate does not offer or allow in-bond transit. | ||||||
| wants_insurance | boolean Whether to include cargo insurance. Must be true if it is force_included=true on the search result's addon_service_options, and should be kept in sync with the value passed to rates_evaluate_total_price_from_instant_price_search. Snapshot mode only (search_snapshot_id + item_snapshot_id); ignored for client_rate_id. Fails if this rate does not offer or allow insurance. | ||||||
Successful tool call.
| booking_id | integer Created booking ID (numeric dbid), null if the booking failed. |
| client_note | string Client note echoed back from the request. |
| description_of_product | string Description of product echoed back from the request. |
| destination | string Destination display name (port or address) of the booked rate. |
| error_code | string Failure reason, null on success. One of: RATE_LOOKUP_FAILED, RATE_NOT_FOUND, RATE_CLIENT_MISMATCH, RATE_NOT_ACTIVE, RATE_EXPIRED, RATE_NOT_YET_EFFECTIVE, CARGO_MODE_MISMATCH, BOOKING_FAILED, BOOKING_INCOMPLETE, SNAPSHOT_NOT_FOUND, SNAPSHOT_CLIENT_MISMATCH, MODE_NOT_ENABLED, REQUIRES_PRICE_CONFIRMATION. |
| error_message | string Human-readable failure reason, null on success. |
| flex_id | string Created shipment FLEX-ID (e.g. "FLEX-1234567"), null if the booking failed. |
| incoterm | string Incoterm of the booked rate. |
| name | string Name/description echoed back from the request. |
| origin | string Origin display name (port or address) of the booked rate. |
| quote_id | integer Created quote ID (numeric dbid), null if the booking failed. |
| shipment_id | integer Created shipment ID (numeric dbid), null if the booking failed. |
| success required | boolean Whether the booking was created successfully. |
| transportation_mode | string Transportation mode of the booked rate. |
| url | string URL to view the created shipment in the Flexport app, null if the booking failed. |
{- "cargo_details": {
- "container_info": {
- "container_20ft": 0,
- "container_40ft": 0,
- "container_40ft_hc": 0,
- "container_45ft_hc": 0
}, - "dangerous_goods": {
- "contains_dangerous_good": true,
- "dangerous_goods_types": [
- "HAZMAT"
], - "lithium_batteries_packing_types": [
- "CONTAINED_IN_BATTERY_POWERED_VEHICLE"
]
}, - "loose_cargo_info": {
- "shipping_units": [
- {
- "atomic_count": 0,
- "count": 0,
- "dimension_metric_units": true,
- "height": 0,
- "length": 0,
- "name": "string",
- "unit_type": "bag",
- "volume": 0,
- "volume_metric_units": true,
- "weight": 0,
- "weight_metric_units": true,
- "width": 0
}
], - "total_volume_cbm": 0,
- "total_weight_kg": 0
}
}, - "cargo_ready_date": "string",
- "client_note": "string",
- "client_rate_id": 0,
- "description_of_product": "string",
- "detention_addon_free_days": 0,
- "item_snapshot_id": "string",
- "name": "string",
- "price_confirmation_token": "string",
- "search_snapshot_id": "string",
- "ssat_allocation_preference": {
- "week": 0,
- "year": 0
}, - "wants_export_customs": true,
- "wants_hk_trade_declaration": true,
- "wants_import_customs": true,
- "wants_inbond_transit": true,
- "wants_insurance": true
}{- "booking_id": 0,
- "client_note": "string",
- "description_of_product": "string",
- "destination": "string",
- "error_code": "string",
- "error_message": "string",
- "flex_id": "string",
- "incoterm": "string",
- "name": "string",
- "origin": "string",
- "quote_id": 0,
- "shipment_id": 0,
- "success": true,
- "transportation_mode": "string",
- "url": "string"
}Request a new rate quote for a lane when rates_search_instant_price has no acceptable option — for example, a lane that needs a fixed (NAC) rate where only spot pricing is available.
This operation is a synthetic representation of an MCP tools/call invocation, not a literal REST endpoint. The Flexport MCP server exposes a single JSON-RPC 2.0 endpoint at POST https://mcp.flexport.com/mcp (MCP Streamable HTTP transport) — the tool name and arguments below are carried in the JSON-RPC request body, not in the HTTP path.
Permissions (any of): Admin, Billing, Member
| cargo_ready_date required | string Cargo ready date in YYYY-MM-DD format |
| destination_address_fid | string Destination address, specified as a Flexport FID string beginning with 'flx::' (not a numeric ID). Obtained from the address_fid field returned by network_search_addresses, or the commerce_address_fid field returned by network_search_google_addresses if no matching address is found. |
| destination_port_id | integer Destination port, specified as a numeric ID. Obtained from the port_id field returned by network_search_ports. |
| freight_type | string Freight type: port_to_port, port_to_door, door_to_port, door_to_door |
| incoterm required | string Incoterm: EXW, FCA, FOB, CIF, CIP, CFR, CPT, DAP, DAT, DDP, DPU, FAS |
| note | string Optional free-text note for the Flexport account team, such as cargo profile (commodity type, dimensions, weight, hazmat status, temperature requirements), target price or budget, expected shipment volume (shipments or TEUs per month/year), or other special requirements. |
| offering_contract_type | string Contract type: HEDGE_FAK (spot/FAK rate, resolved in ~2 business days) or LONG_NAC (Named Account Contract, AE will communicate timeline). Omit if unspecified — defaults to HEDGE_FAK. |
| origin_address_fid | string Origin address, specified as a Flexport FID string beginning with 'flx::' (not a numeric ID). Obtained from the address_fid field returned by network_search_addresses, or the commerce_address_fid field returned by network_search_google_addresses if no matching address is found. |
| origin_port_id | integer Origin port, specified as a numeric ID. Obtained from the port_id field returned by network_search_ports. |
| transportation_mode required | string Transportation mode: air, ocean_fcl, ocean_lcl |
{- "cargo_ready_date": "string",
- "destination_address_fid": "string",
- "destination_port_id": 0,
- "freight_type": "port_to_port",
- "incoterm": "CFR",
- "note": "string",
- "offering_contract_type": "HEDGE_FAK",
- "origin_address_fid": "string",
- "origin_port_id": 0,
- "transportation_mode": "air"
}{- "client_request_id": "string",
- "errors": [
- "string"
], - "nextAction": "string"
}Search available instant-price freight rates for Ocean FCL, Ocean LCL, or Air shipments, given origin, destination, cargo-ready date, incoterm, and cargo details. Returns rate options with carrier, pricing, transit time, charge breakdown, available add-on services, detention options, and CO2e emissions. Doesn't support dangerous goods or FTL/road-only shipments.
This operation is a synthetic representation of an MCP tools/call invocation, not a literal REST endpoint. The Flexport MCP server exposes a single JSON-RPC 2.0 endpoint at POST https://mcp.flexport.com/mcp (MCP Streamable HTTP transport) — the tool name and arguments below are carried in the JSON-RPC request body, not in the HTTP path.
Permissions (any of): Admin, Billing, Member
required | object Cargo details. For OCEAN_FCL, provide container_info with container counts. For OCEAN_LCL or AIR, provide loose_cargo_info with total_weight_kg and total_volume_cbm; for AIR, also provide shipping_units with dimensions to detect oversized cargo. Must include dangerous_goods screening. | ||||||
| |||||||
| cargo_ready_date required | string ISO date when cargo is ready at origin, e.g. 2025-09-01. | ||||||
| destination_commerce_address_fid | string Destination address — a Flexport FID string beginning 'flx::', not a numeric ID. Required when freight_type is PORT_TO_DOOR or DOOR_TO_DOOR; also accepted for *_TO_PORT to let the backend resolve the nearest port from the address coordinates. Use the address_fid from a network_search_addresses result for an address already onboarded in Flexport, or the commerce_address_fid from a network_search_google_addresses result for a general address (e.g. city, postal code, street address). | ||||||
| destination_port_id | integer Destination port — a numeric ID, taken from the port_id field of a network_search_ports result. Used when freight_type is PORT_TO_PORT or DOOR_TO_PORT and a specific port is specified. Mutually exclusive with destination_commerce_address_fid for PORT. | ||||||
| freight_type required | string Service scope controlling pickup/delivery inclusion: PORT_TO_PORT, PORT_TO_DOOR, DOOR_TO_PORT, or DOOR_TO_DOOR. Determined by whether the origin/destination is a port ID (PORT) or an address (DOOR). | ||||||
| incoterm required | string Trade term governing cost/risk split: EXW, FCA, FAS, FOB, CFR, CIF, CPT, CIP, DAP, DAT, DPU, or DDP. | ||||||
| origin_commerce_address_fid | string Origin address — a Flexport FID string beginning 'flx::', not a numeric ID. Required when freight_type is DOOR_TO_PORT or DOOR_TO_DOOR; also accepted for PORT_TO_* to let the backend resolve the nearest port from the address coordinates. Use the address_fid from a network_search_addresses result for an address already onboarded in Flexport, or the commerce_address_fid from a network_search_google_addresses result for a general address (e.g. city, postal code, street address). | ||||||
| origin_port_id | integer Origin port — a numeric ID, taken from the port_id field of a network_search_ports result. Used when freight_type is PORT_TO_PORT or PORT_TO_DOOR and a specific port is specified. Mutually exclusive with origin_commerce_address_fid for PORT. | ||||||
| transportation_mode required | string Freight mode: OCEAN_FCL, OCEAN_LCL, or AIR. | ||||||
Successful tool call.
| empty_reason | string Set when results is empty. AIR_CARGO_OVERSIZED means one or more packages exceed regional dimension limits. NO_RESULTS means no instant-price rates were found. | ||||||||||||||||||||||||||||||||||||||||
| errors | Array of strings | ||||||||||||||||||||||||||||||||||||||||
required | Array of objects List of available rate options. | ||||||||||||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||||||||||||
| search_snapshot_id | string Snapshot ID for this search. Pass to follow-up calls to identify the search session. | ||||||||||||||||||||||||||||||||||||||||
{- "cargo": {
- "container_info": {
- "container_20ft": 0,
- "container_40ft": 0,
- "container_40ft_hc": 0,
- "container_45ft_hc": 0
}, - "dangerous_goods": {
- "contains_dangerous_good": true,
- "dangerous_goods_types": [
- "HAZMAT"
], - "lithium_batteries_packing_types": [
- "CONTAINED_IN_BATTERY_POWERED_VEHICLE"
]
}, - "loose_cargo_info": {
- "shipping_units": [
- {
- "atomic_count": 0,
- "count": 0,
- "dimension_metric_units": true,
- "height": 0,
- "length": 0,
- "name": "string",
- "unit_type": "bag",
- "volume": 0,
- "volume_metric_units": true,
- "weight": 0,
- "weight_metric_units": true,
- "width": 0
}
], - "total_volume_cbm": 0,
- "total_weight_kg": 0
}
}, - "cargo_ready_date": "string",
- "destination_commerce_address_fid": "string",
- "destination_port_id": 0,
- "freight_type": "port_to_port",
- "incoterm": "CFR",
- "origin_commerce_address_fid": "string",
- "origin_port_id": 0,
- "transportation_mode": "air"
}{- "empty_reason": "string",
- "errors": [
- "string"
], - "results": [
- {
- "addon_service_options": [
- {
- "force_included": true,
- "service_type": "string"
}
], - "carrier_name": "string",
- "charge_line_items": [
- {
- "amount": "string",
- "category": "string",
- "title": "string",
- "unit": "string"
}
], - "co2e_tonnes": 0,
- "detention_addon_options": [
- {
- "addon_price": {
- "amount": "string",
- "currency": "string"
}, - "total_free_days": 0
}
], - "detention_base_free_days": 0,
- "effective_date": "string",
- "expiration_date": "string",
- "gri_applicable": true,
- "item_snapshot_id": "string",
- "nac_allocation": {
- "crd_week": {
- "availability": "string",
- "available_allocation": 0,
- "feasible": true,
- "total_allocation": 0,
- "week_date_range": "string"
}, - "requested_teus": 0,
- "total_remaining_available": 0,
- "total_remaining_capacity": 0,
- "upcoming_weeks": [
- {
- "availability": "string",
- "available_allocation": 0,
- "feasible": true,
- "total_allocation": 0,
- "week_date_range": "string"
}
]
}, - "port_to_port_transit_max_days": 0,
- "port_to_port_transit_min_days": 0,
- "rate_type": "string",
- "route": {
- "destination_port": {
- "country_code": "string",
- "display_name": "string",
- "iata_code": "string",
- "loc_code": "string",
- "name": "string",
- "port_id": 0
}, - "destination_via_port": {
- "country_code": "string",
- "display_name": "string",
- "iata_code": "string",
- "loc_code": "string",
- "name": "string",
- "port_id": 0
}, - "origin_port": {
- "country_code": "string",
- "display_name": "string",
- "iata_code": "string",
- "loc_code": "string",
- "name": "string",
- "port_id": 0
}, - "origin_via_port": {
- "country_code": "string",
- "display_name": "string",
- "iata_code": "string",
- "loc_code": "string",
- "name": "string",
- "port_id": 0
}, - "route_type": "string"
}, - "service_level": "string",
- "tags": [
- "string"
], - "total_price": {
- "amount": "string",
- "currency": "string"
}, - "total_transit_max_days": 0,
- "total_transit_min_days": 0
}
], - "search_snapshot_id": "string"
}Search for a Flexport shipment by FLEX-ID, name, or client-assigned tag. Returns up to 20 matching shipments with full tracking detail: route stops, containers with last-free-day info, customs declarations with hold status, exceptions, work item tasks, and metadata tags.
This operation is a synthetic representation of an MCP tools/call invocation, not a literal REST endpoint. The Flexport MCP server exposes a single JSON-RPC 2.0 endpoint at POST https://mcp.flexport.com/mcp (MCP Streamable HTTP transport) — the tool name and arguments below are carried in the JSON-RPC request body, not in the HTTP path.
Permissions (any of): Admin, Analyst, Billing, Member, Tracker
| flex_id | string Flexport FLEX-ID to search for (e.g. "FLEX-1234567"). Exact match only — unlike name and tag, an ID with no exact match returns no results rather than a close (fuzzy) one. Mutually exclusive with name and tag — supply exactly one. |
| name | string Shipment name to search for. Matches exactly when possible, otherwise returns close (fuzzy) matches. Mutually exclusive with flex_id and tag — supply exactly one. |
| tag | string Client-assigned tag value to search for. Matches exactly when possible, otherwise returns close (fuzzy) matches. Mutually exclusive with flex_id and name — supply exactly one. |
Successful tool call.
required | Array of objects Matching shipments (up to 20). | ||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||
{- "flex_id": "string",
- "name": "string",
- "tag": "string"
}{- "shipments": [
- {
- "containers": [
- {
- "container_number": "string",
- "demurrage_last_free_day": "string",
- "detention_last_free_day": "string"
}
], - "created_at": "string",
- "customs": [
- {
- "entry_number": "string",
- "hold_agencies": [
- "string"
], - "status": "string"
}
], - "exceptions": [
- {
- "category": "string",
- "created_at": "string",
- "status": "string",
- "type": "string"
}
], - "flex_id": "string",
- "incoterm": "string",
- "is_completed": true,
- "milestones": [
- {
- "date": "string",
- "id": "string",
- "label": "string",
- "status": "string"
}
], - "mode": "string",
- "name": "string",
- "priority": "string",
- "route": [
- {
- "arrival_at": "string",
- "city": "string",
- "country": "string",
- "departure_at": "string",
- "name": "string",
- "street_address": "string",
- "type": "string"
}
], - "status": "string",
- "tags": [
- {
- "name": "string",
- "value": "string"
}
], - "tasks": [
- {
- "due_at": "string",
- "state": "string",
- "title": "string",
- "work_item_type": "string"
}
]
}
]
}