Use with AI assistants
AI assistants such as Claude, Cursor and GitHub Copilot can call the HighQube API for you, through the hosted MCP server (Model Context Protocol). Ask "What does a 40'HC from Chicago to Shanghai cost?" and the assistant searches your rates and answers from them.
| Server | Address | What it does |
|---|---|---|
| HighQube API | https://mcp.scalar.com/@highqube/highqube-api-calls | One tool per endpoint: search rates, surcharges, LCL, trucking, port codes and quotes. Calls the API with your key. |
| HighQube docs | https://mcp.scalar.com/@highqube/highqube-api-90e7b768 | Searches these docs. No key needed. |
The API server answers with your organization's data, so it needs your API key. It sends the key on each call and doesn't store it.
Give an assistant a read-only key: Read rates & surcharges and Read quotes. A key that can create quotes lets the assistant file real quotes to your customers. Calls come from the MCP server's own addresses, so a key that only works from your IP addresses won't work here.
Connect
claude mcp add --transport http highqube https://mcp.scalar.com/@highqube/highqube-api-calls \
--header "Authorization: Bearer $HIGHQUBE_API_KEY"
In .cursor/mcp.json (keep it out of version control, it holds your key):
{
"mcpServers": {
"highqube": {
"url": "https://mcp.scalar.com/@highqube/highqube-api-calls",
"headers": { "Authorization": "Bearer hq_test_..." }
}
}
}
In .vscode/mcp.json. VS Code asks for the key once and keeps it out of the file:
{
"inputs": [
{ "type": "promptString", "id": "highqube-key", "description": "HighQube API key", "password": true }
],
"servers": {
"highqube": {
"type": "http",
"url": "https://mcp.scalar.com/@highqube/highqube-api-calls",
"headers": { "Authorization": "Bearer ${input:highqube-key}" }
}
}
}
Any other MCP client that can send a header over HTTP works the same way: the address above, and Authorization: Bearer <your key>.
What it can do
| Tool | Endpoint |
|---|---|
search_rates | GET /rate-search |
a_rate_s_surcharges_and_price_breakdown | GET /rate-groups/{rate_group_id}/surcharges |
get_lcl_rates | POST /contracts/lcl-rates |
get_drayage_rates, search_places_for_drayage | GET /drayage/rates, GET /drayage/locations |
search_un_locations, search_airports_by_iata_code | GET /unlocations, GET /unlocations/iata_codes |
list_quotes, get_a_quote, download_a_quote_s_spreadsheet | GET /quotes, GET /quotes/{quote_id}, GET /quotes/{quote_id}/download |
export_rates_as_an_excel_rate_sheet_or_quote | POST /rate-search/export (needs Create quotes) |
Every call counts against your key's rate limits, and answers the same errors. Without a key, the server refuses the call and says how to send one.
Try it
Ask your assistant:
Using the HighQube tools, find the two cheapest 40'HC rates from Chicago (USCHI) to
Shanghai (CNSGH). For each, tell me the carrier, the port it sails from (originVia),
the price, and any surcharges listed in unpricedCharges that aren't in the price yet.

