Connect Project44 to ChatGPT: Track Freight & Manage Logistics Data
Learn how to connect Project44 to ChatGPT using a managed MCP server. This step-by-step guide covers tracking freight, dispatching LTL, and AI tool calling.
If you need to connect Project44 to ChatGPT to track global freight, automate LTL dispatching, or audit supply chain performance, you need a Model Context Protocol (MCP) server. This server acts as the secure translation layer between ChatGPT's function calls and Project44's complex logistics APIs. You can either build and maintain this infrastructure yourself, or use a managed integration platform like Truto to dynamically generate a secure, authenticated MCP server URL.
If your team uses Claude, check out our guide on connecting Project44 to Claude or explore our broader architectural overview on connecting Project44 to AI Agents.
Giving a Large Language Model (LLM) read and write access to a highly specialized logistics platform like Project44 is a significant engineering challenge. You have to handle multi-modal routing paradigms, massive nested arrays of tracking events, and distinct APIs for LTL, TL, Ocean, and Parcel. Every time you need a new logistics feature, your custom server code must be updated, redeployed, and tested.
This guide breaks down exactly how to use Truto to generate a secure, managed MCP server for Project44, connect it natively to ChatGPT, and execute complex freight tracking workflows using natural language.
The Engineering Reality of the Project44 API
A custom MCP server is a self-hosted integration layer. While the open MCP standard provides a predictable way for models to discover tools, implementing it against Project44's massive and highly fragmented API surface is exceptionally painful.
If you decide to build a custom MCP server for Project44, you own the entire API lifecycle. Here are the specific integration challenges that break standard CRUD assumptions when working with Project44:
Multi-Modal API Fragmentation
Unlike standard SaaS platforms where a Shipment is a unified entity, Project44 separates operations by transit modality. You do not just "create a shipment". You must call entirely different endpoints depending on if you are handling Less-than-Truckload (LTL), Volume LTL (VLTL), Truckload (TL), Ocean, Rail, or Parcel. Building an MCP server requires you to parse and map dozens of separate resource schemas into distinct tools (e.g., create_a_project_44_ltl_dispatch vs. create_a_project_44_multi_modal_booking), otherwise, the LLM will completely hallucinate the required payload parameters for a given freight type.
Deeply Nested Event and Position Histories
When an LLM asks "Where is my shipment and why is it delayed?", the underlying API response is not a simple status string. A call to fetch shipment tracking history returns massive JSON structures containing costs, contents, events, exceptions, positions, states, and sensorContext. Mapping these gigantic nested arrays into an LLM context window without blowing past token limits requires aggressive schema pruning and pagination handling.
Strict Rate Limiting and Backoff Requirements
Project44 enforces strict API rate limits to protect its real-time tracking infrastructure. When building against it, you must handle HTTP 429 Too Many Requests responses gracefully. Factual note on rate limits: Truto does not retry, throttle, or apply backoff on rate limit errors. When the upstream Project44 API returns a 429, Truto passes that error directly to the caller. Truto normalizes the upstream rate limit information into standardized headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset) per the IETF specification. The caller - meaning your AI agent or orchestration framework - is entirely responsible for implementing exponential backoff and retry logic.
Project44 to ChatGPT Quickstart Guide
If you want the fastest path from a fresh Truto account to ChatGPT successfully calling the Project44 API, follow these steps. Deeper architecture and security details live in the sections below.
What you need:
- A Truto account with API access.
- A Project44 account with valid API credentials (Client ID and Secret).
- A ChatGPT Pro, Plus, Business, Enterprise, or Education seat with Developer mode enabled.
Step 1: Connect Project44 as an Integrated Account
First, you need to establish the core connection. In the Truto dashboard, navigate to Integrated Accounts -> New Integrated Account, select Project44, and enter your client credentials. Truto securely manages the OAuth 2.0 token generation lifecycle, ensuring your AI agents always have valid access without manual credential rotation.
Step 2: Grab your Integrated Account ID
You can copy the integrated_account_id directly from the Truto UI on the account detail page, or fetch it programmatically via the API:
curl https://api.truto.one/integrated-account \
-H "Authorization: Bearer $TRUTO_API_TOKEN"Step 3: Generate the Project44 MCP Server
You can generate the MCP server endpoint using either the Truto UI or the API.
Method A: Via the Truto UI
- Navigate to the integrated account page for your Project44 connection.
- Click the MCP Servers tab.
- Click Create MCP Server.
- Select your desired configuration (name, allowed methods, specific tags like
ltl,tracking,appointments). - Copy the generated MCP server URL.
Method B: Via the API
Make a single POST call to scope an MCP endpoint specifically to that integrated account. You can filter by methods and tags to strictly constrain what ChatGPT is allowed to do:
curl -X POST https://api.truto.one/integrated-account/$INTEGRATED_ACCOUNT_ID/mcp \
-H "Authorization: Bearer $TRUTO_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Project44 Freight Ops for ChatGPT",
"config": {
"methods": ["read", "write"],
"tags": ["shipments", "tracking", "ltl", "appointments"]
}
}'The response contains a url field resembling https://api.truto.one/mcp/<token>. This single URL handles routing, tool discovery, and authentication. Treat it as a secret.
Step 4: Connect the MCP Server to ChatGPT
You can register this server with ChatGPT using the native UI or via a configuration file.
Method A: Via the ChatGPT UI
- In ChatGPT, go to Settings -> Apps -> Advanced settings.
- Enable Developer mode.
- Under MCP servers / Custom connectors, click to add a new server.
- Enter a name (e.g., "Project44 Truto Connector").
- Paste the Truto MCP URL into the Server URL field and click Save.
Method B: Via Manual Config File If you are managing local environments or using Claude Desktop/Cursor alongside ChatGPT, you can define the SSE connection manually. Create or update your MCP configuration JSON file:
{
"mcpServers": {
"project44-truto": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-sse",
"https://api.truto.one/mcp/<YOUR_SECURE_TOKEN>"
]
}
}
}Once connected, ChatGPT will automatically request the tools/list from the server, and the auto-generated Project44 tools will become immediately available in your chat interface.
Project44 Hero Tools for AI Agents
Truto derives MCP tools directly from the Project44 API documentation. Here are the highest-leverage tools your agents can use to manage logistics.
1. Search Shipments (project_44_shipment_search_search)
Allows the LLM to search for shipments across your organization matching a complex set of criteria (e.g., status, date ranges, origin, destination). This is the standard entry point for auditing delayed freight.
"Find all active shipments that were supposed to be delivered to Chicago this week but are currently delayed."
2. Get Shipment Tracking History (get_single_project_44_shipment_tracking_history_by_id)
Retrieves the complete historical footprint of a specific shipment, including all sensor events, geographical positions, exceptions, and cost updates. Requires the shipment id.
"Pull the complete tracking history for shipment ID 'shp_987654321' and tell me what time the last temperature sensor warning was logged."
3. Search LTL Rate Quotes (project_44_ltl_rate_quotes_search)
Queries project44 for Less-Than-Truckload rate quotes across multiple carriers based on origin, destination, weight, and handling units.
"Get LTL rate quotes to ship 2 pallets weighing 1500 lbs class 70 from zip code 90210 to 60601."
4. Dispatch LTL Shipment (create_a_project_44_ltl_dispatch)
Creates a dispatch request to a capacity provider for an LTL shipment. This actually initiates the physical logistics move and returns tracking identifiers and Bill of Lading (BOL) URLs.
"Dispatch the LTL shipment using the Old Dominion rate quote ID 'quote_555'. The pickup is scheduled for tomorrow at 9 AM at the Los Angeles warehouse."
5. Create Multi-Modal Rating (create_a_project_44_multi_modal_rating)
Submits a rate request for complex multi-modal shipments (e.g., Ocean to Rail to TL). Essential for global supply chain planning.
"Run a multi-modal rating request for a 40-foot container moving from the Port of Shanghai to our inland distribution center in Dallas."
6. Book an Appointment (create_a_project_44_appointment)
Books a facility or yard appointment for a specific shipment. This handles the critical handoff between transit and warehouse operations.
"Book a delivery appointment for shipment 'shp_12345' at the Atlanta facility code 'ATL_01' for October 12th at 14:00."
7. Get Shipment Position History (get_single_project_44_shipment_position_history_by_id)
Retrieves only the raw geolocation telemetry for a shipment, bypassing the heavier event history. Useful for mapping and ETA calculations.
"Get the raw position history for shipment ID 'shp_777' and list the coordinates recorded over the last 24 hours."
For a complete list of all supported endpoints and detailed JSON schemas, view the full Project44 integration page.
Workflows in Action
Connecting ChatGPT to Project44 turns manual logistics auditing and dispatching into conversational tasks. Here is how different personas leverage these tools in practice.
Scenario 1: Freight Auditing and Exception Management
Persona: Supply Chain Manager
"Search for all inbound truckload shipments headed to the Dallas warehouse that currently have an exception status. For each one, pull the tracking history and give me a summary of the latest delay reason."
Step-by-step Execution:
- ChatGPT calls
project_44_shipment_search_searchusing query parameters for destination "Dallas" and status "Exception". - The server returns a list of matching shipment IDs (e.g.,
shp_001,shp_002). - ChatGPT iterates through the IDs, calling
get_single_project_44_shipment_tracking_history_by_idfor each one. - ChatGPT parses the massive JSON response, isolates the
exceptionsandeventsarrays, and synthesizes a plain-English summary of the delays.
sequenceDiagram
participant User as User
participant ChatGPT as ChatGPT
participant MCP as Truto MCP Server
participant Project44 as Project44 API
User->>ChatGPT: "Find exceptions for Dallas..."
ChatGPT->>MCP: call: project_44_shipment_search_search<br>{"destination": "Dallas"}
MCP->>Project44: POST /api/v4/shipments/search
Project44-->>MCP: [shp_001, shp_002]
MCP-->>ChatGPT: Tool Result
ChatGPT->>MCP: call: get_single_project_44_shipment_tracking_history_by_id<br>{"id": "shp_001"}
MCP->>Project44: GET /api/v4/shipments/shp_001/history
Project44-->>MCP: { events: [...], exceptions: [...] }
MCP-->>ChatGPT: Tool Result
ChatGPT-->>User: "Shipment shp_001 is delayed due to weather in Denver..."Scenario 2: LTL Quoting and Dispatch Automation
Persona: Logistics Coordinator
"I need to ship 4 pallets (class 65, 2000 lbs total) from our Seattle origin to the Austin destination. Get me LTL rate quotes, pick the cheapest option under 4 transit days, and dispatch it."
Step-by-step Execution:
- ChatGPT structures the payload and calls
project_44_ltl_rate_quotes_searchwith the origin, destination, and handling unit specifics. - The Truto MCP server returns an array of carrier quotes, transit times, and prices.
- ChatGPT analyzes the array, identifies the quote that meets the cost and transit time parameters (e.g., FedEx Freight).
- ChatGPT then automatically calls
create_a_project_44_ltl_dispatchusing the selected quote ID and carrier details to initiate the shipment. - The LLM returns the newly created Project44 shipment identifiers and BOL URL to the user.
flowchart TD
A["User Prompt:<br>Quote & Dispatch LTL"] --> B["ChatGPT Agent"]
B -->|"call: project_44_ltl_rate_quotes_search"| C["Truto MCP"]
C -->|"Proxy Request"| D["Project44 API"]
D -->|"Carrier Quotes"| C
C -->|"Tool Result"| B
B -->|"Evaluate Quotes"| B
B -->|"call: create_a_project_44_ltl_dispatch"| C
C -->|"POST Dispatch"| D
D -->|"BOL & Shipment ID"| C
C -->|"Tool Result"| B
B --> E["Present BOL & Tracking<br>to User"]Security and Access Control
Exposing an enterprise logistics platform to an AI model requires strict governance. Truto's MCP servers provide granular controls to ensure ChatGPT cannot accidentally delete loads or misroute freight.
- Method Filtering: Configure the MCP token config with
methods: ["read"]to allow searching and tracking while strictly blockingcreate,update, ordeleteactions (like canceling a dispatch). - Tag Filtering: Use
config.tags(e.g.,tags: ["ltl", "tracking"]) to restrict the LLM's view to only specific business domains, hiding administrative or financial tools from the AI entirely. - Require API Token Auth: By enabling
require_api_token_auth: true, you force the calling client to pass a valid Truto API token in addition to the secure MCP URL. This prevents anonymous execution even if the MCP URL is leaked. - Automatic Expiration: Set an
expires_attimestamp when creating the MCP server. Truto will automatically destroy the server and revoke credentials at that exact time, which is ideal for temporary contractor access or limited-duration agent runs.
Stop Writing Boilerplate Integration Code
Connecting Project44 to ChatGPT shouldn't require months of custom infrastructure work to handle OAuth, rate limits, pagination, and dynamic JSON-RPC mapping. By leveraging Truto's MCP architecture, you shift the burden of API translation entirely to the infrastructure layer.
Your engineers can focus on building intelligent logistics prompts and orchestrating multi-agent workflows, while Truto handles the messy reality of enterprise B2B SaaS connectivity.
FAQ
- Does Truto automatically handle Project44 rate limits?
- No. Truto passes upstream HTTP 429 Too Many Requests errors directly back to the caller. Truto standardizes the rate limit information into headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset). Your agent framework is responsible for implementing exponential backoff.
- Can I prevent ChatGPT from creating or deleting Project44 shipments?
- Yes. When creating the MCP server via Truto, you can use method filtering by setting config.methods to ['read']. This ensures the LLM can only query data and track freight, but cannot execute write or delete operations.
- How are tools generated from the Project44 API?
- Truto dynamically derives MCP tools directly from Project44's API documentation and resource schemas. If a method has a documentation description, it is automatically converted into an AI-ready tool with strict query and body JSON schemas.
- Does this work with Claude or other LLMs?
- Yes. Because Truto exposes standard Model Context Protocol (MCP) JSON-RPC endpoints, the same server URL can be consumed by ChatGPT, Claude Desktop, Cursor, or custom frameworks like LangChain and CrewAI.