Skip to main content
Glama
@inscada/mcp-server

@inscada/mcp-server

Official
by inscada-app

@inscada/mcp-server

inSCADA MCP Server — SCADA operations via Model Context Protocol.

Connect Claude Desktop, VS Code Copilot, Cursor, or any MCP client to your inSCADA system. 39 tools for live values, alarms, scripts, historical data, charts, Excel export, and more.

Note: This MCP server is designed for inSCADA JDK11 edition.


inSCADA MCP Server — Model Context Protocol uzerinden SCADA operasyonlari.

Claude Desktop, VS Code Copilot, Cursor veya herhangi bir MCP istemcisini inSCADA sisteminize baglayin. Canli deger, alarm, script, tarihsel veri, grafik, Excel disa aktarma ve daha fazlasi icin 39 arac.

Not: Bu MCP sunucusu inSCADA JDK11 surumu icin tasarlanmistir.

What is this? / Bu ne ise yarar?

This MCP server lets AI assistants (like Claude) directly interact with your inSCADA system using natural language.

Bu MCP sunucusu, AI asistanlarin (Claude gibi) dogal dil kullanarak inSCADA sisteminizle etkilesime girmesini saglar.

Application Development / Uygulama Gelistirme

Build and maintain SCADA applications through natural language. Write and debug scripts, design animations and faceplates, create custom menus, and explore your project structure.

Dogal dil ile SCADA uygulamalari gelistirin. Script yazin ve hata ayiklayin, animasyon ve faceplate tasarlayin, ozel menuler olusturun, proje yapinizi kesfedin.

Data Analytics / Veri Analitigi

Analyze historical data, generate trend charts, create forecasts, and export reports — without writing queries or configuring dashboards.

Tarihsel verileri analiz edin, trend grafikleri olusturun, tahminler uretin ve raporlari disa aktarin — sorgu yazmadan veya dashboard yapilandirmadan.

Operations & Monitoring / Operasyon ve Izleme

Monitor your SCADA system in real time. Check live values, view active alarms, inspect connection status, and track project health.

SCADA sisteminizi gercek zamanli izleyin. Canli degerleri kontrol edin, aktif alarmlari goruntuleyin, baglanti durumunu inceleyin ve proje sagligini takip edin.

Related MCP server: skyspark-mcp

Installation / Kurulum

Two ways to install / Iki farkli kurulum yontemi:

  1. Download inscada-mcp-server.mcpb from Releases or inscada.com/download

  2. Double-click the file — Claude Desktop opens automatically

  3. Fill in the form: inSCADA URL, Username, Password

  4. Done! The extension appears in Claude Desktop with icon and description.

inscada-mcp-server.mcpb dosyasini indirin, cift tiklayin, formu doldurun. Claude Desktop'ta ikon ve aciklamasiyla gorunur.

Method 2: JSON Configuration (For developers / Gelistiriciler icin)

Add to your Claude Desktop config:

Windows: %APPDATA%\Claude\claude_desktop_config.json Mac: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "inscada": {
      "command": "npx",
      "args": ["-y", "@inscada/mcp-server"]
    }
  }
}

On first run, the server will prompt for inSCADA URL, username, and password.

Ilk calistirmada sunucu, inSCADA URL, kullanici adi ve sifre sorar.

Difference / Fark

Extension (.mcpb)

JSON Config

Setup

Double-click + GUI form

Edit JSON file manually

UI

Icon, description, config panel in Claude Desktop

Tools only, no UI

Credentials

GUI form, passwords masked

Prompted on first run

Updates

Download new .mcpb

Update JSON or npx fetches latest

Best for

End users, operators

Developers, CI/CD

Requirements / Gereksinimler

  • Node.js 18+

  • A running inSCADA instance / Calisan bir inSCADA sunucusu

Usage Examples / Kullanim Ornekleri

Example 1: Monitor Live Values / Canli Degerleri Izleme

User prompt:

"What is the current value of AN01_Active_Power?"

What happens:

  1. Claude calls list_projects to find the project

  2. Claude calls inscada_get_live_value with the variable name

  3. Returns the current value, timestamp, and variable details

Expected result:

AN01_Active_Power = 142.5 kW (last updated: 2026-03-05 14:32:10)


