Tool reference
Every tool the Hank MCP server offers, what it takes, and who can use it.
Your AI assistant chooses these tools for you; you don't call them by name. This reference is for checking what an assistant can do, or for building your own MCP client.
Arguments every tool accepts
settingsScope appears only on tools that edit settings that can differ by location, and confirm only on tools that preview a change first.
Prop
Type
Your account
Find the organizations and locations you can work in.
whoami
The signed-in Hank user, the organization and location this call resolved to, your role there, and whether the org is multi-location. Call this first.
Takes no arguments beyond the shared ones.
list_organizations
Organizations you belong to and your role in each. Pass an id as orgId to other tools.
Takes no arguments beyond the shared ones.
list_locations
Locations you can access in the organization. Pass an id as locationId to other tools.
Takes no arguments beyond the shared ones.
Call routing
Who Hank can transfer to, and which route handles each kind of call.
get_call_routing
Everything on the Call Routing and Transfer Routes pages for this scope: routing contacts, employees and what happens when a caller asks for them, transfer routes with their calling order and on-call status, which route handles each kind of call (emergency, appointment, appointment cancellation, TPA, outage, default, before Hank answers, out of area) in and after business hours, the routing options, departments and TPAs. Ids here are what the other routing tools take. In multi-location orgs, settingsScope picks the location ("location", the default) or the organization ("organization"); departments and TPAs are organization-wide.
Takes no arguments beyond the shared ones.
upsert_routing_contact
Add a person Hank can transfer calls to, or edit one by id. A new contact needs firstName, phone and email. Only the fields you pass change. Takes effect on live calls immediately. In multi-location orgs, settingsScope picks the location ("location", the default) or the organization ("organization"); departments and TPAs are organization-wide.
Prop
Type
remove_routing_contact
Remove a routing contact. Hank refuses while a transfer route, on-call schedule, employee, department or the employee calls setting still uses them; the preview lists each place to change first. Takes effect on live calls immediately. In multi-location orgs, settingsScope picks the location ("location", the default) or the organization ("organization"); departments and TPAs are organization-wide.
Prop
Type
upsert_routing_employee
Employees are routing contacts callers can ask for by name. whenAsked says what happens: call_employee rings them, then up to 3 backups; route sends the call to a transfer route; other_employee sends it to another contact. Takes effect on live calls immediately. In multi-location orgs, settingsScope picks the location ("location", the default) or the organization ("organization"); departments and TPAs are organization-wide.
Prop
Type
remove_routing_employee
Stop treating a contact as an employee callers can ask for. The contact stays. Takes effect on live calls immediately. In multi-location orgs, settingsScope picks the location ("location", the default) or the organization ("organization"); departments and TPAs are organization-wide.
Prop
Type
set_routing_assignment
Pick which transfer route handles a kind of call. emergency, appointment, appointment_cancellation, tpa and outage have a business-hours route (routeId) and an after-hours route (afterHoursRouteId, or "same_as_business_hours"); default, before_hank and out_of_area take routeId only. null clears an assignment; an empty business-hours route falls back to the default route. Omitted fields keep their saved value. In multi-location orgs, outage, before_hank and out_of_area are organization-wide; emergency, appointment and appointment_cancellation are per location; tpa and default exist at both, and a location's route overrides the organization's. A TPA route must stay assigned while TPAs exist. Takes effect on live calls immediately.
Prop
Type
update_call_routing_options
The switches on the Call Routing page. appointmentBookingEnabled: Hank books appointments itself (single-location orgs only). appointmentTryTeamFirst: try a team member before Hank books. beforeHank: ring the team before Hank answers (its route is set with set_routing_assignment purpose before_hank); callerIdMode shows the team the caller's number ("caller") or the Hank line ("hank"). employeeCallsContactId: who takes calls from employees. outOfAreaMode (multi-location orgs): send out-of-area callers to the nearest office or to the out-of-area route. Only fields you pass change. Takes effect on live calls immediately. In multi-location orgs, settingsScope picks the location ("location", the default) or the organization ("organization"); departments and TPAs are organization-wide.
Prop
Type
upsert_department
Departments are teams Hank transfers to when a caller's need matches whenToTransfer, each with its own calling order of 1 to 4 contacts. Organization-wide in multi-location orgs. Only fields you pass change; a new department needs name and callingOrder. Takes effect on live calls immediately.
Prop
Type
remove_department
Delete a department. Hank stops transferring callers to it. Organization-wide in multi-location orgs. Takes effect on live calls immediately.
Prop
Type
upsert_tpa
Third-party administrators (TPAs) are partner programs that send work. Hank matches a caller's program to these names and sends the call to the TPA route. Adding the first TPA needs TPA business-hours and after-hours routes assigned first (set_routing_assignment purpose tpa). Organization-wide in multi-location orgs. Takes effect on live calls immediately.
Prop
Type
remove_tpa
Delete a TPA. Callers from that program are no longer recognized as a partner dispatch. Organization-wide in multi-location orgs. Takes effect on live calls immediately.
Prop
Type
Transfer routes
Named calling orders that kinds of calls are assigned to.
upsert_transfer_route
A transfer route is a named calling order of 1 to 4 routing contacts. Create one, or rename it or change its calling order by id. Its on-call schedule, if any, is kept; the calling order is what callers reach when no on-call coverage applies. Use set_routing_assignment to choose which calls use it. Names are unique (ignoring case). Takes effect on live calls immediately. In multi-location orgs, settingsScope picks the location's routes ("location", the default) or the organization's ("organization"); a route can only be assigned in its own scope.
Prop
Type
remove_transfer_route
Delete a transfer route and its on-call schedule. Hank refuses while any kind of call or employee still uses it; the preview lists where, so those can be pointed at another route first. Takes effect on live calls immediately. In multi-location orgs, settingsScope picks the location's routes ("location", the default) or the organization's ("organization"); a route can only be assigned in its own scope.
Prop
Type
On-call rotations
Who a route calls right now, and when that changes.
get_on_call
Who is on call for a transfer route (or every route) right now, its on-call schedule, and a coverage timeline like the dashboard calendar: each stretch of time with the calling order and whether it comes from the rotation, a planned shift, temporary coverage or the route's own calling order. Ids in the schedule are what the other on-call tools take. In multi-location orgs, settingsScope picks the location's routes ("location", the default) or the organization's ("organization").
Prop
Type
set_on_call_rotation
Create or replace a route's repeating rotation: starting at startDate's handoffTime, each turn lasts turnLengthDays and the turns repeat in order. Creates the schedule if the route has none and makes the rotation the schedule type. Temporary coverage and planned shifts are kept, and a paused schedule stays paused. Returns the next 14 days of coverage. Takes effect on live calls immediately. In multi-location orgs, settingsScope picks the location's routes ("location", the default) or the organization's ("organization").
Prop
Type
upsert_on_call_coverage
Add or edit a stretch of coverage on a route: temporary coverage (a swap, covering a day, a holiday) wins over the rotation and planned shifts and expires on its own; a planned shift is coverage for specific dates when the schedule type is planned. Entries of the same kind can't overlap. A route without a schedule gets one. Returns the next 14 days of coverage. Times are local wall-clock times in the schedule's timezone, formatted YYYY-MM-DDTHH:mm; an end time is exclusive, so a whole day is 00:00 to 00:00 the next day. Takes effect on live calls immediately. In multi-location orgs, settingsScope picks the location's routes ("location", the default) or the organization's ("organization").
Prop
Type
remove_on_call_coverage
Remove one temporary coverage entry or planned shift by id (see get_on_call). Callers then reach whatever the schedule gives for that time. Returns the next 14 days of coverage. Takes effect on live calls immediately. In multi-location orgs, settingsScope picks the location's routes ("location", the default) or the organization's ("organization").
Prop
Type
update_on_call_schedule
enabled false pauses the schedule (callers reach the route's calling order) and true resumes it with the same rotation. mode picks the schedule type: recurring (the rotation) or planned (specific dated shifts); the other type's data is kept. Changing timezone keeps the rotation's local handoff time; dated entries keep their exact moments, so their local times shift. Returns the next 14 days of coverage. Takes effect on live calls immediately. In multi-location orgs, settingsScope picks the location's routes ("location", the default) or the organization's ("organization").
Prop
Type
remove_on_call_schedule
Delete a route's whole on-call schedule: rotation, planned shifts and temporary coverage. Callers then always reach the route's calling order. To stop it for a while, pause it with update_on_call_schedule instead. Takes effect on live calls immediately. In multi-location orgs, settingsScope picks the location's routes ("location", the default) or the organization's ("organization").
Prop
Type
Hours, service area and leads
The settings that decide business hours, which office takes a call, and which callers are leads.
get_office_hours
Office timezone, weekly hours, lunch closure and holiday closures, which decide whether calls use each kind of call's business-hours or after-hours route, plus whether the office counts as open right now.
Takes no arguments beyond the shared ones.
update_office_hours
Change the office timezone, hours for any days, the lunch closure (treated as after hours), or holiday closures (whole days treated as after hours). Days you omit keep their hours. holidays.add and holidays.remove change the list without resending it. Takes effect on live calls immediately.
Prop
Type
get_service_area_zips
ZIP codes this location serves. In multi-location orgs a caller's ZIP decides which office's routing takes the call; with lead policy on, it decides who counts as out of area. Pass locationId to pick the office.
Takes no arguments beyond the shared ones.
update_service_area_zips
Add or remove ZIP codes for one location (pass locationId to pick the office). In multi-location orgs a ZIP can belong to only one office. Takes effect on live calls immediately.
Prop
Type
get_lead_policy
The lead policy: whether it's on, the company's own description of the work it takes, whether only homeowners count, what Hank does with each kind of non-lead caller, the office number, referral, and paid vendor lines. When on, it can stop a transfer or ask a screening question before any dial; emergencies and partner dispatches skip it.
Takes no arguments beyond the shared ones.
update_lead_policy
Change the lead policy. Only the fields you pass change, and actions merge per category. Turning it on, requiring homeowners, changing vendor lines or choosing an action that ends the call returns a preview unless called with confirm: true. Organization-wide. Takes effect on live calls immediately.
Prop
Type