Ignition MCP
Ignition (8.3 and above) MCP server work with the new REST API
Ask AI about Ignition MCP
Powered by Claude Β· Grounded in docs
I know everything about Ignition MCP. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
ignition-mcp
A Model Context Protocol (MCP) server that gives AI assistants a curated, developer-oriented interface to the Ignition Gateway REST API.
Built on FastMCP with 37 hand-crafted tools covering gateway management, projects, resources, tag providers, tags, alarms, tag history, and script execution.
Tools
| Category | Tools | Backend |
|---|---|---|
| Gateway (6) | get_gateway_info, get_module_health, get_gateway_logs, get_database_connections, get_opc_connections, get_system_metrics | Native REST |
| Projects (8) | list_projects, get_project, create_project, delete_project, copy_project, rename_project, export_project, import_project | Native REST |
| Project Resources (4) | list_project_resources, get_project_resource, set_project_resource, delete_project_resource | Native REST |
| Designers (1) | list_designers | Native REST |
| Tag Providers (4) | list_tag_providers, get_tag_provider, create_tag_provider, delete_tag_provider | Native REST |
| Tag Browse (1) | browse_tags | Native REST |
| Tag Values (2) | read_tags, write_tag | WebDev |
| Tag Config (6) | get_tag_config, create_tags, edit_tags, delete_tags, list_udt_types, get_udt_definition | WebDev |
| Alarms (3) | get_active_alarms, get_alarm_history, acknowledge_alarms | WebDev |
| Historian (1) | get_tag_history | WebDev |
| Script Execution (1) | run_gateway_script (disabled by default) | WebDev |
Requirements
- Python 3.10+
- Ignition Gateway 8.3+ with REST API enabled
- Gateway credentials (API key preferred) or basic auth
Setup
# Install
uv sync
# Configure
cp .env.example .env
# Edit .env with your gateway URL and credentials
Environment Variables
All environment variables are prefixed with IGNITION_MCP_:
| Variable | Default | Description |
|---|---|---|
IGNITION_MCP_IGNITION_GATEWAY_URL | http://localhost:8088 | Gateway base URL |
IGNITION_MCP_IGNITION_API_KEY | (empty) | API key auth (preferred over basic auth) |
IGNITION_MCP_IGNITION_USERNAME | admin | Basic auth username |
IGNITION_MCP_IGNITION_PASSWORD | password | Basic auth password |
IGNITION_MCP_SSL_VERIFY | true | Set false for self-signed certs |
IGNITION_MCP_WEBDEV_TAG_ENDPOINT | (empty) | WebDev path for read_tags/write_tag |
IGNITION_MCP_WEBDEV_TAG_CONFIG_ENDPOINT | (empty) | WebDev path for tag CRUD |
IGNITION_MCP_WEBDEV_ALARM_ENDPOINT | (empty) | WebDev path for alarm tools |
IGNITION_MCP_WEBDEV_TAG_HISTORY_ENDPOINT | (empty) | WebDev path for get_tag_history |
IGNITION_MCP_WEBDEV_SCRIPT_EXEC_ENDPOINT | (empty) | WebDev path for run_gateway_script |
IGNITION_MCP_ENABLE_SCRIPT_EXECUTION | false | Set true to enable run_gateway_script |
IGNITION_MCP_SERVER_HOST | 127.0.0.1 | MCP server bind host |
IGNITION_MCP_SERVER_PORT | 8007 | MCP server port |
Running
# Streamable HTTP (default) β http://localhost:8007/mcp
uv run python mcp_server.py
# stdio transport (for Claude Desktop subprocess mode)
uv run python mcp_server.py --transport stdio
Client Configuration
Claude Code (.mcp.json)
{
"mcpServers": {
"ignition-mcp": {
"type": "streamable-http",
"url": "http://localhost:8007/mcp"
}
}
}
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"ignition-mcp": {
"command": "uv",
"args": ["run", "python", "mcp_server.py", "--transport", "stdio"],
"cwd": "/path/to/ignition-mcp",
"env": {
"IGNITION_MCP_IGNITION_GATEWAY_URL": "https://your-gateway:8043",
"IGNITION_MCP_IGNITION_API_KEY": "your-api-key"
}
}
}
}
WebDev Prerequisite (tag values, alarms, history, script execution)
Several tools require WebDev module scripts deployed on the target Ignition gateway.
The native REST API (/data/api/v1/) only covers configuration β it does not support
runtime tag reads/writes, alarm queries, historian, or script execution.
Tools that require WebDev endpoints:
- Tag values:
read_tags,write_tagβIGNITION_MCP_WEBDEV_TAG_ENDPOINT - Tag CRUD:
get_tag_config,create_tags,edit_tags,delete_tags,list_udt_types,get_udt_definitionβIGNITION_MCP_WEBDEV_TAG_CONFIG_ENDPOINT - Alarms:
get_active_alarms,get_alarm_history,acknowledge_alarmsβIGNITION_MCP_WEBDEV_ALARM_ENDPOINT - Historian:
get_tag_historyβIGNITION_MCP_WEBDEV_TAG_HISTORY_ENDPOINT - Script execution:
run_gateway_scriptβIGNITION_MCP_WEBDEV_SCRIPT_EXEC_ENDPOINT+IGNITION_MCP_ENABLE_SCRIPT_EXECUTION=true
If a WebDev endpoint is not configured, the relevant tools return a clear error with setup instructions. See docs/webdev-setup.md for gateway-side deployment scripts.
Testing
# Unit tests (no live gateway needed)
uv run pytest tests/ -v
# Integration tests (requires running Ignition gateway)
RUN_LIVE_GATEWAY_TESTS=1 uv run pytest tests/test_integration.py -v
Architecture
mcp_server.py # FastMCP entry point, lifespan, arg parsing
src/ignition_mcp/
config.py # Pydantic Settings (IGNITION_MCP_ prefix)
ignition_client.py # Async HTTP client (httpx) for Gateway REST + WebDev
tools/
__init__.py # register_all(mcp) β calls each module
gateway.py # info, health, logs, connections, metrics
projects.py # project CRUD + export/import
resources.py # project resource CRUD (native REST)
designers.py # list_designers
tag_providers.py # tag provider CRUD
tags.py # browse + read/write + CRUD via WebDev
alarms.py # alarm query + ack (WebDev)
historian.py # tag history (WebDev)
execution.py # run_gateway_script (off by default)
tests/
conftest.py # Shared fixtures
test_client.py # IgnitionClient unit tests (mocked httpx)
test_tools.py # Tool logic unit tests (mocked client)
test_integration.py # Live gateway tests (skipped by default)
docs/
webdev-setup.md # WebDev script deployment guide
api-reference.md # Full tool reference
License
MIT