Example 2: Analyze Historical Data / Tarihsel Veri Analizi

User prompt:

"Show me the temperature trend for the last 24 hours and forecast the next 6 hours"

What happens:

  1. Claude calls inscada_logged_values to fetch 24h of historical data

  2. Analyzes the data pattern (min, max, avg, trend direction)

  3. Generates forecast values based on the pattern

  4. Calls chart_forecast to render the combined chart

Expected result: A chart showing the historical temperature as a solid line and the 6-hour forecast as a dashed line with diamond markers.


Example 3: Write a SCADA Script / SCADA Scripti Yazma

User prompt:

"Write a script that checks if the boiler temperature exceeds 90 degrees and sends an email alert"

What happens:

  1. Claude calls inscada_guide to load script writing rules (Nashorn ES5)

  2. Generates a script following inSCADA conventions:

    function main() {
      var temp = ins.getVariableValue("Boiler_Temperature");
      if (temp.value > 90) {
        ins.sendMail(["operator"], "High Temperature Alert",
          "Boiler temperature is " + temp.value + " C");
        ins.writeLog("WARN", "BoilerCheck", "Temperature exceeded 90C: " + temp.value);
      }
    }
    main();
  3. Calls update_script to save the code (requires user confirmation)

Expected result: Script is saved and ready to be scheduled. User confirms the write operation through the confirmation dialog.


Example 4: Create a Dashboard Menu / Dashboard Menusu Olusturma

User prompt:

"Create a gauge dashboard for AN01_Active_Power with a line chart"

What happens:

  1. Claude calls list_projects to find the project ID

  2. Calls create_custom_menu with the gauge_and_chart template, variable name, and project ID

  3. A custom menu page is created in inSCADA with a live gauge and historical chart

Expected result: A new menu item appears in inSCADA with a real-time gauge (updating every 2 seconds) and a time-series chart showing the last hour of data.


Example 5: Export Data to Excel / Veriyi Excel'e Aktarma

User prompt:

"Export all project scripts to an Excel file"

What happens:

  1. Claude calls list_projects to get all projects

  2. Calls list_scripts for each project

  3. Calls export_excel with the collected data organized in sheets

Expected result: An Excel file with project names as sheets, each containing script names, descriptions, schedule types, and status.

Tools (39) / Araclar (39)

Space Management

Tool

Type

Description

set_space

Read

Switch active space / Aktif space degistirme

Data / Veri

Tool

Type

Description

list_spaces

Read

List spaces / Space listesi

list_projects

Read

List projects / Proje listesi

list_variables

Read

List all variables (tags) / Tum degiskenleri listele

search_variables

Read

Search variables by name, description, type / Degisken ara

list_scripts

Read

List scripts / Script listesi

get_script

Read

Get script code & details / Script kodu ve detaylari

update_script

Write

Update script code / Script guncelleme

list_connections

Read

List connections / Baglanti listesi

search_in_scripts

Read

Search text in scripts / Scriptlerde metin arama

Animation / Animasyon

Tool

Type

Description

list_animations

Read

List animations / Animasyon listesi

get_animation

Read

Get animation details / Animasyon detaylari

SCADA (REST API)

Tool

Type

Description

inscada_get_live_value

Read

Read live value / Canli deger okuma

inscada_get_live_values

Read

Read multiple live values / Coklu canli deger

inscada_set_value

Write

Write value to variable / Deger yazma

inscada_get_fired_alarms

Read

Get active alarms / Aktif alarmlar

inscada_connection_status

Read

Connection status / Baglanti durumu

inscada_project_status

Read

Project status / Proje durumu

inscada_run_script

Write

Execute script / Script calistirma

inscada_script_status

Read

Script status / Script durumu

inscada_logged_values

Read

Historical log data / Tarihsel log verileri

inscada_logged_stats

Read

Statistics (min, max, avg, sum) / Istatistikler

Generic API

Tool

Type

Description

inscada_api_endpoints

Read

List available API endpoints / API endpoint listesi

inscada_api_schema

Read

Get endpoint schema / Endpoint semasi

inscada_api

Write

Call any API endpoint / Herhangi bir API cagrisi

Charts / Grafikler

Tool

Type

Description

