# Easyterritory Ezt MCP server

Source: https://glimind.com/server/mcp-registry%2Fai.easyterritory%2Fezt-mcp
Registry id: `mcp-registry/ai.easyterritory/ezt-mcp`
Status: live (checked 2026-10-26T21:24:13.870Z)

## Measurements (30 days)

- Uptime: 99.82%
- Checks: 4094
- Outages (90 days): 1

## Install

```json
{
  "mcpServers": {
    "easyterritory-ezt-mcp-server": {
      "type": "http",
      "url": "https://mcp.easyterritory.ai/"
    }
  }
}
```

Claude Code:

```sh
claude mcp add --transport http easyterritory-ezt-mcp-server https://mcp.easyterritory.ai/
```

## Tools (51)

- `account_build`: Builds territories that follow an account column, such as rep name or territory code from CRM: each part goes to the group holding most of its accounts (conflic
- `analyze`: Computes territory statistics for one or more alignments, i.e. how balanced the territories are and how alignments compare: account counts, declared metric tota
- `analyze_network_coverage`: Finds coverage gaps in a contractor (vendor, service provider, technician, repair shop) network: counts the contractors that reach each demand point (customer, 
- `analyze_routes`: Returns the total hours for each of the routes calculate_route has drawn: drive hours, dwell hours, route_workload_hours (provider drive time plus dwell, no vis
- `auto_build`: Partitions ingested account points into balanced sales territories with equal workload, metric, or count over a part layer (e.g. ZIPs) as a new alignment (TAL).
- `calculate_route`: Sequences and drives a set of stops, e.g. a technician from home to the depot, then the day's calls, and back home: returns the order, road distance, drive time
- `cluster_points`: Groups the points of one ingested layer into balanced clusters directly, with no ZIP or part layer and no territory alignment. Writes group_field (default group
- `configure_map`: Updates map settings on the Territory Solution and refreshes the live map: project_name (map heading), theme (dark | light basemap and UI style), loaded_part_la
- `create_territory_from_parts`: Creates one leaf territory from a list of part_ids (e.g. a committed map selection), in a new alignment or an existing one (tal_id). With map_session_id the liv
- `delete_point_layer`: Point-layer delete: removes one point layer and its account points from the Territory Solution and the open map, in one synchronous call. Needs point_layer (the
- `delete_route`: Route delete: removes one whole route from the Territory Solution and the open map, in one synchronous call. Needs route_id or the route's exact unique label, p
- `delete_tal`: Deletes one whole territory alignment (TAL: 'the territory layer', 'all territories') from the Territory Solution and the open map, in one synchronous call. Nee
- `delete_territory`: Deletes one leaf territory from an alignment; its parts become unassigned. Needs tal_id, territory_id (the leaf id or its exact unique display name), and the Te
- `direct_build`: Builds territories from known part-to-territory assignments (a ZIP-to-territory sheet or file, including a three-level region/district/territory hierarchy via t
- `discover_intent`: Maps a free-text territory request to a workflow. Read-only keyword routing; no compute. Returns intent_category, the recommended tool order, the main tool (tie
- `ensure_map_viewer`: Reports whether the person has the map open (viewer_status.connected) for a map_session_id from get_map_visualization, waiting up to wait_seconds (max 30 s per 
- `ep_graph_traverse`: Traverses the EMEP knowledge graph from a topic file (e.g. 'workflows/realign-by-selection.md') to related guidance, up to `depth` hops. Returns no edges unless
- `ep_list_topics`: Lists EMEP topics grouped by type (concept, workflow, interface, troubleshooting, decision). Optional `type` filter.
- `ep_search`: Semantic search over the EZT MCP Expert Pack (EMEP): workflow guidance, concepts, interfaces, and common mistakes. Returns ranked markdown chunks with source fi
- `export_geojson`: Exports the territory solution as one GeoJSON file to share, archive, or open in EasyTerritory Designer: territory polygons with part_ids, points, and routes wi
- `extract_tal_branch`: Extracts one regional branch of a hierarchical alignment (by branch_rollup_territory_id or branch_territory_path) into its own Territory Solution, so a delegate
- `ezt`: Plain-language orchestrator: takes request (the goal) and runs the matching workflow in one call, optionally with csv_file (a host file parameter), accounts_han
- `geocode_address`: Geocodes a list of customer addresses to coordinates with match confidence, without loading them as a point layer. Accepts address/address_line1/street, city, s
- `get_guidance`: Returns the EZT MCP operating guide: the cross-tool workflow order and shared rules (result.text, same text as the server instructions), result.server_version, 
- `get_map_selection`: Returns the most recent committed selection on an open map session (map_session_id): part_layer, part_ids, and selection_task_id when the selection came from re
- `get_map_visualization`: Opens the interactive territory map (Map Component) and returns map_url and map_session_id. Opens a blank map, or shows the latest state of an existing Territor
- `get_part_selection`: Returns the state of a map selection task (selection_task_id from request_part_selection, or active_selection_task_id in ezt://map-sessions/{id}/state): status 
- `import_geojson`: Opens a GeoJSON FeatureCollection (plain points, or a territory file this server produced, plain or gzip/zip) as a Territory Solution and returns ts_handle and 
- `ingest_accounts`: Account ingest: loads account or location rows (CRM records, a CSV, a spreadsheet) as point data on a named point layer of the Territory Solution, to add them t
- `isochrone_build`: Draws the area reachable by driving from one or more origins within a time or distance budget (drive-time area, service area, catchment) and adds each area as a
- `list_part_layers`: Returns the available canonical part layers for territory construction (for example us_zips, us_counties, ca_fsa, and active country postal or administrative po
- `load_analysis_panel`: Shows a completed analyze result in the open map's analysis dock (single or compare). Needs map_session_id and the analyze task_id/job_id or the full analyze re
- `points_in_territory`: Lists which account points from one point layer fall inside a territory polygon or a drive-time (isochrone) area: per territory, the point ids, full properties,
- `query_parts`: Returns attributes (no geometry) for parts of a part layer listed by list_part_layers or ezt://part-layers. Takes exactly one of filter (e.g. {state_abbr: TX}) 
- `realign`: Moves ZIPs or other parts (typed ids or ones selected on the map) from one territory into another within one alignment (tal_id): a ZIP move. moves=[{part_id, to
- `reintegrate_branch`: Merges an edited branch (proposal Territory Solution from extract_tal_branch) back into the master. Needs branch_metadata and expected_master_revision; returns 
- `request_account_upload`: Stages account rows for ingest_accounts and returns upload_handle, csv_headers, and suggested_ingest args with a geocode_plan. Four ways in: POST the CSV file t
- `request_assignment_upload`: Stages part-to-territory assignment rows (e.g. a ZIP-to-territory spreadsheet with Postal Code plus Territory/Region/Division) for direct_build and returns uplo
- `request_part_selection`: Lets the person adjust boundaries by picking parts (e.g. ZIPs) on the map: puts the open map into select mode on a part_layer, for purpose realign, a new territ
- `schedule_visits`: Schedules recurring visits: expands each account's cadence (e.g. every 7 days) across a horizon and packs visits into daily work clusters (buckets) under a tech
- `seed_build`: Grows one territory outward from a seed {longitude, latitude} over a part layer until it holds a target: {type: location_count, value: N} or {type: metric_sum, 
- `set_map_state`: Changes the open map's session state: mode, active alignment (active_tal_id), pending job reference, or camera (center [longitude, latitude] and zoom 0-24). Ses
- `show_map_overlay`: Shows or hides something on the open map from a plain request ('add US zip codes', 'hide the zips', 'show my accounts') or overlay_kind (part_layer, point_layer
- `submit_feedback`: Sends product feedback to EasyTerritory: a blocked or partial workflow, a workaround, a confusing response, or a missing capability. Returns an acknowledgement 
- `tasks_cancel`: Tool equivalent of the native MCP tasks/cancel, listed for clients without the Tasks capability. Requests cooperative cancellation of a task_id and returns the 
- `tasks_get`: Tool equivalent of the native MCP tasks/get, listed for clients without the Tasks capability. Returns the Task status document for a task_id (holding up to wait
- `tasks_result`: Tool equivalent of the native MCP tasks/result, listed for clients without the Tasks capability. Returns the originating tool's terminal result once the task st
- `territory_merge`: Merges a pair of adjacent territories and rebalances the rest of the alignment with minimal disruption (N to N-1 territories), e.g. when a rep leaves and the ne
- `territory_rebalance`: Rebalances an existing alignment after the account data changed, keeping it as close to the current alignment as possible. Needs source_tal_id and the Territory
- `territory_split`: Territory split: divides one territory (e.g. an oversized one) into two while changing the rest of the alignment as little as possible (N to N+1 territories). N
- `workflow_advisor`: Returns the next tool call for a multi-step workflow, given where the workflow stands. Read-only state machine; executes nothing. intent_category: build_from_ac

Measured by Glimind (https://glimind.com): MCP handshake + tool list only, no tool is ever called. CC BY 4.0.
