Skip to content
Agentmart
Submit a tool

WAGO PLC

Read and monitor WAGO PLC parameters over the WDA REST API.

Connector by WagoAlex · GitHub account verified by the MCP Registry

IndexedLicense unknownLocal (stdio)★ 4
Write a review

Chalk Labs

Need help deploying WAGO PLC?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/wagoalex-wago-plc-mcp-server

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Read and monitor WAGO PLC parameters over the WDA REST API. Read-only unless writes are allowed.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
20 read · 7 write · 2 delete
Secrets
1 (API keys, tokens or passwords)
Install scripts
None found
Runs as
Python package

Tools by what they do 29

Read from the source code; the running server may list different tools.

Read 20 · Look things up without changing anything.

  • describe_plc
  • find_methods
  • find_parameters
  • get_device
  • get_enum_definition
  • get_feature
  • get_file_metadata
  • get_method
  • get_method_run
  • get_parameter
  • get_parameter_definition
  • get_parameter_instance
Show 8 more tools
  • get_parameter_referenced_instances
  • get_parameters_bulk
  • get_plc_audit_log
  • list_method_runs
  • list_parameter_instances
  • list_plcs
  • list_watchlists
  • read_watchlist

Write 7 · Create, change, send or run things.

  • create_file
  • create_watchlist
  • download_file
  • invoke_method
  • set_parameter
  • set_parameters
  • upload_file

Delete 2 · Delete, drop, revoke or wipe things.

  • delete_method_run
  • delete_watchlist

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • DEFAULT_PLC_PASSWORD

Other settings (environment variables or headers).

  • AUDIT_LOG_FILE
  • DEFAULT_PLC_USERNAME
  • TRANSPORT
  • WAGO_ALLOW_WRITES
  • WAGO_PLC_HOSTS
  • WAGO_TIMEOUT_SECONDS

Network hosts it talks to 6

  • 1.2.3.4 · found in code
  • api.github.com · found in code
  • github.com · found in code
  • hub.docker.com · found in code
  • plc-gateway.plant.internal · found in code
  • raw.githubusercontent.com · found in code

Files it touches

  • /tmp/firmware-cache
  • /tmp/verify-audit.log

Tools (29)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • create_file

    Allocate a file_id for uploading content into a file_id-typed parameter.

  • create_watchlist

    Create a server-side watchlist of parameters for efficient repeated polling. Returns {watchlist_id, parameters: [{id, value, dataType}]} with initial values. Watchlist auto-expires after timeout_seconds of inactivity (reset on each read). Use timeout_seconds=0 for one-shot read.

  • delete_method_run

    Free a server-side run result before it expires on its own. Optional housekeeping, not required for correctness.

  • delete_watchlist

    Delete a watchlist to free server resources before timeout.

  • describe_plc

    Get capability summary for a PLC: counts + feature names. Cheap, cached.

  • download_file

    Download a file's content as base64. Pairs with a parameter whose dataType is file_id.

  • find_methods

    Search method IDs by substring/fuzzy match. Returns up to `limit` matches (default 20).

  • find_parameters

    Search parameter IDs by substring/fuzzy match. Returns up to `limit` matches (default 20, max 255). Set writeable_only=True to filter parameters that can be written. Set user_settings_only=True to filter user-configurable parameters. Empty query returns the first N parameters alphabetically.

  • get_device

    Get a device resource plus the features it exposes (one call).

  • get_enum_definition

    Get an enum definition's cases (value → stringValue). Useful to inspect an enum's full case list directly.

  • get_feature

    Get a feature plus its composition: nested features, contained parameter/method definitions (one call).

  • get_file_metadata

    HEAD a file_id — size/content-type without downloading the body.

  • get_method

    Get method metadata with inline inArgs/outArgs signatures. One call gives the full schema needed for invoke_method.

  • get_method_run

    Poll an async method run. Use after invoke_method(wait=False) to check status.

  • get_parameter

    Read a single parameter value. Resolves enum values to human-readable labels.

Show 14 more tools
  • get_parameter_definition

    Get a parameter's definition: writeable, userSetting, dataType, related enum — without reading its value.

  • get_parameter_instance

    Get one class-parameter instance: its device, own parameters, and methods (one call).

  • get_parameter_referenced_instances

    For an instance_identity_ref-typed parameter: the class instances that reference it.

  • get_parameters_bulk

    Read one parameter from multiple PLCs in parallel — one call instead of N. requests: list of {"plc_ip": str, "parameter_id": str} Returns: list of {"plc_ip": str, "parameter_id": str, "value": ..., ...} or {"error": ...} Concurrency is bounded by WAGO_MAX_CONCURRENT_READS (default 10) so a large request list cannot overload slow PLCs (CC100 web server is easily starved). Example — read firmware version from all PLCs: [{"plc_ip": "192.168.42.110", "parameter_id": "0-0-version-firmwareversion"}, ...]

  • get_plc_audit_log

    Return recent audit log entries, newest first. plc_ip: filter to a specific PLC IP (empty = all PLCs). action: filter by action type — register_plc, deregister_plc, set_parameters, invoke_method (empty = all actions). limit: max entries to return (default 50, max 500). Each entry contains: ts, action, plc, agent, result, prev (chain hash), plus action-specific fields.

  • invoke_method

    Invoke a method. Pass `arguments` as a flat dict {name: value}. wait=True (default): blocks until done/error. Returns {status, run_id, out_args}. wait=False: returns immediately with run_id; poll with get_method_run. Example: invoke_method(plc_ip, "0-0-ntpclient-updatetime")

  • list_method_runs

    List past runs of a method still held server-side (audit/inspection use).

  • list_parameter_instances

    List instance numbers of a class-typed parameter (dataType 'instantiations'). Use get_parameter_instance for detail.

  • list_plcs

    List all reachable WAGO PLCs. Use first to find a target IP.

  • list_watchlists

    List watchlist IDs still active server-side (e.g. after a restart, to find orphans).

  • read_watchlist

    Read current values from an existing watchlist. Resets the timeout.

  • set_parameter

    Write a single parameter. Prefer set_parameters for more than one — same PATCH-per-call cost either way.

  • set_parameters

    Write multiple parameters in one PATCH call. Pre-validates writeability from cache. parameters: list of {"id": str, "value": any} Example: [{"id": "0-0-systemtime-local-now", "value": "2026-05-13T14:30:00"}]

  • upload_file

    Upload whole file content (base64-encoded) to a file_id from create_file.

Signals

Stars
4
Forks
1
Open issues
0
Weekly downloads
96
Last commit
Sep 25, 2026 (1 month ago)
Last release
Sep 21, 2026 (1 month ago)
Last package publish
Sep 21, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.WagoAlex/wago-plc-mcp-server
Version
2.4.4
Auth
API key
Packages
pypi wago-plc-mcp-serveroci docker.io/wagoalex/wago-plc-mcp-server:2.4.4
License
License unknown
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get WAGO PLC running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying WAGO PLC?

CallGet help
Cite this page

WAGO PLC MCP server. Agent Mart. https://agentmart.dev/connectors/wagoalex-wago-plc-mcp-server (last updated 2026-10-24)