MCP.Market

FTX MCP — FactoryTalk Optix MCP Server

by asqi-carter·io.github.asqi-carter/ftx-mcp·v1.0.9·18 stars

MCP server for FactoryTalk Optix: author, preview, and verify Studio changes via the emulator.

A92/100grade A
What users say
No reviews yet
Be the first
Safety scan
A92/100

full report

Adoption
Growing

18 stars41 downloads/wk

Reviews

Write one

Nobody 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 posts

Read from the package source without running it. The installed server may list more.

  • _wrapper
  • optix_active_target

    Which deployment target Studio's dropdown has selected — the thing an F5 (optix_emulator action="run") would actually run.

  • optix_add_model_variable

    Author an edit adding a read+write variable to Model — does NOT deploy.

  • optix_add_widget

    Author an edit that adds widget(s) to a screen — does NOT deploy.

  • optix_bridge_add_bound_widgetwrite action

    Create a widget, position it, and bind one property — in ONE call.

  • optix_bridge_add_label

    Add a Label with text (+ optional position) in ONE call via the live bridge.

  • optix_bridge_add_navigation_panel_item

    Add 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_translation

    Add or update a translation for a LocalizedText key via the bridge.

  • optix_bridge_add_translations

    Add (or overwrite) SEVERAL translation rows in one call via the bridge.

  • optix_bridge_arm

    Arm or stop the design-time bridge for a project WITHOUT a human at the keyboard — ONE tool, pick an `action`.

  • optix_bridge_attach_expression

    Attach an ExpressionEvaluator converter to a property via the bridge.

  • optix_bridge_attach_formatter

    Attach a FORMATTED DYNAMIC LINK to a property via the bridge.

  • optix_bridge_bind_property

    Bind a node's property to a model variable (DynamicLink) via the bridge.

  • optix_bridge_convert_to_type

    Convert a LIVE instance into a reusable ObjectType — Studio's right-click "Convert to Type" refactor, which has no public API.

  • optix_bridge_create_aliaswrite action

    Create an alias under a node — the parameter slot of a reusable component/template.

  • optix_bridge_create_folderwrite action

    Create a structural FOLDER in the LIVE model via the design-time bridge.

  • optix_bridge_create_netlogicwrite action

    Register 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 action

    Create a plain OBJECT container — or an INSTANCE of a custom type — in the LIVE model via the design-time bridge.

  • optix_bridge_create_typewrite action

    Create an OBJECT TYPE (reusable template) in the LIVE model.

  • optix_bridge_create_variablewrite action

    Create a model variable in the LIVE model via the design-time bridge.

  • optix_bridge_create_widgetwrite action

    Create a UI widget on a screen in the LIVE model via the bridge.

  • optix_bridge_delete_nodewrite action

    Delete a node from the live model via the bridge.

  • optix_bridge_edit
  • optix_bridge_ensure_web_engine

    Ensure a Web presentation engine exists so the runtime serves a canvas.

  • optix_bridge_import_tags
  • optix_bridge_invoke_methodwrite action

    Execute an exported UAMethod on a live-model object via the bridge.

  • optix_bridge_log_tail

    Tail the design-time bridge's transport diagnostics — the forensic trail for bridge drops/timeouts (why did :8768 go unreachable?).

  • optix_bridge_move_node

    MOVE (reparent) a live instance to a new parent — e.g. an existing column of widgets into a freshly-created ScrollView.

  • optix_bridge_remove_translationwrite action

    NOT SUPPORTED: the Optix SDK cannot remove a translation row.

  • optix_bridge_reorder

    Change a node's z-order among its siblings via the bridge.

  • optix_bridge_retype

    Change an existing VARIABLE's DataType in place via the bridge.

  • optix_bridge_set_modelling_rule

    Set the ModellingRule of a TYPE MEMBER via the bridge.

  • optix_bridge_set_property

    Set a property on a LIVE-model node via the design-time bridge.

  • optix_bridge_set_text_key

    Set a text property to a TRANSLATION KEY (LocalizedText with a TextId).

  • optix_bridge_status

    Status of the design-time read-bridge(s) (NetLogic HTTP listener(s) in Studio).

  • optix_bridge_validate_expression

    Syntax-check an ExpressionEvaluator formula WITHOUT attaching it.

  • optix_bridge_wire_event
  • optix_build_check

    Compile the project's NetSolution C# and report errors — a safe pre-flight that never touches Studio's build or runs the emulator.

  • optix_cdp_click

    Click (x, y) on the Optix runtime canvas via CDP — the RELIABLE path.

  • optix_cdp_diff

    Compare two optix_cdp_sweep capture directories screen-by-screen — a visual regression check, no CDP session needed (pure file comparison).

  • optix_cdp_fillwrite action

    Update 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_text

    Locate `text` on the runtime canvas via tesseract word boxes — to find a labeled control to click, or to build a navigation route.

  • optix_cdp_key

    Press one named key on the running Optix HMI (CDP dispatchKeyEvent, keyDown+keyUp).

  • optix_cdp_navigate

    Zero-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_ocr

    OCR the runtime canvas via tesseract — an OPT-IN, text-only read-back.

  • optix_cdp_read_text

    OCR a region of the runtime canvas via tesseract — THE cheap check for "does the screen/widget say X" — zero vision tokens.

  • optix_cdp_restart

    Recover the chrome-cdp instance that screenshot/click drive.

  • optix_cdp_screenshot

    Screenshot the running Optix HMI (emulator or deployed runtime) via CDP — THE way to visually verify a change.

  • optix_cdp_sweep

    Capture 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_type

    Type a string into the focused field on the running Optix HMI (CDP Input.insertText).

  • optix_deploywrite action

    Apply edits and deploy via FTOptixStudio export -> tree swap -> runtime bounce (v0.2.x).

  • optix_deploy_preflightwrite action

    Run every deploy precondition without launching Studio.

  • optix_deploy_updatesvcwrite action

    Deploy a saved project via the FT Optix Application Update Service.

  • optix_describe_node

    Introspect one node in the LIVE model via the design-time bridge.

  • optix_describe_type

    Property 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_emulator
  • optix_execute_methodwrite action

    Right-click -> Execute a design-time [ExportMethod] on a NetLogic node, WITHOUT a human at the keyboard.

  • optix_find

    Search a project's text files for a literal string — server-side.

  • optix_get_project_map

    Component 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_skill

    Full content of one bundled playbook by name (from optix_list_skills).

  • optix_interact
  • optix_list_projects

    List 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_screens

    List the Screen / Panel / Dialog nodes in a project's UI — the starting point for any UI edit.

  • optix_list_skills

    Catalog 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_types

    List 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_observe
  • optix_project

    Studio project lifecycle via its CLI — ONE tool, pick an `action`.

  • optix_read_file

    Read a UTF-8 file under an Optix project, optionally a line range.

  • optix_read_netlogic

    Read a NetLogic C# source file by class name from ProjectFiles/NetSolution.

  • optix_routes
  • optix_runtime_start

    Launch FTOptixRuntime against the swapped runtime tree for `project`.

  • optix_runtime_status

    Probe a runtime instance's reachability.

  • optix_runtime_stop

    Stop FTOptixRuntime processes attached to `project`'s runtime tree.

  • optix_save

    Persist the open project to disk (sends Ctrl+S to Studio).

  • optix_schema

    Studio 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_property

    Author a find/replace edit changing one inline property — no deploy.

  • optix_statuswrite action

    Deploy-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_log

    Tail 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

no findings
  • 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
Overall 92/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

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
Add to Cursor

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 Bypass
git 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 dashboard

Auth: 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.

  • AdLoop
    Google Ads, Reddit Ads, GA4 and Tag Manager in your AI client, with a preview before every change.
    A