ignition-mcp

mcp
Guvenlik Denetimi
Gecti
Health Gecti
  • License — License: GPL-3.0
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 35 GitHub stars
Code Gecti
  • Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

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

README.md

ignition-mcp

Documentation · Releases · Issues

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 Verify TLS certificates. For a private CA, set SSL_CERT_FILE to a CA bundle or SSL_CERT_DIR to a certificate directory. false is for isolated local development only
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

For an HTTP MCP client, use http://127.0.0.1:8007/mcp after starting the server.

For a client that launches a stdio subprocess, use uv as the executable with these arguments:

["--directory", "/absolute/path/to/ignition-mcp", "run", "python", "mcp_server.py", "--transport", "stdio"]

Replace the path with your checkout. See the quickstart for the first request and configuration for settings.

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

Yorumlar (0)

Sonuc bulunamadi