TowBook MCP
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
TowBook MCP
Read-only local MCP server for a TowBook account you are already logged into. It does not create, update, cancel, or delete anything.
TowBook does not publish an API for this. The server calls the same JSON endpoints the dispatch site uses, with your browser session cookie. Those endpoints can change when TowBook ships a new frontend.
How it works
Claude Desktop / Claude Code / ChatGPT desktop (Codex or Work)
| stdio
v
towbook-mcp (this process, on your machine)
| GET only, allowlisted paths, Cookie header
v
https://app.towbook.comThe process refuses every method except GET, and refuses any path that is not on the allowlist. Accept, cancel, complete, and notification-read calls exist in the TowBook app. They are not tools.
The cookie never goes in git, Slack, or this README. It lives in a file only your user can read, or in the TOWBOOK_COOKIE environment variable.
Related MCP server: Stripe
Tools
Tool | Endpoint | Notes |
|
| Dispatch board. Summaries only. |
|
| Needs at least one filter. |
|
| Best-effort. Seen as a numeric XHR, not confirmed against a body. |
|
| Summaries. |
|
| |
|
| |
|
| |
|
| Optional |
|
| |
|
| |
|
| |
|
| Does not mark them read. |
Pass companyId when you have more than one company. It is sent as X-Company.
The board list is a short summary. It does not include invoices, payments, commissions, or notes. Use these when you need the billing row:
commission_reportreads the payroll table: driver, license, truck, vehicle, VIN, call, invoice, account, PO, weight class, totals, payments, balance, payment status, driver base, commission. TowBook leaves the note columns blank on that report.get_billing_packetfills the gap: internal billing notes and account notes, plus cash, check, or card on each payment.get_account,get_job,get_job_payments,get_invoice, andlist_payment_typesare the underlying records.run_reportwithreportTypeCallWorkflowis a query, not a save. Those rows includebillingNotes. It cannot create or change a call.
Photos, file uploads, and every write stay off.
1. Get the cookie
You need a TowBook login. The cookie is the session. Treat it like a password.
In Brave or Chrome, open https://app.towbook.com and log in. Land on Dispatching.
Open DevTools. On a Mac: View → Developer → Developer Tools, or press Command-Option-I.
Open the Network tab. If it is empty, reload the dispatch page. Reloading only reads the page.
In the filter box, type
app.towbook.comor click Fetch/XHR.Click a request whose name is
quotes,callRequests/, orcompanydispatchstatuses. Do not use a request to Google, Sentry, or Pusher.Open the Headers tab. Under Request Headers, find
Cookie.Copy the value only. That is the text after
Cookie:, the whole string, including everyname=valuepair separated by semicolons.Do not copy the response body. Do not paste the cookie into chat, Slack, or a git repo.
Save it:
mkdir -p ~/.config/towbook-mcp
chmod 700 ~/.config/towbook-mcp
# Paste the cookie into this file. One line. No "Cookie:" prefix required.
# Then:
chmod 600 ~/.config/towbook-mcp/cookie.txtA header line Cookie: session=... is also accepted. The file must not be world-readable.
The cookie dies when you log out, or when TowBook expires the session. If tools start returning "Refresh the cookie", repeat these steps. Do not store the cookie in the shell history. Prefer the file over export TOWBOOK_COOKIE=....
2. Install locally
Node 20 or newer.
git clone https://github.com/ZRApps/towbook-mcp.git
cd towbook-mcp
npm install
node src/check.jsA line starting with ok means the session works. The check does not print the cookie or the response body.
3. Connect Claude Desktop
Quit Claude Desktop first.
Edit ~/Library/Application Support/Claude/claude_desktop_config.json. Create it if it is missing. Merge this into mcpServers rather than deleting other servers. Replace both paths.
{
"mcpServers": {
"towbook": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/towbook-mcp/src/index.js"],
"env": {
"TOWBOOK_COOKIE_FILE": "/Users/YOU/.config/towbook-mcp/cookie.txt"
}
}
}
}A starter file is in examples/claude_desktop_config.json. Restart Claude Desktop. The server should appear in the tool list. Ask it to list dispatch statuses, not to change a call.
4. Connect Claude Code
From any directory:
claude mcp add --transport stdio --env TOWBOOK_COOKIE_FILE=$HOME/.config/towbook-mcp/cookie.txt towbook -- node /ABSOLUTE/PATH/TO/towbook-mcp/src/index.jsIf that flag set differs in your Claude Code version, put the same JSON block in the project's .mcp.json or in ~/.claude.json under mcpServers. Restart the session. claude mcp list should show towbook.
5. Connect ChatGPT
Standard Chat, and the older ChatGPT Classic app, cannot launch a local stdio server. They only attach to remote HTTP connectors. This server is not exposed on the internet, and it should not be. A public tunnel would send the session cookie's data off the machine.
Use the current ChatGPT desktop app, in Codex or ChatGPT Work:
Open Settings and find Add MCP Server (Codex and ChatGPT Work run locally and accept stdio).
Name:
towbookType: STDIO
Command:
node /ABSOLUTE/PATH/TO/towbook-mcp/src/index.jsEnvironment:
TOWBOOK_COOKIE_FILE=/Users/YOU/.config/towbook-mcp/cookie.txtSave, then start a Codex or Work thread and ask for a read, such as dispatch statuses.
If the dialog has no STDIO type, you are in standard Chat. Switch to Codex or Work. Do not paste a public URL.
Security
Read-only. A bug cannot POST, PUT, PATCH, or DELETE, because the client throws before the network call.
Allowlisted paths only.
/api/calls/1/uncanceland/api/pusherare refused.Redirects are not followed. A login redirect is reported as an expired session.
Errors do not include the cookie.
Do not commit
cookie.txt,.env, or HAR files..gitignorealready excludes them.This is your TowBook data. The model will see whatever a tool returns. Prefer the summary tools over asking it to dump every field.
Repository
Source: https://github.com/ZRApps/towbook-mcp
The cookie file, session values, and account records are not in this repository. Keep ~/.config/towbook-mcp/cookie.txt on your machine only.
Development
npm testTests use a local mock. They do not call TowBook.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Read-only access to your Drivara fleet — jobs, drivers, vehicles, fuel, profit & analytics.
Read-only CRE prospects, listings, campaigns, reporting, broker search, and resources.
Read-only access to a Zoopit account: orders, routes, fleet and live vehicle positions.
Read-only access to PRRO.cloud fiscal cash registers, shifts, tasks, billing and webhooks.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables read-only access to FileMaker databases through the Data API, allowing users to retrieve records, analyze metadata, search across layouts, and infer relationships while maintaining data security.16MIT
- AlicenseNot gradedqualityDmaintenanceEnables read-only querying of payments and billing data via the full official REST API, covering customers, charges, payment intents, subscriptions, invoices, refunds, and more.MIT
- AlicenseAqualityBmaintenanceEnables read-only access to Teramind's employee-monitoring metadata, including computer and agent inventory, departments, alerts, anomaly rules, behavior policies, and monitoring profiles.161Apache 2.0
- AlicenseBqualityBmaintenanceProvides read-only access to a Ryde account so agents can pull completed rides and GPS routes, owned and available RidePasses, payments, city fare rules, and ride summaries or pass-cost comparisons. Requires an SMS-authenticated login and never modifies account data.20MIT