Use Happy Tactic from your AI assistant
Once connected, you can ask “which of my loads deliver today?”, “create a load for Prairie Harvest Foods, Columbus to Atlanta, Nov 4, dry van, $2,350” or “verify MC 1499417 — the dispatcher is Angela Doss, (614) 555-0142”, and the assistant does it in your Happy Tactic account. New here? Connect it and say “Help me set up my account.” It checks what is done and takes you through company details, teammates, customers and your first carrier verification, one step at a time.
Overview
Happy Tactic runs a remote tool server using the open Model Context Protocol (MCP) — the standard way assistants call tools. Your assistant connects to it with an API key.
| Server URL | https://api.happytactic.com/api/mcp |
| Sign-in | API key as Authorization: Bearer hkpt_… — the same keys as the API |
| Link with the key in it | https://api.happytactic.com/api/mcp/k/hkpt_… — for assistants that only take a URL. Treat it like a password. |
| In the app | Settings → API Keys → AI assistants creates the key and shows these steps with your key filled in. |
1. Create a key
Settings → API Keys → AI assistants → Create key for my assistant. Choose what it may do:
| Permission | Lets the assistant | Who can give it |
|---|---|---|
| Read (always) | Look up loads, check calls, customers, carriers, verifications, today’s pickups and deliveries | Anyone |
| Write | Create loads, change load statuses, add check calls | Account owner / admin |
| Create and start verifications | Start carrier verifications — each uses a credit and emails the carrier’s owner | Account owner / admin |
| Set up my account | Change company details and defaults, add and edit customers and contacts, invite teammates (they get an email and use a seat). Never billing, plan, payments or security, and nothing is deleted | Account owner / admin |
The key acts as you, inside your company only — the same data, role and plan limits you have in the app. Revoke it on the same page to switch the assistant off immediately. Keys expire (1 year by default).
2. Install
Replace YOUR_API_KEY with your key.
Claude (web, desktop app, mobile)
Checked against Claude’s help pages on 2026-11-03.
- Open Customize → Connectors and click Add custom connector.
- Paste the server URL with your key in it (below).
- If asked how to sign in, choose No sign-in and leave the OAuth fields empty. Click Add.
https://api.happytactic.com/api/mcp/k/YOUR_API_KEYOn Team and Enterprise plans an Owner adds it under Organization settings → Connectors → Add → Custom, and each member then clicks Connect. Claude can’t edit a connector’s sign-in settings later — remove it and add it again (for example after replacing a key). If your Claude shows Request headers (a beta some organizations have), you can use the plain URL https://api.happytactic.com/api/mcp with the header value Bearer YOUR_API_KEY.
Prefer a config file in Claude Desktop? Settings → Developer → Edit Config, merge this in, save and restart (needs Node.js; it runs a small local bridge):
{
"mcpServers": {
"happytactic-tools": {
"command": "npx",
"args": ["-y", "mcp-remote@0.14.3", "https://api.happytactic.com/api/mcp", "--header", "Authorization:${AUTH_HEADER}"],
"env": { "AUTH_HEADER": "Bearer YOUR_API_KEY" }
}
}
}ChatGPT
OpenAI’s help article Developer mode and MCP apps in ChatGPT has the current steps and OpenAI renames these screens often, so follow its menu names if yours differ. As of 2026-11-03 it says:
- ChatGPT connects to remote servers only, in ChatGPT on the web (not the mobile app).
- Tools that change data are a beta on Business, Enterprise and Edu plans, where a workspace admin turns developer mode on. On Pro, custom servers are read-only. So use a read-only key with ChatGPT unless your workspace admin has enabled write tools.
- Add a custom app or connector, paste the link with your key in it, and if asked for authentication choose No authentication.
https://api.happytactic.com/api/mcp/k/YOUR_API_KEYCursor
Add this to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json in a project:
{
"mcpServers": {
"happytactic-tools": {
"url": "https://api.happytactic.com/api/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}Claude Code
Run once, then type /mcp to check it is connected (a wrong key shows a 401).
claude mcp add --transport http happytactic-tools https://api.happytactic.com/api/mcp --header "Authorization: Bearer YOUR_API_KEY"Anything else
Any assistant that supports remote tool servers over Streamable HTTP: server URL https://api.happytactic.com/api/mcp with the header Authorization: Bearer YOUR_API_KEY, or the link with the key in it.
Tools
The load, customer, carrier and verification tools are the matching API endpoints — same validation, scope, rate limit and answers. The account set-up tools run the same code as the screens in the app, as you: if the app would refuse you, so does the assistant.
| Tool | What it does | Needs | Same as |
|---|---|---|---|
| whoami | Which company and user this connection is, and what the key may do | read | GET /v1/ping |
| search_loads | Find loads by text, status, customer, carrier, lane, pickup dates, needs-attention | read | GET /v1/loads |
| get_load | One load in full | read | GET /v1/loads/{id} |
| list_check_calls | A load’s check calls, newest first | read | GET /v1/loads/{id}/check-calls |
| todays_loads | Today’s pickups and deliveries + the Needs attention list (plans with dashboards) | read | Dashboard cards |
| list_customers / get_customer | Customers; use the id when creating loads | read | GET /v1/customers… |
| list_carriers / get_carrier | Carriers, filter by verdict (green = OK to book) | read | GET /v1/carriers… |
| list_verifications / get_verification | Verifications with Trust score and decision | read | GET /v1/verifications… |
| create_load | Create a Draft load (credit limit and carrier booking rules apply) | write | POST /v1/loads |
| update_load_status | Move a load to its next status (only legal moves) | write | PATCH /v1/loads/{id}/status |
| add_check_call | Record where the truck is, a note, an ETA | write | POST /v1/loads/{id}/check-calls |
| create_verification | Create and start a verification (one credit; emails the owner). Needs confirm: true after you said yes; start: false only saves a draft | write + verifications | POST /v1/verifications |
| setup_status | What is set up and what is next for a new company | read | Checklist |
| get_company_settings | Company name, address, phone, time zone, defaults | read | Settings |
| update_company_profile | Name, address, phone, signature, invoice note, time zone | write + account set-up | Settings → Company |
| update_company_defaults | Default equipment, units, fuel surcharge; what new customers start with | write + account set-up | TMS settings |
| list_team_members | The team, roles and seats used | read | Team page |
| invite_team_member | Invite a broker or dispatcher (emails them, uses a seat; needs confirm: true) | write + account set-up | Team → Invite |
| create_customer / update_customer | Add a customer; billing email, statement email, invoice rules | write | Customers |
| list_customer_contacts | A customer’s contacts | read | Customers |
| add_customer_contact / update_customer_contact / add_customer_address | Contacts and addresses | write | Customers |
| lookup_carrier | Find a carrier by MC or DOT number and add it to the directory (no email, no credit) | write | New verification, step 1 |
Tools your key can’t use are not listed (a read-only key sees only the read tools). create_load and create_verification take an optional idempotencyKey: repeating a call with the same key returns the first result instead of creating a second one.
What it can and cannot do
Can: read loads (stops, charges, references, history), check calls, customers, carriers with their latest verdict, and verifications; show today’s pickups and deliveries; create a Draft load; move a load to its next status; add a check call; set up the account (company details, defaults, customers with their own payment terms, contacts and addresses, teammates); look up a carrier by MC or DOT number; start a verification.
Cannot, on purpose: delete anything; change billing, your plan, payments, where invoices are paid to, or security settings; make someone an admin; change the legal company name (that needs approval in the app). Cannot yet: work with drivers, equipment, invoices, bills or settlements, read or upload documents, send offers or tenders, or cancel a verification.
Safety
- The assistant can only do what the key allows. Use a read-only key unless you want it to change things, and tell it to confirm before it does.
- Starting a verification and inviting a teammate cost money or send an email, so the assistant must pass
confirm: true, which it should only do after you said yes. Every change it makes is written to your audit log with the key’s name. - A link with the key in it is a password. Revoke the key if it leaks.
- Limits: the connection allows 120 requests a minute, and each tool keeps its endpoint’s own limit (reads 120/min, writes 60/min, verifications 10/min).
- Errors come back as plain sentences the assistant can read.