About Ignition MCP
Ignition MCP is an MCP server in the Agents category: ignition (8.3 and above) MCP server work with the new REST API.
Install
git clone https://github.com/WhiskeyHouse/ignition-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Ignition MCP
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
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
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.