chart_line

Read

Time series line chart / Zaman serisi cizgi grafik

chart_bar

Read

Bar chart / Cubuk grafik

chart_gauge

Read

Live gauge / Canli gosterge

chart_multi

Read

Multi-series chart / Coklu seri grafik

chart_forecast

Read

Forecast chart / Tahmin grafigi

Custom Menus / Menuler

Tool

Type

Description

list_custom_menus

Read

List menus / Menu listesi

get_custom_menu

Read

Get menu details / Menu detaylari

get_custom_menu_by_name

Read

Find menu by name / Isme gore menu arama

create_custom_menu

Write

Create menu / Menu olusturma

update_custom_menu

Write

Update menu / Menu guncelleme

delete_custom_menu

Write

Delete menu / Menu silme

Export / Disa Aktarma

Tool

Type

Description

export_excel

Write

Export to Excel (.xlsx) / Excel disa aktarma

Guide / Kilavuz

Tool

Type

Description

inscada_guide

Read

Load usage rules and best practices / Kullanim kurallari ve en iyi pratikler

inscada_animation_guide

Read

Detailed animation element rules, return types, dynamic props / Animasyon element kurallari, return tipleri, dinamik props

Security / Guvenlik

All tools have MCP safety annotations (readOnlyHint, destructiveHint, openWorldHint).

Destructive tools require user confirmation:

  • inscada_set_value — Writes to real equipment / Gercek ekipmana yazma

  • inscada_run_script — Executes server-side script / Sunucu tarafinda script calistirma

  • update_script — Modifies script code / Script kodunu degistirme

  • inscada_api (POST/PUT/DELETE) — Modifies data via generic API / Genel API ile veri degistirme

Privacy Policy

Data Collection

This MCP server acts as a bridge between AI assistants and your inSCADA system. It does not collect, store, or transmit any data to third parties.

Data Flow

  • All communication is between the MCP client (e.g. Claude Desktop) and your inSCADA instance

  • Credentials (username/password) are stored locally in your MCP client configuration

  • No data is sent to inSCADA (the company) or any external service

  • Optional anonymous telemetry (tool call counts, error rates) can be sent to the inSCADA telemetry server for improving the product. No personal data or SCADA values are included.

Data Storage

  • No user data is stored by this server

  • Session tokens are kept in memory only and discarded on exit

  • Downloaded Excel files are stored in the system temp directory and are not automatically cleaned up

Contact

For privacy questions: habib.kara@inscada.com

License / Lisans

MIT

Available Tools

39 tools
chart_barB
Read-only

Generate a bar chart for variable comparison (statistics). Supports mean, max, min, sum, count aggregation.

Inputs: variable_names (required), project_id (required), aggregation, time_range, +4 more.

chart_forecastA
Read-only

Generate historical + forecast chart. Historical as solid line, forecast as dashed line. Analyze data first, then generate forecast_values.

Inputs: variable_names (required), project_id (required), forecast_values (required), time_range, +5 more.

chart_gaugeA
Read-only

Display a live gauge indicator. With auto_refresh=true (default), updates every 2 seconds from REST API. Use this for real-time gauge display instead of inscada_get_live_value.

Inputs: variable_name (required), project_id (required), min, max, +3 more.

chart_lineA
Read-only

Generate a time-series line chart. Fetches historical data from REST API automatically.

Inputs: variable_names (required), project_id (required), time_range, start_date, +3 more.

chart_multiA
Read-only

Plot multiple data series on the same chart. Useful for comparing different variables.

Inputs: series (required), time_range, start_date, end_date, +2 more.

create_custom_menuA
Destructive

Create a custom menu page. USE TEMPLATES (gauge/line_chart/gauge_and_chart/multi_chart) when possible — no content needed with templates.

Inputs: name (required), content, icon, target, +15 more.

delete_custom_menuB
Destructive

Delete a custom menu by ID.

Inputs: custom_menu_id (required), parent_menu_id, second_menu_id.

export_excelB
Destructive

Export data to Excel (.xlsx) file. Supports multiple sheets. Returns a download link.

Inputs: file_name (required), sheets (required).

get_animationA
Read-only

Get animation details, elements, and linked scripts.

