Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Siemens TIA Portal MCP server — AI-assisted PLC programming. 19 tools, 230 actions.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
リンク先は作者自身のファイルです。私たちが置いたり再パッケージしたりしたものではありません。ファイルを開くと、Claude Desktopがインストールします。
ターミナルでこれを実行します
ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント a4webdev で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(3.42.0)がレジストリに届いたのは2 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにMCPBも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Recta
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Cheaper cross-chain stablecoin routes for AI agents; 5 % of the verified saving, nothing if none.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
| Version | 3.42.0 |
| Protocol | MCP 2024-11-05 (stdio) |
| Runtime | .NET Framework 4.8 |
| TIA Portal | V17 – V20 (Openness API, tested on V19) |
| License | Proprietary (free beta) |
New in this release: a new technology_objects tool — 15 actions for listing and reading technology objects, changing parameters, structural edits, export/import, and connecting an object to its hardware; per-project PLC credentials with a new Credentials tab in the Manager — a project's own password is tried first, a global one is the fallback; transactional block overwrites — the block is exported before the import and restored if the import fails, and overwrites no longer lose attributes, block numbers or folder placement; and compiler results that list only real diagnostics, so totals always match the compiler's own count. Dozens more fixes and improvements since v3.15.2 — see CHANGELOG.md for the full list.
*\*V17 through V20 are supported for project work. V16 and older are detected and refused with a clear message. Only V19 is fully tested; the others are expected to work as TIA Portal maintains backward-compatible Openness APIs across versions.*
TiaCommander is an MCP server that connects AI assistants to Siemens TIA Portal via the Openness API. It enables AI-assisted PLC programming, project management, library operations, hardware configuration, cross-reference analysis, and deployment — all through natural language.
Tested AI clients: Claude Desktop, Claude Code, VS Code (Copilot), Cursor, Windsurf, Codex CLI, Gemini CLI.
19 tools, 230 actions covering the full TIA Portal project lifecycle.
| Tool | What it does |
|---|---|
admin | Server administration, usage stats, export storage |
alarm_text | Alarm texts and text lists, XLSX import / export |
blocks_read | Read, inspect and export FB / FC / OB / DB blocks (XML, SCL) |
blocks_write | Create and import blocks (SCL, LAD, FBD, STL) |
db | Global and instance data-block members and values |
diagnostics | Connection setup, online / offline compare, PLC state |
download_upload | Compile-checked download to / upload from the PLC |
folders | Navigate and organise the project-tree groups |
get_info | Server capabilities and version |
hardware | Device, rack / slot, network and I/O configuration |
library | Master copies, library types, versioned instantiation |
live_data | Live values and CPU diagnostics from the running controller |
open_manager | Open the TiaCommander Manager window |
session | Open, save, archive and switch projects; connection lifecycle |
tag | PLC tag tables: create, edit, search, address assignment |
technology_objects | Axes and other technology objects: read, tune, connect to hardware |
udt | User-defined types: create, edit members, import / export |
watch | Watch and force tables |
xref | Cross-references: callers, unused blocks, orphaned instance DBs |
TiaCommander-v3.42.0-portable/
├── bridge/ ← Live PLC data helper (S7CommPlus / TLS) │ ├── libcrypto-3-x64.dll │ ├── libssl-3-x64.dll │ ├── S7CommPlusDriver.dll │ ├── TiaCommander.S7Bridge.exe │ ├── TiaCommander.S7Classic.dll │ └── zlib.net.dll ├── data/ │ └── exports/ ← Export output folders │ ├── alarm_text/ │ ├── hardware/ │ ├── tag/ │ └── watch/ ├── docs/ │ ├── configs/ │ │ ├── claude_code.txt │ │ ├── claude_desktop_config.json │ │ ├── codex_cli_config.toml │ │ ├── cursor_mcp.json │ │ ├── gemini_cli_settings.json │ │ ├── generic_stdio.json │ │ ├── vscode_copilot_mcp.json │ │ └── windsurf_mcp_config.json │ ├── 1-QUICKSTART.md │ ├── KNOWN_LIMITATIONS.md │ ├── LICENSE.txt │ ├── README.md │ └── THIRD-PARTY.md ├── help/ │ ├── github-offline.html │ └── readme-offline.html ├── licenses/ ← Full third-party licence texts │ ├── Apache-2.0.txt │ ├── BSD-3-Clause.txt │ ├── GPL-3.0.txt │ ├── LGPL-3.0.txt │ ├── Microsoft-WebView2-SDK.txt │ ├── MIT.txt │ └── Polyform-Noncommercial-1.0.0.txt ├── Resources/ │ ├── logoBlack.png │ └── tiacommander.png ├── runtimes/ ← WebView2 native loaders │ ├── win-x64/native/WebView2Loader.dll │ ├── win-x86/native/WebView2Loader.dll │ └── win-arm64/native/WebView2Loader.dll ├── Templates/ ← Block XML, alarm & diagnostics templates │ ├── diagnostics/ │ │ ├── TC_Diag_1200.xml │ │ └── TC_DiagOB.xml │ ├── Fb.xml │ ├── Fc.xml │ ├── GlobalDb.xml │ ├── Ob.xml │ ├── Ob_FBD.xml │ ├── Ob_LAD.xml │ ├── Ob_SCL.xml │ └── TextListTemplate.xlsx ├── x64/ ← SQLite native library (64-bit) │ └── SQLite.Interop.dll ├── x86/ ← SQLite native library (32-bit) │ └── SQLite.Interop.dll ├── CHANGELOG.md ├── EPPlus.dll ├── EPPlus.Interfaces.dll ├── icon.png ├── manifest.json ├── Microsoft.Bcl.AsyncInterfaces.dll ├── Microsoft.IO.RecyclableMemoryStream.dll ├── Microsoft.Web.WebView2.Core.dll ├── Microsoft.Web.WebView2.WinForms.dll ├── System.Buffers.dll ├── System.ComponentModel.Annotations.dll ├── System.Data.SQLite.dll ├── System.IO.Pipelines.dll ├── System.Memory.dll ├── System.Numerics.Vectors.dll ├── System.Runtime.CompilerServices.Unsafe.dll ├── System.Security.Cryptography.Xml.dll ├── System.Text.Encodings.Web.dll ├── System.Text.Json.dll ├── System.Threading.Tasks.Extensions.dll ├── THIRD-PARTY-NOTICES.md ├── TiaCommander.exe ← MCP server + Manager GUI └── TiaCommander.exe.config
No installer, no registry changes, no system modifications. Extract, configure, and run. Download the latest .zip from GitHub Releases.
Claude Desktop users: Download the .mcpb bundle from Releases and install via Settings → Extensions → Advanced Settings → Install Extension. No config file editing needed. See the Quick Start Guide for details.
Prerequisite: Siemens TIA Portal V17 or later must be installed on your machine with the Openness component enabled. TiaCommander loads Siemens Openness libraries directly from your TIA Portal installation at runtime. Without TIA Portal, the server starts in degraded mode with limited functionality and guides you through setup.
First things first — we are software developers and automation engineers who use Siemens products daily — in our own facilities, at client sites, and in every project that needs industrial automation. We love it. With Siemens, it's simple — it just works. Every time. All the time.
During years of hands-on programming, wiring, testing, debugging and making things happen with Siemens PLCs, we have built TiaCommander just for our own internal needs. That's the honest reason why it exists — we built it for ourselves, and we find it awesome. It speeds things up tenfold, sometimes twentyfold, and sometimes more — until you ask yourself: how the hell were we getting things done before?!
You can get full project context through your AI assistant in under a minute. Create any block in seconds — SCL, LAD, FBD, DB — get interface structures, build multi-instance DBs, run cross-references, compile, debug, retrieve errors, and a lot more.
Every tool you see in the tool map below is built from what we actually need or use in our daily operations with Siemens PLCs. Whether you're working with S7-1200 or S7-1500 series — it doesn't matter. If Siemens TIA Portal supports it, you can use TiaCommander to manage it.
Now that we're making this tool public — we're genuinely keen on what features you're missing for your development workflow. Don't be shy — submit a feature request, file a bug report, or just tell us what you think. As an Engineer to Engineer — we read every line of feedback.
Enjoy TiaCommander.
AI Clients
Claude Desktop / Code · Cursor · VS Code / Copilot · Windsurf · Codex CLI · Gemini CLI │ │ JSON-RPC 2.0 · stdio ▼ TiaCommander MCP Server 19 tools · 230 actions · standalone I/O · .NET Framework 4.8 │ │ Siemens Openness API ▼ TIA Portal (V17 – V20*, tested on V19) │ ▼ S7-1200 · S7-1500 · S7-300 · S7-400 · ET 200
| Tool / Action | # | Description | |||
|---|---|---|---|---|---|
| `admin` | 13 | Server administration | |||
clear_exports | (optional olderThanHours=24) Delete expired exports. | ||||
delete_export | (exportId) Delete a single export. | ||||
get_device_profiles | All unique devices seen by the server. | ||||
get_export | (exportId; optional offset, length, raw=false) Retrieve export content with paging. raw=true returns content only, no metadata header. | ||||
get_recent_errors | (optional count=10) Last N failed tool calls with device/firmware context. | ||||
get_system_info | OS, .NET version, TIA Portal version, process uptime. | ||||
get_stats | (optional top_n=20) Call statistics per tool+action, sorted by total calls. | ||||
get_version | Server version, DB path, DB size. | ||||
list_exports | (optional tool, limit=20) Recent export results stored in export DB. | ||||
open_file | (filePath) Open a file using the Windows default application (Excel for .xlsx, browser for .html, etc.). Use after any export action to let the user inspect results immediately. | ||||
reset_device_catalog | Clear local device catalog and re-dump from TIA Portal if connected. | ||||
save_export | (exportId, outputPath) Save export content to a file. Auto-decodes base64 for binary formats (XLSX). After saving, ask the user if they want to open the file (use admin action=open_file). | ||||
search_device_catalog | (optional filter, limit=50) Search installed TIA hardware catalog from local DB. No TIA Portal needed. Use for hardware reference lookups (order numbers, CPU models, compatible modules). | ||||
| `alarm_text` | 15 | Alarm texts & text lists | |||
add_entries | (deviceName, textlistName, entries[]) Add entries to a text list. Each entry: {from, to, text}. | ||||
create_textlist | (deviceName, textlistName; optional listRange=Decimal, comment, entries[]) Create new text list. Works on empty devices (auto-seeds via template). Optionally populate with entries in one call. | ||||
delete_entries | (deviceName, textlistName, fromValues[]) Delete entries by From value. | ||||
delete_textlist | (deviceName, textlistName) Delete a user text list. System text lists rejected. | ||||
export_alarm_classes | (deviceName, outputPath) Export alarm class definitions. After export, ask the user if they want to open the file (use admin action=open_file). | ||||
export_alarm_data | (deviceName, format:csv\ | xlsx; optional scope:alarm_texts\ | textlists\ | alarm_classes, outputPath, includeInfoText) Export alarm data to CSV or XLSX for documentation. Defaults to exports_root\alarm_text\. After export, ask the user if they want to open the file (use admin action=open_file). |
| export_alarm_texts | | (deviceName, outputPath; optional includeInfoText) Export alarm instance texts to XLSX. After export, ask the user if they want to ope
冒頭だけを表示しています。続きはリポジトリで読めます