Read Tookan tasks, agents, teams and customers; create delivery tasks and assign agents.
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
WRITE: assign (or reassign) a task to an agent of a team; replaces any previous agent. Notifies the agent unless notify is false (so repeating the call notifies again). POST /v2/assign_fleet_to_task.
Task (job) id.
The agent's team id (from tookan_list_teams).
Agent id (from tookan_list_agents).
Notify the agent (default true).
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
WRITE: assign (or reassign) a task to an agent of a team; replaces any previous agent. Notifies the agent unless notify is false (so repeating the call notifies again). POST /v2/assign_fleet_to_task.
| Argument | Type | Description |
|---|---|---|
| job_id* | integer | Task (job) id. |
| notify | boolean | Notify the agent (default true). |
| team_id* | integer | The agent's team id (from tookan_list_teams). |
| fleet_id* | integer | Agent id (from tookan_list_agents). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"job_id",
"fleet_id",
"team_id"
],
"properties": {
"job_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Task (job) id.",
"exclusiveMinimum": 0
},
"notify": {
"type": "boolean",
"description": "Notify the agent (default true)."
},
"team_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The agent's team id (from tookan_list_teams).",
"exclusiveMinimum": 0
},
"fleet_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Agent id (from tookan_list_agents).",
"exclusiveMinimum": 0
}
}
}WRITE: create a delivery task (job) for a customer address, due by job_delivery_datetime in the given timezone. Optionally assign it to an agent (fleet_id) or team, or let Tookan auto-assign it within the team. Returns job_id and tracking link. Always uses the address given here, not one saved for the customer's phone (ignore_customer_lat_long 1). POST /v2/create_task (has_pickup 0, has_delivery 1, layout_type 0).
| Argument | Type | Description |
|---|---|---|
| tags | string | Comma-separated agent tags used by auto-assignment. |
| notify | boolean | Send the customer/agent notifications. |
| team_id | integer | Team to put the task in (from tookan_list_teams). |
| fleet_id | integer | Agent to assign the task to (from tookan_list_agents). |
| latitude | string | Delivery latitude (else Tookan geocodes the address). |
| order_id | string | Your own reference for the task. |
| timezone* | integer | Minutes to ADD to local time to get UTC (Tookan's convention): IST = -330, CET = -60, EST = 300, PST = 480. |
| longitude |
Find customers by exact phone number. POST /v2/find_customer_with_phone.
| Argument | Type | Description |
|---|---|---|
| phone* | string | Phone number, e.g. "9897416008" or "+19897416008". |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"phone"
],
"properties": {
"phone": {
"type": "string",
"minLength": 3,
"description": "Phone number, e.g. \"9897416008\" or \"+19897416008\"."
}
}
}The connected Tookan account (admin user): user_id, email, name, company name and address. Good first call. POST /v2/get_user_details.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}One agent's profile (name, email, phone, tags, transport, location, rating, active state) and current tasks. Only profile fields are returned; app tokens and password hashes never are. POST /v2/view_fleet_profile.
| Argument | Type | Description |
|---|---|---|
| fleet_id* | integer | Agent id (fleet_id from tookan_list_agents). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"fleet_id"
],
"properties": {
"fleet_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Agent id (fleet_id from tookan_list_agents).",
"exclusiveMinimum": 0
}
}
}An agent's last known coordinates (latitude/longitude). POST /v2/get_fleet_location.
| Argument | Type | Description |
|---|---|---|
| fleet_id* | integer | Agent id (fleet_id from tookan_list_agents). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"fleet_id"
],
"properties": {
"fleet_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Agent id (fleet_id from tookan_list_agents).",
"exclusiveMinimum": 0
}
}
}One customer's profile (contact details, address, coordinates). POST /v2/view_customer_profile.
| Argument | Type | Description |
|---|---|---|
| customer_id* | integer | Customer id (from tookan_list_customers). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id"
],
"properties": {
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Customer id (from tookan_list_customers).",
"exclusiveMinimum": 0
}
}
}Task counts per status (e.g. successful vs failed), optionally for one task type, one team and a date range. Task status codes: 0 assigned, 1 started, 2 successful, 3 failed, 4 in progress/arrived, 6 unassigned, 7 accepted/acknowledged, 8 declined, 9 cancelled, 10 deleted. POST /v2/user_task_stats.
| Argument | Type | Description |
|---|---|---|
| team_id | integer | Only tasks of this team. |
| end_date | string | End date, YYYY-MM-DD. |
| job_type | any | Task type: 0 = pickup, 1 = delivery, 2 = appointment, 3 = field workforce (FOS). |
| job_status | array | Only these statuses, e.g. [2, 3]. |
| start_date | string | Start date, YYYY-MM-DD. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"team_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only tasks of this team.",
"exclusiveMinimum": 0
},
"end_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "End date, YYYY-MM-DD."
},
"job_type": {
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
},
{
"type": "number",
"const": 3
}
],
"description": "Task type: 0 = pickup, 1 = delivery, 2 = appointment, 3 = field workforce (FOS)."
},
"job_status": {
"type": "array",
"items": {
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
},
{
"type": "number",
"const": 3
},
{
"type": "number",
"const": 4
},
{
"type": "number",
"const": 6
},
{
"type": "number",
"const": 7
},
{
"type": "number",
"const": 8
},
{
"type": "number",
"const": 9
},
{
"type": "number",
"const": 10
}
]
},
"description": "Only these statuses, e.g. [2, 3]."
},
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Start date, YYYY-MM-DD."
}
}
}Full details of up to 100 tasks by job id: customer, addresses, agent (fleet_id/fleet_name), status, timestamps (started/arrived/completed), tracking link, custom fields; optionally the status history. Task status codes: 0 assigned, 1 started, 2 successful, 3 failed, 4 in progress/arrived, 6 unassigned, 7 accepted/acknowledged, 8 declined, 9 cancelled, 10 deleted. POST /v2/get_job_details.
| Argument | Type | Description |
|---|---|---|
| job_ids* | array | Task (job) ids, e.g. [5145]. |
| include_task_history | boolean | Include each task's status history. |
| include_additional_info | boolean | Include the job's additional info. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"job_ids"
],
"properties": {
"job_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 100,
"minItems": 1,
"description": "Task (job) ids, e.g. [5145]."
},
"include_task_history": {
"type": "boolean",
"description": "Include each task's status history."
},
"include_additional_info": {
"type": "boolean",
"description": "Include the job's additional info."
}
}
}Full details of the tasks carrying the given order ids (the reference you set when creating a task). POST /v2/get_job_details_by_order_id.
| Argument | Type | Description |
|---|---|---|
| order_ids* | array | Order ids, e.g. ["P000469"]. |
| include_task_history | boolean | Include each task's status history. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"order_ids"
],
"properties": {
"order_ids": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 100,
"minItems": 1,
"description": "Order ids, e.g. [\"P000469\"]."
},
"include_task_history": {
"type": "boolean",
"description": "Include each task's status history."
}
}
}List agents (drivers / field workers; Tookan calls them fleets) with fleet_id, name, phone, tags, team and live status (0 available, 1 offline, 2 busy). Filter by name, tags, availability or fleet ids. The API returns the whole list; this tool returns a window (limit/offset, next_offset). POST /v2/get_all_fleets.
| Argument | Type | Description |
|---|---|---|
| name | string | Only agents whose name matches this text. |
| tags | string | Comma-separated agent tags, e.g. "mini,suv". |
| limit | integer | Max items to return (default 50, max 200). |
| offset | integer | Items to skip (use next_offset from the previous call). |
| status | any | 0 = only free agents, 1 = only busy agents. |
| fleet_ids | array | Only these agent ids. |
| fleet_type | any | 1 = captive agents, 2 = freelancers. |
| match_any_tag | boolean | With tags: true = agents having ANY of the tags, false = ALL of them. |
| include_team_id |
List customers (customer_id, name, phone, email, address), optionally searched by name or phone. Paginated: one Tookan page per call (page, default 1). POST /v2/get_all_customers.
| Argument | Type | Description |
|---|---|---|
| name | string | Search by customer name. |
| page | integer | Page number (default 1). Tookan pages are a fixed size. |
| phone | string | Search by customer phone number. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"description": "Search by customer name."
},
"page": {
"type": "integer",
"default": 1,
"maximum": 10000,
"description": "Page number (default 1). Tookan pages are a fixed size.",
"exclusiveMinimum": 0
},
"phone": {
"type": "string",
"description": "Search by customer phone number."
}
}
}List tasks (Tookan calls them jobs) of one task type within a date range of the task date (at most 31 days, within the last 31 days). Paginated: one Tookan page per call (page, default 1). Filter by status, agent (fleet_id), team, customer, job ids or your order ids. Task status codes: 0 assigned, 1 started, 2 successful, 3 failed, 4 in progress/arrived, 6 unassigned, 7 accepted/acknowledged, 8 declined, 9 cancelled, 10 deleted. POST /v2/get_all_tasks.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number (default 1). Tookan pages are a fixed size. |
| job_ids | array | Only these task (job) ids. |
| team_id | integer | Only tasks of this team (from tookan_list_teams). |
| end_date* | string | End of the task-date range, YYYY-MM-DD (at most 31 days after start_date). |
| fleet_id | integer | Only tasks of this agent (from tookan_list_agents). |
| job_type* | any | Task type: 0 = pickup, 1 = delivery, 2 = appointment, 3 = field workforce (FOS). |
| order_ids | array | Only tasks with these order ids (your own reference). |
List teams (team_id, name, address, tags). With include_agents, each team also lists its agents. Returns a window (limit/offset, next_offset). POST /v2/view_all_team_only (or /v2/view_teams with agents).
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max items to return (default 50, max 200). |
| offset | integer | Items to skip (use next_offset from the previous call). |
| include_agents | boolean | Also return each team's agents (larger reply). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1,
"description": "Max items to return (default 50, max 200)."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Items to skip (use next_offset from the previous call)."
},
"include_agents": {
"type": "boolean",
"description": "Also return each team's agents (larger reply)."
}
}
}WRITE (DESTRUCTIVE): force a task's status, overriding the agent app. Completing (2 successful, 3 failed) or cancelling (9) closes the task and notifies per the account's settings; confirm with the user first. Deleting (10) is not offered. Settable: 0 assigned, 1 started, 2 successful, 3 failed, 4 arrived, 6 unassigned, 7 accepted, 8 declined, 9 cancelled. POST /v2/update_task_status.
| Argument | Type | Description |
|---|---|---|
| job_id* | integer | Task (job) id. |
| job_status* | any | New status code (0-4, 6-9; 10 deleted is not allowed). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"job_id",
"job_status"
],
"properties": {
"job_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Task (job) id.",
"exclusiveMinimum": 0
},
"job_status": {
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
},
{
"type": "number",
"const": 3
},
{
"type": "number",
"const": 4
},
{
"type": "number",
"const": 6
},
{
"type": "number",
"const": 7
},
{
"type": "number",
"const": 8
},
{
"type": "number",
"const": 9
}
],
"description": "New status code (0-4, 6-9; 10 deleted is not allowed)."
}
}
}| string |
| Delivery longitude. |
| customer_email | string | Customer email. |
| customer_phone | string | Customer phone, e.g. "+12015555555". |
| auto_assignment | boolean | Let Tookan auto-assign the task to an agent of team_id. |
| job_description | string | What is to be delivered. |
| customer_address* | string | Delivery address. |
| customer_username | string | Customer name. |
| job_delivery_datetime* | string | Deliver before this local time, YYYY-MM-DD HH:MM:SS. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_address",
"job_delivery_datetime",
"timezone"
],
"properties": {
"tags": {
"type": "string",
"description": "Comma-separated agent tags used by auto-assignment."
},
"notify": {
"type": "boolean",
"description": "Send the customer/agent notifications."
},
"team_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Team to put the task in (from tookan_list_teams).",
"exclusiveMinimum": 0
},
"fleet_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Agent to assign the task to (from tookan_list_agents).",
"exclusiveMinimum": 0
},
"latitude": {
"type": "string",
"description": "Delivery latitude (else Tookan geocodes the address)."
},
"order_id": {
"type": "string",
"description": "Your own reference for the task."
},
"timezone": {
"type": "integer",
"maximum": 720,
"minimum": -840,
"description": "Minutes to ADD to local time to get UTC (Tookan's convention): IST = -330, CET = -60, EST = 300, PST = 480."
},
"longitude": {
"type": "string",
"description": "Delivery longitude."
},
"customer_email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "Customer email."
},
"customer_phone": {
"type": "string",
"description": "Customer phone, e.g. \"+12015555555\"."
},
"auto_assignment": {
"type": "boolean",
"description": "Let Tookan auto-assign the task to an agent of team_id."
},
"job_description": {
"type": "string",
"description": "What is to be delivered."
},
"customer_address": {
"type": "string",
"minLength": 1,
"description": "Delivery address."
},
"customer_username": {
"type": "string",
"description": "Customer name."
},
"job_delivery_datetime": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}(:\\d{2})?$",
"description": "Deliver before this local time, YYYY-MM-DD HH:MM:SS."
}
}
}| boolean |
| Include each agent's team id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"description": "Only agents whose name matches this text."
},
"tags": {
"type": "string",
"description": "Comma-separated agent tags, e.g. \"mini,suv\"."
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1,
"description": "Max items to return (default 50, max 200)."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Items to skip (use next_offset from the previous call)."
},
"status": {
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"const": 1
}
],
"description": "0 = only free agents, 1 = only busy agents."
},
"fleet_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"description": "Only these agent ids."
},
"fleet_type": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
}
],
"description": "1 = captive agents, 2 = freelancers."
},
"match_any_tag": {
"type": "boolean",
"description": "With tags: true = agents having ANY of the tags, false = ALL of them."
},
"include_team_id": {
"type": "boolean",
"description": "Include each agent's team id."
}
}
}| job_status | any | Only tasks in this status. Task status codes: 0 assigned, 1 started, 2 successful, 3 failed, 4 in progress/arrived, 6 unassigned, 7 accepted/acknowledged, 8 declined, 9 cancelled, 10 deleted. |
| start_date* | string | Start of the task-date range, YYYY-MM-DD. |
| customer_id | integer | Only tasks of this customer (from tookan_list_customers). |
| custom_fields | boolean | Include the tasks' custom-field data. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"job_type",
"start_date",
"end_date"
],
"properties": {
"page": {
"type": "integer",
"default": 1,
"maximum": 10000,
"description": "Page number (default 1). Tookan pages are a fixed size.",
"exclusiveMinimum": 0
},
"job_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 100,
"description": "Only these task (job) ids."
},
"team_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only tasks of this team (from tookan_list_teams).",
"exclusiveMinimum": 0
},
"end_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "End of the task-date range, YYYY-MM-DD (at most 31 days after start_date)."
},
"fleet_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only tasks of this agent (from tookan_list_agents).",
"exclusiveMinimum": 0
},
"job_type": {
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
},
{
"type": "number",
"const": 3
}
],
"description": "Task type: 0 = pickup, 1 = delivery, 2 = appointment, 3 = field workforce (FOS)."
},
"order_ids": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100,
"description": "Only tasks with these order ids (your own reference)."
},
"job_status": {
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
},
{
"type": "number",
"const": 3
},
{
"type": "number",
"const": 4
},
{
"type": "number",
"const": 6
},
{
"type": "number",
"const": 7
},
{
"type": "number",
"const": 8
},
{
"type": "number",
"const": 9
},
{
"type": "number",
"const": 10
}
],
"description": "Only tasks in this status. Task status codes: 0 assigned, 1 started, 2 successful, 3 failed, 4 in progress/arrived, 6 unassigned, 7 accepted/acknowledged, 8 declined, 9 cancelled, 10 deleted."
},
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Start of the task-date range, YYYY-MM-DD."
},
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only tasks of this customer (from tookan_list_customers).",
"exclusiveMinimum": 0
},
"custom_fields": {
"type": "boolean",
"description": "Include the tasks' custom-field data."
}
}
}