Inputs: animation_id, animation_name, project_id, include_svg, +1 more.

get_custom_menuA
Read-only

Get custom menu details and HTML content by ID.

Inputs: custom_menu_id (required).

get_custom_menu_by_nameA
Read-only

Find and get custom menu details by name (exact match).

Inputs: name (required).

get_scriptA
Read-only

Get full script code and details. Returns code, schedule config, owner, and history.

Inputs: script_id, script_name, project_name.

inscada_animation_guideA
Read-only

Returns detailed animation element rules: expression return types, dynamic props via return objects, SVG structure requirements, and element-specific examples. Call this BEFORE creating or modifying animations. The main inscada_guide gives a summary — this tool gives the full animation reference.

Inputs: no named parameters.

inscada_apiA
Destructive

Send generic HTTP request to inSCADA REST API. Access any /api/ endpoint. Non-GET requests require user confirmation. Use dedicated tools (inscada_get_live_value, list_variables, etc.) when available — only use this for endpoints without a dedicated tool. Call inscada_guide for animation creation rules, element types, and SVG requirements.

Key rules:

  • Frame variables: 2-step. (1) POST /api/variables/filter/pages body:{projectId,frameId} → var list, (2) inscada_get_live_values → values.

  • SVG REQUIRED: must include style="width:100%;height:100%;" viewBox="0 0 1920 1080" width="1920" height="1080".

  • Animation props must never be null (at least "{}"). SVG ids = domId.

Inputs: path (required), method, query_params, body, +1 more.

inscada_api_endpointsA
Read-only

Discover inSCADA REST API endpoints. Search/filter among 625 endpoints by keyword, category, or HTTP method.

Inputs: search, category, method, tag, +1 more.

inscada_api_schemaA
Read-only

Get parameter and body schema for an API endpoint. Use before calling inscada_api to know required parameters.

Inputs: path (required), method.

inscada_connection_statusA
Read-only

Check connection status (Connected/Disconnected) for given connection IDs.

Inputs: connection_ids (required).

inscada_get_fired_alarmsA
Read-only

List active (fired) alarms. Returns alarm name, status, trigger time, description.

Inputs: project_id.

inscada_get_live_valueA
Read-only

Read the LIVE (real-time, current) value of a single SCADA variable. MUST use this tool when user asks for current/live/real-time value. Returns value, timestamp, and variable info. project_id is optional (auto-detected if omitted).

Inputs: variable_name (required), project_id, verbose.

inscada_get_live_valuesA
Read-only

Read LIVE (real-time, current) values of multiple SCADA variables in one call. MUST use this for batch live value queries. Returns {varName: {value, date}} map. project_id is optional (auto-detected if omitted).

Inputs: variable_names (required), project_id, verbose.

inscada_guideA
Read-only

IMPORTANT: Call this tool FIRST before using any other inSCADA tool in a new conversation. Returns comprehensive usage guide including: Nashorn script rules (ECMAScript 5), ins.* API reference (30+ methods), animation element types (27 types), chart rules, custom menu rules, live value endpoints, tool priorities, and best practices. Without this guide you will make errors.

Inputs: no named parameters.

inscada_logged_statsA
Read-only

Get variable statistics (min, max, avg, sum, count, first, last) over a time range. Supports hourly or daily grouping.

Inputs: project_id (required), variable_names (required), time_range, start_date, +2 more.

inscada_logged_valuesA
Read-only

Fetch historical logged data for variables (time series). Returns [{value, dttm, name, projectId}].

Inputs: variable_ids (required), start_date, end_date.

inscada_project_statusA
Read-only

Check project runtime status: scripts, connections, alarm groups, data transfers, reports.

Inputs: project_id (required).

inscada_run_scriptA
Destructive

Execute a script on the inSCADA server. Returns the script's return value.

Inputs: script_id (required).

inscada_script_statusA
Read-only

Check script execution status (Not Scheduled, Running, etc.).

Inputs: script_id (required).

inscada_set_valueA
Destructive

Write a value to a SCADA variable. WARNING: Sends commands to real equipment.

Inputs: project_id (required), variable_name (required), value (required).

list_animationsA
Read-only

List animations in a project. Lightweight — SVG content not included.

Inputs: project_id, project_name, search.

