@inscada/mcp-server
OfficialClick on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@inscada/mcp-server What is the current value of AN01_Active_Power?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@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:
Method 1: Extension File (Recommended for end users / Son kullanicilar icin onerilen)
Download
inscada-mcp-server.mcpbfrom Releases or inscada.com/downloadDouble-click the file — Claude Desktop opens automatically
Fill in the form: inSCADA URL, Username, Password
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 |
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:
Claude calls
list_projectsto find the projectClaude calls
inscada_get_live_valuewith the variable nameReturns 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:
Claude calls
inscada_logged_valuesto fetch 24h of historical dataAnalyzes the data pattern (min, max, avg, trend direction)
Generates forecast values based on the pattern
Calls
chart_forecastto 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:
Claude calls
inscada_guideto load script writing rules (Nashorn ES5)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();Calls
update_scriptto 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:
Claude calls
list_projectsto find the project IDCalls
create_custom_menuwith thegauge_and_charttemplate, variable name, and project IDA 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:
Claude calls
list_projectsto get all projectsCalls
list_scriptsfor each projectCalls
export_excelwith 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 |
| Read | Switch active space / Aktif space degistirme |
Data / Veri
Tool | Type | Description |
| Read | List spaces / Space listesi |
| Read | List projects / Proje listesi |
| Read | List all variables (tags) / Tum degiskenleri listele |
| Read | Search variables by name, description, type / Degisken ara |
| Read | List scripts / Script listesi |
| Read | Get script code & details / Script kodu ve detaylari |
| Write | Update script code / Script guncelleme |
| Read | List connections / Baglanti listesi |
| Read | Search text in scripts / Scriptlerde metin arama |
Animation / Animasyon
Tool | Type | Description |
| Read | List animations / Animasyon listesi |
| Read | Get animation details / Animasyon detaylari |
SCADA (REST API)
Tool | Type | Description |
| Read | Read live value / Canli deger okuma |
| Read | Read multiple live values / Coklu canli deger |
| Write | Write value to variable / Deger yazma |
| Read | Get active alarms / Aktif alarmlar |
| Read | Connection status / Baglanti durumu |
| Read | Project status / Proje durumu |
| Write | Execute script / Script calistirma |
| Read | Script status / Script durumu |
| Read | Historical log data / Tarihsel log verileri |
| Read | Statistics (min, max, avg, sum) / Istatistikler |
Generic API
Tool | Type | Description |
| Read | List available API endpoints / API endpoint listesi |
| Read | Get endpoint schema / Endpoint semasi |
| Write | Call any API endpoint / Herhangi bir API cagrisi |
Charts / Grafikler
Tool | Type | Description |
| Read | Time series line chart / Zaman serisi cizgi grafik |
| Read | Bar chart / Cubuk grafik |
| Read | Live gauge / Canli gosterge |
| Read | Multi-series chart / Coklu seri grafik |
| Read | Forecast chart / Tahmin grafigi |
Custom Menus / Menuler
Tool | Type | Description |
| Read | List menus / Menu listesi |
| Read | Get menu details / Menu detaylari |
| Read | Find menu by name / Isme gore menu arama |
| Write | Create menu / Menu olusturma |
| Write | Update menu / Menu guncelleme |
| Write | Delete menu / Menu silme |
Export / Disa Aktarma
Tool | Type | Description |
| Write | Export to Excel (.xlsx) / Excel disa aktarma |
Guide / Kilavuz
Tool | Type | Description |
| Read | Load usage rules and best practices / Kullanim kurallari ve en iyi pratikler |
| 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 yazmainscada_run_script— Executes server-side script / Sunucu tarafinda script calistirmaupdate_script— Modifies script code / Script kodunu degistirmeinscada_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 toolschart_barBRead-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_forecastARead-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_gaugeARead-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_lineARead-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_multiARead-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.
export_excelBDestructive
Export data to Excel (.xlsx) file. Supports multiple sheets. Returns a download link.
Inputs: file_name (required), sheets (required).
get_animationARead-only
Get animation details, elements, and linked scripts.
Inputs: animation_id, animation_name, project_id, include_svg, +1 more.
get_scriptARead-only
Get full script code and details. Returns code, schedule config, owner, and history.
Inputs: script_id, script_name, project_name.
inscada_animation_guideARead-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_apiADestructive
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_endpointsARead-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_schemaARead-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_statusARead-only
Check connection status (Connected/Disconnected) for given connection IDs.
Inputs: connection_ids (required).
inscada_get_fired_alarmsARead-only
List active (fired) alarms. Returns alarm name, status, trigger time, description.
Inputs: project_id.
inscada_get_live_valueARead-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_valuesARead-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_guideARead-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_statsARead-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_valuesARead-only
Fetch historical logged data for variables (time series). Returns [{value, dttm, name, projectId}].
Inputs: variable_ids (required), start_date, end_date.
inscada_project_statusARead-only
Check project runtime status: scripts, connections, alarm groups, data transfers, reports.
Inputs: project_id (required).
inscada_run_scriptADestructive
Execute a script on the inSCADA server. Returns the script's return value.
Inputs: script_id (required).
inscada_script_statusARead-only
Check script execution status (Not Scheduled, Running, etc.).
Inputs: script_id (required).
inscada_set_valueADestructive
Write a value to a SCADA variable. WARNING: Sends commands to real equipment.
Inputs: project_id (required), variable_name (required), value (required).
list_animationsARead-only
List animations in a project. Lightweight — SVG content not included.
Inputs: project_id, project_name, search.
list_connectionsARead-only
List connections in a project. With include_status=true, also returns connection status (Connected/Disconnected).
Inputs: project_id, search, include_status.
list_projectsARead-only
List projects under a space. Returns project ID, name, description, and location.
Inputs: space_id, space_name, search.
list_scriptsARead-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_spacesARead-only
List all inSCADA spaces. Spaces are the top level of the hierarchy.
Inputs: search.
list_variablesARead-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_scriptsARead-only
Search for text within all script code. Returns matching scripts with line numbers.
Inputs: search_text (required), project_name.
search_variablesARead-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_spaceARead-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_scriptADestructive
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
Scored across 39 tools
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 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.
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.
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
Related MCP Connectors
Protocol-native energy infrastructure orchestration for AI data centers. Provides 46 MCP tools across 8 grid protocols (IEC-61850, DNP3, Modbus, OCPP, OpenADR, IEEE 2030.5, IEC 60870-5-104, ICCP) with 5 core API primitives: connect, dispatch, settle, comply, and intel. Enables AI agents to programmatically interact with substations, grid interfaces, and energy assets for real-time workload-grid coordination.
Company and industrial data for AI assistants: datasets, SQL, dashboards, alarms, with approvals.
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
Connect any AI agent to 1,000+ apps and 27,000+ actions through one remote MCP server (OAuth).
Related MCP Servers
AlicenseNot gradedqualityDmaintenanceConnects 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.5MIT- AlicenseNot gradedqualityNot gradedmaintenanceEnables 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
- AlicenseNot gradedqualityDmaintenanceA 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.2MIT
- AlicenseNot gradedqualityCmaintenanceEnables 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