ignition-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOST | No | Host/interface to bind the SSE server to. Set with --host (e.g. --host 0.0.0.0). | 0.0.0.0 |
| PORT | No | Port for the SSE server. Set with --port (e.g. --port 8080). | 8080 |
| TRANSPORT | No | Transport mode for the server. Use 'sse' for a remote server (server on one machine, agent on another) or the default 'stdio' for local use. Set with --transport (e.g. --transport sse). | stdio |
| GATEWAY_URL | No | URL of the Ignition gateway. Required for the live tools (read_tag, write_tag, execute_script, get_history). Set with --gateway-url (e.g. --gateway-url https://my-gateway:8088). | |
| ENABLE_WRITES | No | Enables the write_tag and execute_script tools, which can change values on a running SCADA system. Disabled by default; opt in with --enable-writes. Requires --gateway-url. Only use against non-production gateways. | false |
| GATEWAY_PASSWORD | No | Password for the Ignition gateway. Set with --gateway-password (e.g. --gateway-password changeme). | |
| GATEWAY_USERNAME | No | Username for the Ignition gateway. Set with --gateway-username (e.g. --gateway-username admin). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pingA | Health check — verify the server is running. |
| get_tagsA | Get tags from an Ignition project, optionally filtered by folder path. Args: project_path: Path to Ignition project directory or .zip export. tag_path: Optional folder path to filter (e.g. "Conveyors/Line1"). provider: Tag provider name (default: "default"). Use list_tag_providers to discover. |
| list_tag_providersA | List all tag provider names in an Ignition project (e.g. 'default', 'edge'). Args: project_path: Path to Ignition project directory or .zip export. |
| list_viewsA | List all Perspective view paths in an Ignition project. Args: project_path: Path to Ignition project directory or .zip export. |
| get_viewA | Get a Perspective view's component tree, bindings, and structure. Args: project_path: Path to Ignition project directory or .zip export. view_path: View path (e.g. "Overview" or "Screens/MotorDetail"). |
| list_scriptsA | List all scripts in an Ignition project with their scope. Args: project_path: Path to Ignition project directory or .zip export. |
| get_scriptA | Get the source code of an Ignition project script. Args: project_path: Path to Ignition project directory or .zip export. script_path: Script resource path (from list_scripts output). |
| list_udtsB | List all UDT (User Defined Type) names in an Ignition project. Args: project_path: Path to Ignition project directory or .zip export. |
| get_udtB | Get UDT definition(s) with member details. Args: project_path: Path to Ignition project directory or .zip export. udt_name: Optional UDT name. If empty, returns all UDTs. |
| list_alarmsB | List all alarm pipeline names in an Ignition project. Args: project_path: Path to Ignition project directory or .zip export. |
| get_alarmA | Get an alarm pipeline's configuration including stages, notifications, and transitions. Args: project_path: Path to Ignition project directory or .zip export. pipeline_name: Alarm pipeline name (from list_alarms output). |
| list_named_queriesA | List all named query names in an Ignition project. Args: project_path: Path to Ignition project directory or .zip export. |
| get_named_queryA | Get a named query's SQL, parameters, database connection, and type. Args: project_path: Path to Ignition project directory or .zip export. query_name: Named query name (from list_named_queries output). |
| read_tagA | Read the current value of one or more tags from a live Ignition gateway. Requires the server to be started with --gateway-url pointing to an Ignition gateway with the WebDev module installed. Args: tag_path: Tag path(s), comma-separated for multiple (e.g. "[default]Conveyors/Line1/Speed"). |
| write_tagA | Write a value to a tag on a live Ignition gateway. DISABLED by default — requires the server to be started with --gateway-url AND --enable-writes. Writing to a live gateway can actuate real equipment. The value is sent as-is; the gateway handles type coercion. Args: tag_path: Full tag path (e.g. "[default]Conveyors/Line1/Speed"). value: Value to write (string representation — gateway coerces to tag data type). |
| execute_scriptA | Execute a Python script on the Ignition gateway and return the result. DISABLED by default — requires the server to be started with --gateway-url AND --enable-writes. Scripts run in gateway scope with access to system.* functions and can change gateway state or actuate equipment. Args: code: Python code to execute on the gateway. |
| get_historyA | Query historical tag data from a live Ignition gateway. Requires the server to be started with --gateway-url and a historian configured on the gateway. Args: tag_path: Full tag path (e.g. "[default]Conveyors/Line1/Speed"). start: Start time as ISO 8601 (e.g. "2026-04-12T00:00:00Z"). end: End time as ISO 8601 (e.g. "2026-04-12T12:00:00Z"). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 17 tools
Each tool targets a distinct Ignition resource or live-gateway operation; list/get pairs are clearly scoped, and project-file tools like get_tags are differentiated from live tag tools like read_tag and get_history. No two tools appear to do the same thing.
Nearly all tools use snake_case verb_noun (list_views, get_view, execute_script, read_tag). Minor deviations are get_tags instead of the list_* pattern used for most other resources, and the bare ping health check.
17 tools are reasonable for covering tags, providers, views, scripts, UDTs, alarms, named queries, and live gateway operations, but slightly above the ideal 3-15 range.
The surface covers reading and inspecting most Ignition project resource types plus live tag read/write, script execution, and history. Gaps include no create/update/delete for project resources and no direct named-query execution, though execute_script can work around some.