list_connectionsA
Read-only

List connections in a project. With include_status=true, also returns connection status (Connected/Disconnected).

Inputs: project_id, search, include_status.

list_custom_menusA
Read-only

List custom menus (3-level hierarchy). Returns menu ID, name, icon, position.

Inputs: search.

list_projectsA
Read-only

List projects under a space. Returns project ID, name, description, and location.

Inputs: space_id, space_name, search.

list_scriptsA
Read-only

List scripts in a project. Returns script ID, name, description, schedule type. Code content is not included.

Inputs: project_id, project_name, space_name, search.

list_spacesA
Read-only

List all inSCADA spaces. Spaces are the top level of the hierarchy.

Inputs: search.

list_variablesA
Read-only

List all SCADA variables (tags/points) in a project. Returns ALL variables — use search_variables instead when you need to filter by name or description.

Inputs: project_id (required), connection_id, page_size, page_number, +1 more.

search_in_scriptsA
Read-only

Search for text within all script code. Returns matching scripts with line numbers.

Inputs: search_text (required), project_name.

search_variablesA
Read-only

Search SCADA variables by name, description, type, connection, device, or frame. Uses server-side filtering — much faster and lighter than listing all variables. Use this when user asks to find or filter variables.

Inputs: project_id (required), name, dsc, type, +6 more.

set_spaceA
Read-only

Switch the active space. Updates the X-Space header sent with all API requests. Use this before accessing data in a different space.

Inputs: space_name (required).

update_custom_menuA
Destructive

Update an existing custom menu. Read with get_custom_menu first. Can use templates to regenerate content.

Inputs: custom_menu_id (required), name, content, icon, +16 more.

update_scriptA
Destructive

Update script code. Read with get_script first. Call inscada_guide for full script rules and ins.* API reference.

CRITICAL RULES (always apply):

  • Nashorn ECMAScript 5 ONLY. DO NOT USE: let, const, =>, template literals, destructuring, async/await, class.

  • STRUCTURE: function main() { /* code */ } main();

  • Historical date: dttm is ISO string, NOT epoch. new Date(isoString) returns NaN in Nashorn. Use: ("" + items[i].dttm).substring(11, 19)

  • Logged data is reverse-ordered (newest first) → use reverse loop for charts.

Inputs: script_id (required), code (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 39 tools

    Disambiguation4/5

    Most tools have clearly distinct purposes, with good descriptions. However, 'inscada_api' is a generic catch-all that could be misused if the agent doesn't heed the warning to prefer dedicated tools. The distinction between 'list_variables' and 'search_variables' is clear, and chart tools are well-differentiated.

    Naming Consistency3/5

    Naming conventions are mixed: some tools use the 'inscada_' prefix (e.g., 'inscada_get_live_value'), while others like 'list_variables' and 'create_custom_menu' do not. The verb-noun pattern is followed but the prefix inconsistency reduces predictability.

    Tool Count3/5

    With 39 tools, the set is on the high side. While the SCADA domain justifies a broad surface, some tools like 'inscada_api' could reduce the need for so many dedicated ones. The count feels slightly bloated but still manageable for an agent.

    Completeness3/5

    The set covers core operations like CRUD for custom menus and scripts, live data, and charts. However, there are notable gaps: no direct tools for creating or deleting animations or alarms (only 'get_fired_alarms' and 'list_animations'), relying on the generic 'inscada_api' for those.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Connects AI assistants to SkySpark and Haxall building automation systems by dynamically exposing SkySpark Axon functions as MCP tools. Enables natural language interaction with building data, equipment, and automation functions through real-time tool discovery.
      5
      MIT
    • A
      license
      Not graded
      quality
      Not graded
      maintenance
      Enables AI assistants to interact with SkyFoundry SkySpark building automation data via the Model Context Protocol. It allows users to evaluate Axon expressions, perform CRUD operations on records, and manage project functions through a comprehensive suite of 21 tools.
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol server that bridges AI assistants with WinCC OA projects, enabling natural language queries for datapoint search, manager management, and CTL script execution.
      2
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI assistants to monitor and analyze industrial process data from DCS/SCADA systems via MCP protocol, with domain expert knowledge for anomaly detection and recommendations.
      MIT