Skip to content

Repository files navigation

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_tagIGNITION_MCP_WEBDEV_TAG_ENDPOINT
  • Tag CRUD: get_tag_config, create_tags, edit_tags, delete_tags, list_udt_types, get_udt_definitionIGNITION_MCP_WEBDEV_TAG_CONFIG_ENDPOINT
  • Alarms: get_active_alarms, get_alarm_history, acknowledge_alarmsIGNITION_MCP_WEBDEV_ALARM_ENDPOINT
  • Historian: get_tag_historyIGNITION_MCP_WEBDEV_TAG_HISTORY_ENDPOINT
  • Script execution: run_gateway_scriptIGNITION_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

About

Ignition (8.3 and above) MCP server work with the new REST API

Topics

Resources

Contributing

Stars

34 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages