Skip to main content
Glama
ufukefekaya-tr

Delta PLC Agent

Delta PLC Agent

AI-powered engineering for Delta PLCs — AX, ISPSoft and WPLSoft workflows through one MCP. One MCP. Model-aware workflows. Traceable results.

Software CI MIT Python 3.11+ English · Türkçe

Bring AI agents into PLC engineering: select the right tools for an exact target, work in isolated project copies, and keep a verifiable record of every operation. Delta PLC Agent connects a vendor-neutral MCP core with AX engineering tools, ISPSoft transformations, DVP monitoring, and reusable agent workflows.

Run the demo · Connect your agent · Explore every feature

flowchart LR
    A[Engineer + AI agent] --> B[Exact model + toolchain]
    B --> C[Universal PLC MCP]
    C --> D[AX engineering]
    C --> E[ISPSoft file tools]
    C --> F[DVP serial + watch]
    C --> G[Your adapter]
    D & E & F & G --> H[Workspace + evidence + recovery]

Why Delta PLC Agent

  • One entry point for your agent. Eleven MCP tools cover target selection, capabilities, workspaces, adapter operations, evidence, and workflows.

  • Engineering with context. Bind changes to the exact model, source hash, task, and revision. Resume from durable records after an interruption.

  • A toolkit that travels. Install the same source on your workstation or server; configure project roots and vendor tooling on that host.

  • A team, not just a prompt. Analyst, architect, programmer, verifier, tenth-man reviewer, and Kaizen curator roles give agents a shared engineering process.

  • Room to grow. Register vendor adapters through Python entry points and extend the catalog without changing the core workflow interface.

Related MCP server: RemoteConnect MCP Server

Try it

With Python 3.11+ and Git:

git clone https://github.com/ufukefekaya-tr/delta-plc-agent.git
cd delta-plc-agent
python -m venv .venv

Activate .venv with its activation script for your shell, then:

python tools/install.py
python tools/demo.py

The demo routes a DVP target, creates an isolated workspace, converts a tiny instruction list to MPU and back, and verifies its evidence records. No IDE or PLC is needed. Use python tools/install.py --profile dvp for the compact DVP/ISPSoft package.

Engineering paths

Path

What you can explore

Universal MCP

Exact-model routing, capability discovery, hash-bound imports, persistent workspaces, evidence and W1–W7 workflows

Delta AX

Project creation, ST/Ladder tooling, build and job orchestration, source readback, artifact and deployment contracts

ISPSoft files

Supported ISP container inspection, existing ST/variable patching, POU/library packages, DVP IL↔MPU and template-based generation

DVP serial

ASCII/DirectLink CDC, identity/status reads, profile-bound M/D commands and parameters, observation and reconciliation for DVP14SS211R

WPLSoft agent workflow

Computer Use recipe for project editing, compilation and requested download, paired with MCP online observation

Agent engineering

Six roles, behavior contracts, independent review, checkpoints, goals and reusable Kaizen lessons

Detailed feature map and qualifications · Architecture · Roadmap

Connect your agent

Start a stdio server with the Python environment where you installed Delta PLC Agent:

python -m universal_plc --root ./plc-agent-data serve

Point your MCP client's command at that environment's Python interpreter and use the arguments above. Give your agent AGENTS.md and INDEX.md as its engineering entrypoints. Client configuration and a first prompt.

Build with us

Bring an adapter, a reproducible model qualification, an example, or a documentation improvement. Start with CONTRIBUTING and the public launch workflow.

Workflows · Goals · Agent-readable index · Validation · Security · Launch kit

Created and maintained by ufukefekaya-tr. Core and AX backend: MIT. Third-party authors and licenses remain credited. Cite the project with CITATION.cff.

Available Tools

11 tools
adapter.invokeB
Destructive

Invoke an explicitly registered typed capability. No arbitrary shell/eval; backend qualification and authority gates remain in force.

ParametersJSON Schema
NameRequiredDescriptionDefault
argumentsYes
operationYes
workspace_idYes
expected_context_digestYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, readOnlyHint=false and non-idempotence, and the description adds genuine context beyond them: no arbitrary shell/eval, plus backend qualification and authority gates that remain in force. It does not, however, disclose what damage occurs, whether invocation is reversible or how authority gating manifests at call time, which matters for a destructive, non-idempotent tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the core action front-loaded and a meaningful constraint second; no wasted words. It is close to optimal in size, though the brevity contributes to the gaps scored elsewhere.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, but the definition omits everything else an agent needs: how to name an operation, what 'arguments' accepts, and what 'expected_context_digest' is for. For a destructive, gated, four-required-parameter tool this is inadequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across four required parameters, including a non-obvious 'expected_context_digest' and an open-ended nested 'arguments' object. The description mentions no parameters at all, so it fails to compensate for the coverage gap and leaves the call contract under-specified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Invoke') and resource ('explicitly registered typed capability'), and the 'No arbitrary shell/eval' clause separates it from a generic code-execution tool. However, it never says what kinds of capabilities exist or how this relates to siblings like capabilities.list, so the resource remains abstract.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Explicitly registered' implies a precondition (the capability must be registered first), which is useful implied usage guidance. But there is no explicit when-to-use, when-not-to-use, or named alternative among the ten siblings, so the agent must infer routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

capabilities.listD
Read-onlyIdempotent

Read implementation and qualification separately; this grants no authority.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

D1.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered without the description. The phrase 'this grants no authority' adds a small disambiguation (reading capabilities does not confer them), but nothing about auth requirements, rate limits, or the shape of the operation is disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but brevity here comes from under-specification rather than economy; the sentence is opaque and does not front-load any actionable purpose. Every clause is vague rather than wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, but with a nested required parameter, no parameter documentation, and a purpose that is never stated plainly, the definition is not complete enough for reliable selection or invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single required 'target' parameter is a nested object with additionalProperties=true and 0% schema description coverage, so the schema explains almost nothing. The description never mentions this parameter or its expected contents, failing to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name implies listing capabilities, but the description speaks only of reading 'implementation and qualification separately,' which never states what the tool actually returns or over what domain. Terms like 'implementation' and 'qualification' are undefined jargon, so an agent cannot confidently distinguish this from environment.probe or evidence.read.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisite, and no named alternative among the ten siblings. The clause 'this grants no authority' reads as a warning rather than a routing rule, leaving selection entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

environment.probeA
Read-onlyIdempotent

Inventory local installations without opening an IDE or contacting a PLC.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety and side-effect profile is largely covered as structured data. "Without opening an IDE or contacting a PLC" adds a modest behavioral nuance (no external process launch), but partly restates openWorldHint=false; nothing is said about cost, latency, or scope of the inventory returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler; the verb and resource lead, and the constraint follows. Nothing could be trimmed without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With zero parameters, a rich annotation set and an existing output schema, the description does not need to explain return values or safety. However, it never defines what counts as a "local installation" (PLC runtimes, adapters, SDKs?) nor when in a workflow to run it, which is the one thing an agent must decide before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is no parameter semantics for the description to supply and the baseline of 4 applies. No misuse risk stems from undocumented arguments.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: "Inventory local installations." The qualifier "without opening an IDE or contacting a PLC" hints at how it differs from adapter.invoke or a discovery-style sibling, though it never names an alternative, so differentiation is implicit rather than explicit. An agent can tell what it does but must infer where it sits among the 10 siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the non-invasive phrasing suggests it is a safe pre-flight discovery step before invoking adapters or starting workflows, but no when-to-use, when-not-to-use, or alternative sibling is named. Adequate but leaves routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

evidence.readB
Read-onlyIdempotent

Read durable operation evidence, including incomplete intents after restart.

ParametersJSON Schema
NameRequiredDescriptionDefault
evidence_idYes
workspace_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, and non-destructive, so the safety profile is covered. The description still adds real behavioral value: evidence is durable across restarts and may include incomplete intents, telling the agent results can represent unfinished operations rather than only committed state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the scope qualifier comes immediately after the core verb+resource. It is efficient, though the extreme brevity leaves the reader wanting more given the undefined domain term.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations cover the safety profile. However, the undefined concept of 'evidence' and the entirely undocumented identifiers leave real gaps for an agent deciding whether and how to call it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Two required parameters (workspace_id, evidence_id) with 0% schema description coverage, and the description says nothing about what either identifier means or how to obtain it. The description fails to compensate for the coverage gap, so it sits below the 3 baseline that would apply with strong schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read durable operation evidence') and narrows scope with 'including incomplete intents after restart'. No sibling tool in the list deals with evidence, so it is distinguishable, but the term 'evidence' itself is domain jargon left undefined.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use statement, no prerequisites, and no named alternatives among the sibling tools. The 'after restart' phrase faintly implies a recovery scenario but never says when an agent should reach for this tool versus, say, workflow.status.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

target.resolveC
Read-onlyIdempotent

Resolve exact model and compatible adapter; ambiguous selection stays explicit.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYes
operationNo
project_targetNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint: false, and openWorldHint: false. The description adds that ambiguous selection remains explicit rather than being silently chosen, which is useful behavioral context, but it does not cover errors, permissions, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler. It is concise, though the semicolon clause is terse and could be more structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a nested input schema with 0% parameter description coverage, and the description does not explain the core input parameters or usage flow. An output schema exists, so return values need less description, but the input semantics remain insufficiently covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, with three parameters including nested target and project_target objects. The description does not name or explain 'target', 'operation', or 'project_target', so it fails to compensate for the missing schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resources: 'Resolve exact model and compatible adapter.' That is clearer than a tautology, but it does not distinguish this tool from siblings such as adapter.invoke or capabilities.list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no when-not-to-use condition, and no named alternative. The clause 'ambiguous selection stays explicit' describes behavior rather than usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflow.runC
Destructive

Execute explicit allowed steps once; dependent queued work stops the chain for evidence review.

ParametersJSON Schema
NameRequiredDescriptionDefault
stepsYes
run_idYes
workspace_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and non-idempotent, so the safety profile is covered. The description adds that dependent queued work halts the chain pending evidence review, which is genuine behavioral context beyond annotations, though the mutation semantics (what gets destroyed by destructive steps) remain unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the verb, and no wasted words. But the compression is so extreme that the sentence is under-specified rather than concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A destructive, non-idempotent execution tool with three required parameters and zero schema coverage needs far more: prerequisites, what a steps entry looks like, and side effects. The output schema covers returns, but invocation correctness is not addressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden and fails: workspace_id, run_id, and especially the required but untyped 'steps' array get no explanation of form, ordering, or per-step shape.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'Execute' and resource 'steps' are present, but the scope is obscure: 'explicit allowed steps once' is cryptic without knowing what 'allowed' means. It is distinguishable from workflow.start only by inference, not by explicit statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No statement of when to use this versus workflow.start or workflow.status. The clause about queued work stopping the chain is a behavioral detail, not usage guidance. An agent has to guess the selection rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflow.startA
Destructive

Create a durable W1..W7 workflow; does not execute or grant authority.

ParametersJSON Schema
NameRequiredDescriptionDefault
workflowYes
workspace_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=false. The description adds meaningful behavioral context beyond them: the created workflow is durable, it does not execute anything, and it grants no authority. It still omits what the durability/authority model means operationally and what a repeat call does, but the new information is substantive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no wasted words; the create action and the two exclusions are stated up front. It is terse to the point of under-specification, but nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations carry the safety profile. The gaps are the undocumented parameters and the unexplained 'W1..W7' taxonomy, which an agent needs to supply a valid 'workflow' value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters have 0% schema description coverage, so the description carries the full burden and largely fails it. The only hint is 'W1..W7', which loosely implies what the 'workflow' string should contain, but 'workspace_id' is entirely undocumented and no format/syntax guidance is given for either.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a durable W1..W7 workflow') and implicitly differentiates itself from workflow.run and workflow.status by declaring it does not execute. However, 'W1..W7' is unexplained jargon and no sibling is named explicitly, so the agent must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The clause 'does not execute or grant authority' gives clear when-not guidance and implies that workflow.run is the tool for execution. There is no explicit statement of when this tool should be preferred over alternatives, but the context is clear enough to route correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflow.statusC
Read-onlyIdempotent

Resume visibility after disconnect without retrying side effects.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYes
workspace_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive and closed-world, but the description adds a distinct behavioral promise: calling it will not re-trigger side effects, and it re-establishes visibility rather than advancing the run. That is useful context beyond the hints, though it stops short of describing what state is returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with no waste, but its brevity tips into obscurity — the one clause it spends is on the reconnect scenario rather than the core operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, but the description omits the basic identification of the operation, says nothing about the two required identifiers, and leaves the relationship to workflow.run/workspace.status unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for two required parameters (run_id, workspace_id), and the description adds nothing to clarify them. The names are largely self-explanatory, which prevents a 1, but the description does not compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description never states the concrete action or resource — an agent must infer that this reads the state of a workflow run. 'Resume visibility' is evocative but ambiguous, and it does not distinguish this from siblings like workflow.run or workspace.status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It supplies one usage condition — call it after a disconnect to regain visibility — which is a genuine hint about when this tool applies. It names no alternatives and gives no exclusions, so the routing guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workspace.createC
Destructive

Create isolated file workspace. This is not native project.create; optional baseline is copied from configured read roots.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYes
task_idNo
revisionNo
baseline_pathNo
project_targetNo
expected_sha256No

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructiveHint=true, idempotentHint=false, and openWorldHint=false, so safety-critical traits are flagged structurally. The description adds only that an 'optional baseline is copied from configured read roots', but never discloses what the destructive behavior actually destroys or overwrites, nor why re-invocation is non-idempotent. For a destructive, non-idempotent mutation the disclosure is thin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the core action front-loaded and no filler. It is appropriately short, though the second sentence is doing double duty as both disambiguation and behavioral note without fully developing either.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, but the tool is destructive, non-idempotent, takes six largely opaque parameters including nested objects, and the description covers none of that. The one useful detail (baseline copied from configured read roots) is insufficient for an agent to invoke this safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across six parameters, several of which are nested objects (target, project_target) with additionalProperties, plus task_id, revision, baseline_path, and expected_sha256. The description touches only the concept of a baseline, leaving the required 'target' object and the sha256/revision semantics entirely unexplained in both schema and prose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'Create isolated file workspace.' It also explicitly contrasts itself with a similarly named operation ('This is not native project.create'), which prevents a likely confusion. No contrast is drawn against the actual sibling tools (workspace.import, workflow.start), so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only routing guidance is a negative disambiguation against 'project.create', a tool not present in the sibling list. There is no statement of when to choose workspace.create over workspace.import, workspace.status, or workflow.start, and no prerequisites or preconditions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workspace.importB
Destructive

Copy a hash-locked input from configured read roots; destination is workspace-relative and must not exist.

ParametersJSON Schema
NameRequiredDescriptionDefault
destinationYes
source_pathYes
workspace_idYes
expected_sha256Yes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=false; the description adds genuinely new context by stating the destination must not exist and that content is hash-verified. It does not say what happens on a hash mismatch, whether parent directories are created, or what permissions the import requires.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence that front-loads the action, the source constraint, the destination constraint, and the failure condition, with no filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation. For a destructive, non-idempotent four-required-parameter tool, however, the description omits workspace_id semantics and failure behavior (hash mismatch, missing read root), leaving meaningful gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the burden. It usefully explains source provenance (configured read roots), that destination is workspace-relative and must not pre-exist, and that expected_sha256 acts as a hash lock — covering three of four parameters — but workspace_id is left entirely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ("Copy") and resource ("hash-locked input from configured read roots") with a clear destination scope (workspace-relative). It is distinguishable from siblings like workspace.create and workspace.status, though it never names an alternative to sharpen the contrast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states a precondition ("destination ... must not exist") but gives no when-to-use guidance, no exclusions, and no pointer to alternatives such as workspace.create or adapter.invoke. An agent must infer when import is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workspace.statusC
Read-onlyIdempotent

Verify context and original baseline hashes and read workspace identity.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspace_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds that it verifies baseline hashes and reads identity, but doesn't say what happens on a hash mismatch (error vs. report) or whether the workspace must be in a particular state, so the addition is modest.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence with no filler, and the verification aspect is placed first. It is efficient, though brevity here contributes to the ambiguity rather than resolving it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Because an output schema exists, return values need not be described, and the annotations cover safety and idempotency. However, the 'verify' framing implies a pass/fail outcome and possibly failure modes that are never explained, and the single required parameter is undocumented, leaving the definition only minimally sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description says nothing about workspace_id — its format, whether it accepts a name or opaque ID, or whether it must reference an existing workspace. 'Workspace Id' is self-evident in name only, so the description fails to compensate for the documentation gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and description together indicate a workspace status/verification tool, but the wording ('Verify context and original baseline hashes') uses unexplained jargon that leaves the actual operation ambiguous. It does not distinguish itself from siblings such as environment.probe, workspace.import, or workflow.status, which an agent could plausibly reach for instead.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to call this versus environment.probe or workflow.status, nor any prerequisite such as needing a workspace already created/imported. The agent must infer the moment of use entirely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 11 tool updatesv0.3.1
    • First observedadapter.invoke
    • First observedcapabilities.list
    • First observedenvironment.probe
    • First observedevidence.read
    • First observedtarget.resolve
    • First observedworkflow.run
    • First observedworkflow.start
    • First observedworkflow.status
    • First observedworkspace.create
    • First observedworkspace.import
    • First observedworkspace.status

TDQS

B3.1/5.0

Scored across 11 tools

Disambiguation4/5

Tools map to distinct lifecycle phases (probe, capabilities, target, workspace, adapter, evidence, workflow) and descriptions carefully delimit boundaries, e.g. workspace.create vs workspace.import and workflow.start vs workflow.run. Minor potential confusion remains between the create/import and start/run pairs, but the descriptions resolve it.

Naming Consistency5/5

All 11 tools follow a strict namespace.verb pattern (environment.probe, workspace.create, workflow.run, adapter.invoke, etc.). The convention is applied uniformly with no style deviations.

Tool Count5/5

11 tools is well within the ideal range and each earns its place, covering the full lifecycle from environment discovery through workflow execution. No redundant or filler tools are present.

Completeness4/5

The surface covers discovery, target resolution, workspace lifecycle, capability invocation, evidence reading, and workflow orchestration. Minor gaps exist: no workspace teardown/delete, no workflow cancel/abort, and no evidence listing, but these are workaroundable.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    Enables AI agents to discover, inspect, edit, rebuild, and save Schneider Electric RemoteConnect and SCADAPack x70 IEC logic projects, including program sections, hardware, variables, and Modbus configuration.
    63
    1
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables AI to operate STEP 7-Micro/WIN SMART via MCP, supporting offline STL/AWL analysis, project inspection, online PLC monitoring (snap7), and engine-injected operations like compile, download, upload, and symbol management through natural language.
    8
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to connect to Allen-Bradley, Siemens, and CODESYS PLC projects for discovering, asking questions about, analyzing, and proposing code changes, with access to live tag values and version exports under permission-scoped controls.
    -