FTX MCP — FactoryTalk Optix MCP Server
io.github.asqi-carter/ftx-mcp·v1.0.9·18 starsMCP server for FactoryTalk Optix: author, preview, and verify Studio changes via the emulator.
18 stars41 downloads/wk
Reviews
Write oneNobody has reviewed FTX MCP — FactoryTalk Optix MCP Server yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
FTX MCP — FactoryTalk Optix MCP Server tools (78, 17 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
_wrapperoptix_active_targetWhich deployment target Studio's dropdown has selected — the thing an F5 (optix_emulator action="run") would actually run.
optix_add_model_variableAuthor an edit adding a read+write variable to Model — does NOT deploy.
optix_add_widgetAuthor an edit that adds widget(s) to a screen — does NOT deploy.
optix_bridge_add_bound_widgetwrite actionCreate a widget, position it, and bind one property — in ONE call.
optix_bridge_add_labelAdd a Label with text (+ optional position) in ONE call via the live bridge.
optix_bridge_add_navigation_panel_itemAdd a tab to a NavigationPanel in ONE call: create the item (auto- routed into Panels), set its Title, and point it at a screen.
optix_bridge_add_translationAdd or update a translation for a LocalizedText key via the bridge.
optix_bridge_add_translationsAdd (or overwrite) SEVERAL translation rows in one call via the bridge.
optix_bridge_armArm or stop the design-time bridge for a project WITHOUT a human at the keyboard — ONE tool, pick an `action`.
optix_bridge_attach_expressionAttach an ExpressionEvaluator converter to a property via the bridge.
optix_bridge_attach_formatterAttach a FORMATTED DYNAMIC LINK to a property via the bridge.
optix_bridge_bind_propertyBind a node's property to a model variable (DynamicLink) via the bridge.
optix_bridge_convert_to_typeConvert a LIVE instance into a reusable ObjectType — Studio's right-click "Convert to Type" refactor, which has no public API.
optix_bridge_create_aliaswrite actionCreate an alias under a node — the parameter slot of a reusable component/template.
optix_bridge_create_folderwrite actionCreate a structural FOLDER in the LIVE model via the design-time bridge.
optix_bridge_create_netlogicwrite actionRegister a NetLogic (C#) node in the LIVE model via the bridge — the authoring step that used to require Studio's "New -> NetLogic" menu.
optix_bridge_create_objectwrite actionCreate a plain OBJECT container — or an INSTANCE of a custom type — in the LIVE model via the design-time bridge.
optix_bridge_create_typewrite actionCreate an OBJECT TYPE (reusable template) in the LIVE model.
optix_bridge_create_variablewrite actionCreate a model variable in the LIVE model via the design-time bridge.
optix_bridge_create_widgetwrite actionCreate a UI widget on a screen in the LIVE model via the bridge.
optix_bridge_delete_nodewrite actionDelete a node from the live model via the bridge.
optix_bridge_editoptix_bridge_ensure_web_engineEnsure a Web presentation engine exists so the runtime serves a canvas.
optix_bridge_import_tagsoptix_bridge_invoke_methodwrite actionExecute an exported UAMethod on a live-model object via the bridge.
optix_bridge_log_tailTail the design-time bridge's transport diagnostics — the forensic trail for bridge drops/timeouts (why did :8768 go unreachable?).
optix_bridge_move_nodeMOVE (reparent) a live instance to a new parent — e.g. an existing column of widgets into a freshly-created ScrollView.
optix_bridge_remove_translationwrite actionNOT SUPPORTED: the Optix SDK cannot remove a translation row.
optix_bridge_reorderChange a node's z-order among its siblings via the bridge.
optix_bridge_retypeChange an existing VARIABLE's DataType in place via the bridge.
optix_bridge_set_modelling_ruleSet the ModellingRule of a TYPE MEMBER via the bridge.
optix_bridge_set_propertySet a property on a LIVE-model node via the design-time bridge.
optix_bridge_set_text_keySet a text property to a TRANSLATION KEY (LocalizedText with a TextId).
optix_bridge_statusStatus of the design-time read-bridge(s) (NetLogic HTTP listener(s) in Studio).
optix_bridge_validate_expressionSyntax-check an ExpressionEvaluator formula WITHOUT attaching it.
optix_bridge_wire_eventoptix_build_checkCompile the project's NetSolution C# and report errors — a safe pre-flight that never touches Studio's build or runs the emulator.
optix_cdp_clickClick (x, y) on the Optix runtime canvas via CDP — the RELIABLE path.
optix_cdp_diffCompare two optix_cdp_sweep capture directories screen-by-screen — a visual regression check, no CDP session needed (pure file comparison).
optix_cdp_fillwrite actionUpdate a field on the running HMI in ONE call: click (x, y), type `text`, commit with `submit` (default Enter — values don't stick without it).
optix_cdp_find_textLocate `text` on the runtime canvas via tesseract word boxes — to find a labeled control to click, or to build a navigation route.
optix_cdp_keyPress one named key on the running Optix HMI (CDP dispatchKeyEvent, keyDown+keyUp).
optix_cdp_navigateZero-screenshot navigation to a banked screen: replays a sequence of clicks from a routes JSON file instead of screenshot -> locate -> click, click again.
optix_cdp_ocrOCR the runtime canvas via tesseract — an OPT-IN, text-only read-back.
optix_cdp_read_textOCR a region of the runtime canvas via tesseract — THE cheap check for "does the screen/widget say X" — zero vision tokens.
optix_cdp_restartRecover the chrome-cdp instance that screenshot/click drive.
optix_cdp_screenshotScreenshot the running Optix HMI (emulator or deployed runtime) via CDP — THE way to visually verify a change.
optix_cdp_sweepCapture a full-frame screenshot (+ OCR text, if tesseract is installed) of every route in a banked routes file, in ONE CDP session — builds the visual baseline optix_cdp_diff compares against.
optix_cdp_typeType a string into the focused field on the running Optix HMI (CDP Input.insertText).
optix_deploywrite actionApply edits and deploy via FTOptixStudio export -> tree swap -> runtime bounce (v0.2.x).
optix_deploy_preflightwrite actionRun every deploy precondition without launching Studio.
optix_deploy_updatesvcwrite actionDeploy a saved project via the FT Optix Application Update Service.
optix_describe_nodeIntrospect one node in the LIVE model via the design-time bridge.
optix_describe_typeProperty schema of a builtin UI type from the LIVE model — the "shape" of a control (which properties it has, their datatypes), so an edit can be composed against the real schema instead of guessed YAML. `type_name` is a catalog name from optix_list_ui_types (e.g. "Label", "Button"). Bridge-only (else `bridge_unavailable`); `node_not_found` for an unknown type.
optix_emulatoroptix_execute_methodwrite actionRight-click -> Execute a design-time [ExportMethod] on a NetLogic node, WITHOUT a human at the keyboard.
optix_findSearch a project's text files for a literal string — server-side.
optix_get_project_mapComponent map of the project (names + nesting) in ONE call — the cheap way to learn structure instead of walking it with repeated optix_describe_node.
optix_get_skillFull content of one bundled playbook by name (from optix_list_skills).
optix_interactoptix_list_projectsList Optix projects under OPTIX_PROJECTS_ROOT. You RARELY need this: every project-scoped tool defaults to the project open in Studio when `project` is omitted.
optix_list_screensList the Screen / Panel / Dialog nodes in a project's UI — the starting point for any UI edit.
optix_list_skillsCatalog of the bundled authoring playbooks — one line each (proven recipes for navigation, bound controls, styles, expressions, alarms). Scan for a matching pattern, then optix_get_skill(name) for just that one.
optix_list_ui_typesList the builtin UI type catalog from the LIVE model — "what controls exist?" (Label, Button, Rectangle, Panel, DataGrid, Trend, …), read from Studio's type system, not guessed. Bridge-only (else `bridge_unavailable`). Pair with optix_describe_type for a type's property schema.
optix_observeoptix_projectStudio project lifecycle via its CLI — ONE tool, pick an `action`.
optix_read_fileRead a UTF-8 file under an Optix project, optionally a line range.
optix_read_netlogicRead a NetLogic C# source file by class name from ProjectFiles/NetSolution.
optix_routesoptix_runtime_startLaunch FTOptixRuntime against the swapped runtime tree for `project`.
optix_runtime_statusProbe a runtime instance's reachability.
optix_runtime_stopStop FTOptixRuntime processes attached to `project`'s runtime tree.
optix_savePersist the open project to disk (sends Ctrl+S to Studio).
optix_schemaStudio type-schema operations — ONE tool, pick an `action`. Consolidates the optix_schema_dump / _list / _diff family (each formerly its own tool); replaced cleanly, no deprecated aliases.
optix_set_propertyAuthor a find/replace edit changing one inline property — no deploy.
optix_statuswrite actionDeploy-stack status family — ONE tool, pick an `action`. Consolidates optix_health / optix_doctor / optix_services_status / optix_studio_version (each formerly its own tool); replaced cleanly, no deprecated aliases.
optix_studio_logTail Studio's own log, FTOptixStudio.0.log — the only place Studio reports that it REJECTED an optix_execute_method call (which optix_execute_method now surfaces itself as state="rejected").
Public scan report
scanner v0.1.10 · 2026-10-31 · same rubric, same numbers if you re-run it
- Code scan25 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 16 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How FTX MCP — FactoryTalk Optix MCP Server compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 92/100
- higher than 95% of 48,255 servers
- Tools
- 78
- the typical server has 7
- Tools that change things
- 22%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 18
- more than 90% of 28,688 servers
- Downloads a week
- 41
- more than 33% of 12,191 servers with a package
What its tools let an agent do: 61 read · 17 change
Release history: 3 versions in the registry since 2026-08-25, latest 2026-10-15, typically one every 37 days.
Install FTX MCP — FactoryTalk Optix MCP Server in Claude Code, Cursor or VS Code
claude mcp add ftx-mcp -- uvx ftx-mcp
What the publisher says
From the FTX MCP — FactoryTalk Optix MCP Server repository's README, as published. We do not edit it. Read it on GitHub
ftx-mcp
<!-- mcp-name: io.github.asqi-carter/ftx-mcp -->
Talk to your FactoryTalk Optix project. ftx-mcp connects AI tools (Desktop, Cowork, Code — or any MCP client) to FactoryTalk Optix Studio on your Windows machine, so you can build and change HMI screens by describing what you want:
"Add a header that says 'Hello Optix' to Screen 1 and show me."
"Bind that label's visibility to Model/PumpRunning."
"Looks right. Launch the emulator and validate it."
Your LLM authors the change directly into your open Studio project, runs the emulator, and looks at the rendered runtime to confirm it worked. It is a development and testing companion: shipping to hardware stays in Studio's own Deploy dialog, in your hands. Everything besides the LLM calls runs locally on your machine. No cloud service, no API key; your LLM of choice provides the intelligence.
Blog Post
Install (10 minutes)
Requirements: Windows 11, FactoryTalk Optix Studio 1.7.x, and an MCP client like Claude Cowork. Also: Google Chrome (the CDP verify loop; skip with setup.ps1 -NoCdp) and — for the Claude Desktop Microsoft Store build connector path — Node.js (winget install OpenJS.NodeJS.LTS; the config uses npx mcp-remote). Setup auto-installs Tesseract OCR via winget for the zero-vision-token text tools (skip with -NoOcr; everything else works without it) and Pillow into the venv for pixel diffing.
Run setup.ps1 from a regular PowerShell window — not a shell hosted inside a packaged app like the Store build of Claude Desktop, whose %LOCALAPPDATA% writes are virtualized (setup now detects this and refuses). If you downloaded a ZIP instead of cloning, run Get-ChildItem -Recurse | Unblock-File first.
If setup.ps1 (or any bootstrap\*.ps1) fails to run at all with a script- execution / "running scripts is disabled" error, your machine's execution policy is blocking unsigned scripts. Unblock them for the current window only — no admin, no persistent policy change — then re-run:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypassgit clone https://github.com/asqi-carter/ftx-mcp.git
cd ftx-mcp
.\bootstrap\setup.ps1 # install (does not start anything)
.\bootstrap\services.ps1 start # start the service + cdp chrome
.\bootstrap\services.ps1 status # verify health
http://127.0.0.1:8765/ui # health dashboardAuth: the default install is loopback-only with auth OFF — setup never prompts, and no token is needed on your own box. Binding to the LAN is the one case that requires auth: install with .\bootstrap\setup.ps1 -EnableAuth (see docs/security.md). If a UI/API unexpectedly asks for a bearer token, a previous install enabled auth — re-run setup with -NoAuth to clear it.
To remove an install (or reset before a clean reinstall): .\bootstrap\uninstall.ps1 stops and unregisters the scheduled tasks and reaps any leftover CDP chrome; add -All to also delete state (issued tokens, chrome profile, persisted auth choice) and the venv.
Start the Studio Bridge (5 minutes)
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
FTX MCP — FactoryTalk Optix MCP Server: common questions
- Is FTX MCP — FactoryTalk Optix MCP Server safe?
- Yes, by our scan: it is graded A (92/100). Read the FTX MCP — FactoryTalk Optix MCP Server safety report
- How do I install FTX MCP — FactoryTalk Optix MCP Server?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does FTX MCP — FactoryTalk Optix MCP Server need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is FTX MCP — FactoryTalk Optix MCP Server maintained?
- The last commit was 20 days ago (2026-10-15). The latest release is v1.0.9.
- What can I use instead of FTX MCP — FactoryTalk Optix MCP Server?
- Servers from other publishers that do the same job: AdLoop MCP server.
- How does FTX MCP — FactoryTalk Optix MCP Server compare with other MCP servers?
- safety score 92/100 (higher than 95% of 48,255 servers); tools 78 (the typical server has 7); tools that change things 22% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to FTX MCP — FactoryTalk Optix MCP Server
Same job from other publishers: the closest match first, then the best rated.
- AdLoopGoogle Ads, Reddit Ads, GA4 and Tag Manager in your AI client, with a preview before every change.not reviewedEstablishedA