utility-network-mcp
Provides tools for interacting with an Esri ArcGIS Utility Network over the UtilityNetworkServer REST API, enabling trace, subnetwork, dirty-area, and association operations against a live network.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@utility-network-mcprun an isolation trace from this main at the midpoint, stopping at operable valves"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Utility Network questions are hard for general-purpose AI: the answer depends on the dataset version, the deployment, which API you're in, and a long list of ordering rules and gotchas. This project packages that knowledge as a Claude Agent Skill so an agent answers like an experienced UN implementer.
The skill is 29 curated reference files, answer templates, helper scripts and evals. It works in Claude.ai, Claude Code and any agent that reads Agent Skills.
See it in action
Real questions with the details a consultant would be given. Full walk-throughs with captured output are in docs/EXAMPLES.md.
1. Apply Asset Package fails when adding gas to a water UN
Pro 3.5, Enterprise 11.3.
WaterUNalready has theWaterdomain network. Two maps open, connected asgis_editor(owner iswateradmin), portal loginjsmith, versionwateradmin.crew1, topology enabled for dispatch.
Finds five violated prerequisites at once (maps open, topology enabled, wrong database user, wrong portal user, not on DEFAULT), gives the fix order, and confirms that applying Gas does not wipe Water because the tool is additive.
2. Isolation trace at the midpoint of main {8F2A6C1E-...} on branch crew1.outage
Stop at operable
Isolatingvalves, domainWater, tierPressure, someone else has the version open.
Produces a complete request (percentAlong: 0.5, filterBarriers, string values, no sessionId), and a validator checks it. On a request with typical mistakes the validator reports seven problems, such as a percent along of 50, a start with no terminal or percent, and a misspelled tierNam.
3. Dirty areas: Status 1 x 41,220, 9 x 312, 8 x 5, 40 x 18, and validate "succeeded"
$ python scripts/decode_dirty_status.py 9 8 40
9: feature inserted or updated; feature error [edit + error] -> Validate will evaluate it. ...
8: feature error [error only] -> Validate will IGNORE this row. ... fix it by EDITING the feature ...
40: feature error; subnetwork error [error only] -> Validate will IGNORE this row. ... run Update Subnetwork ...Rows 8 and 40 have no edit bit, so validate ignores them: edit the feature, then validate.
How these were tested, and where they fell short, is in docs/TESTING.md.
Related MCP server: servicenow-platform-mcp
Quick start
Claude Code
claude plugin marketplace add sgdev279/esri-utility-network-skill
claude plugin install utility-network@esri-utility-networkClaude.ai / Claude desktop app — download utility-network.skill from the latest release and add it to your skills.
Any skills-aware agent — copy plugins/utility-network/skills/utility-network into its skills folder.
What the skill knows
Area | Coverage |
Core model | Structure & domain networks, tiers (partitioned/hierarchical), subnetworks, terminals, asset groups/types, network attributes, categories, rules |
Operations | Network topology, dirty areas & the Status bitmask, Error Inspector, Update/Export Subnetwork, branch versioning conflicts |
Tracing | All trace types, traversability, filter barriers, functions, propagators, output filters — plus the full REST |
Deployment | UN Foundations & asset packages, dataset versions 4–8 with the Pro/Enterprise compatibility matrix, Upgrade Dataset, publishing, owners, licensing |
APIs | REST ( |
Every answer follows a defined format (how-to, troubleshooting, code, concept, cross-API translation), states which versions it applies to, and flags anything unverified.
How it's built
flowchart LR
Q[User question] --> S[SKILL.md<br/>workflow · disambiguation · answer formats]
S -->|loads only what's needed| R[(references/<br/>pro-help · rest-api · js-api<br/>pro-sdk · arcpy)]
S -->|runs instead of guessing| T[scripts/<br/>status decoder · association codes<br/>trace request checker]
S --> A[Structured answer<br/>with version caveats]The skill uses progressive disclosure: Claude reads the short SKILL.md first, then pulls in only the reference files a question needs, so broad coverage doesn't cost context on every question.
Help improve it
The skill is designed to grow. You can contribute without writing code:
Share knowledge — a gotcha you hit, a fix from Esri Community, a doc page the skill should know → open an "Add UN knowledge" issue
Report something wrong or outdated → open a correction
Write a reference file →
python tools/new_reference.pyscaffolds one in the house format; CI checks it
Details in CONTRIBUTING.md. Planned content is tracked in the roadmap, and content freshness in docs/FRESHNESS.md.
Repository layout
plugins/utility-network/skills/utility-network/ the skill
SKILL.md entry point: workflow, routing, answer formats
references/ topic files (pro-help, rest-api, js-api, pro-sdk, arcpy …)
scripts/ helper scripts
evals/ test prompts and trigger tests
tests/ tests for the helper scripts
examples/ sample trace requests
tools/ maintainer tools (scaffold, lint, freshness)
knowledge-inbox/ raw notes waiting to be turned into references
docs/ roadmap, freshness report, assets
.github/ CI, release, issue formsDisclaimer
Independent community project — not affiliated with or endorsed by Esri. ArcGIS and ArcGIS Utility Network are trademarks of Esri. Reference content is written in our own words from public Esri documentation; each file lists its sources and review date. Always confirm version-specific behaviour against Esri's documentation before production changes.
Author
Built by Sayanta Ghosh (@sgdev279). If this helps your utility GIS work, a ⭐ helps others find it.
Licensed under the MIT License.
This server cannot be deployed
Maintenance
Related MCP Connectors
Protocol-native energy infrastructure orchestration for AI data centers. Provides 46 MCP tools across 8 grid protocols (IEC-61850, DNP3, Modbus, OCPP, OpenADR, IEEE 2030.5, IEC 60870-5-104, ICCP) with 5 core API primitives: connect, dispatch, settle, comply, and intel. Enables AI agents to programmatically interact with substations, grid interfaces, and energy assets for real-time workload-grid coordination.
Unified MCP Server is a remote MCP connector for AI agents and vertical AI products that provides access to 22,000+ authorized SaaS tools across 400+ integrations and 24 categories directly inside LLMs (Claude, GPT, Gemini, Cohere). Tools operate only on explicitly authorized customer connections, enabling agents to safely read and write against live third-party systems.
Connect any AI agent to 1,000+ apps and 27,000+ actions through one remote MCP server (OAuth).
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables connections to Azure AI Agents within any MCP client, allowing users to leverage Azure AI Foundry's models and knowledge tools like Azure AI Search and Bing Web Grounding through a conversational interface.260MIT
- AlicenseAqualityAmaintenanceEnables AI agents to interact with ServiceNow through MCP, providing schema inspection, record CRUD, attachments, audit, Flow Designer, and platform investigations with policy-guarded access.15229 PyPI4MIT

IBM Business Automationofficial
AlicenseNot gradedqualityCmaintenanceEnables AI agents to integrate with IBM Business Automation Workflow by exposing workflow REST services as MCP tools, allowing natural language interaction with business automation capabilities.11Apache 2.0- AlicenseNot gradedqualityAmaintenanceConnects agentic AI to Software AG ARIS platforms, enabling model and object operations via MCP tools.MIT