Skip to content

AI diagnostic gateway for Teamcenter

Every AI gateway sells reach. This one sells refusal.

PLMTrace connects the AI client your company already chose to a Teamcenter environment through named, bounded diagnostics.

OrganizationPLM OpsEnvironmentNon-productionSession active
Environments in the example
HostConnectionCoverageLast contact
tc-prd-app01OnlinePartial2 min ago
tc-prd-app02OnlineComplete1 min ago
tc-prd-db01StaleUnknown41 min ago
16:03:52query_teamcenter_logsresult truncated at the output bound
16:03:10inspect_windows_servicescompleted · 6 KB
16:02:41diagnose_awc_unavailablecompleted · 41 KB (3 redactions)
16:05:44search_log_eventscompleted · 18 KB (1 redactions)
Static example of the portal state. Illustrative host names, not a customer environment.

On the record

An Edge Agent runs next to the PLM stack, on Windows or Linux, and answers with redacted evidence. The boundary is not a sentence in a prompt: it is the catalog.

Read-only, outbound-only, no shell, no free SQL.

  • 25 registered MCP tools · 22 PLM, 2 host/database, 1 private learning
  • 0 occurrences of process-execution tokens in the Edge Agent's production code
  • 7 named SQL packs · 0 arbitrary query parameters
  • MCP integration prepared for Codex, Claude Desktop and OpenCode

Current stage

Technical prototype in private pilot. Any Teamcenter release, on Windows or Linux, with SQL Server or Oracle. Validated first in a non-production environment.

The boundary is the product

A general-purpose agent with a shell can reach anything, so every promise ends up living in the prompt. PLMTrace removes the executor instead. What the catalog cannot do is designed with security boundaries. It is not requested by instruction.

DENY · SHELL

No shell, no PowerShell, no batch

The Agent has no process executor: these tokens have zero occurrences in its production code. Generated artifacts stay inert text, and the test suite fails if artifact content suggests process execution.

Absent from the Edge Agent's production code

  • os/exec
  • exec.Command
  • cmd.exe
  • Start-Process
  • System.Diagnostics.Process

DENY · FREE SQL

No free SQL, seven named packs

The database tool takes an engine and a pack name from a closed list, plus bounded row count and timeout. There is no parameter that carries SQL, so a prompt cannot supply a statement. The pack set is the same for SQL Server and Oracle; only the queries behind each pack differ.

Accepted pack values

  • inventory
  • capacity
  • connectivity
  • sessions_and_blocking
  • wait_indicators
  • query_indicators
  • configuration_checks

Parameters the schema does not define

  • query
  • statement
  • sql
  • batch

DENY · WRITES

No writes to Teamcenter or the database

Every operation in the catalog reads. Nothing restarts a service, edits configuration, applies a patch or runs an upgrade. Diagnosis and change stay separated, and the change stays with the administrator.

Tool names that do not exist in the registered catalog

  • service_restart
  • apply_upgrade
  • write_configuration
  • deploy_package
  • execute_script

What crosses the boundary

Four nodes, two directions. Outward goes one signed and bounded task; back comes evidence that was already sanitized inside the environment.

→ one signed task← redacted resultAI clientMCPControl planeauthorizes · signsEdge agentoutbound onlyTeamcenterauthorized roots

What travels inward

An MCP request becomes a capability signed for one agent, one environment, one tool, one parameter hash and one deadline. The Agent polls outward and leases the task; the environment opens no inbound port for PLMTrace.

What comes back

Evidence, redacted at the source and bounded in size before it leaves. The diagnostic result body is transient in the Control Plane: the central database does not persist the diagnostic result payload.

What never crosses

Agent credentials and the SQL Server secret stay on the host. No inbound connection opens. No shell, no free SQL, no write operation and no generated script belongs to the contract.

Ask

The specialist describes the problem in the AI client already in use. The client picks the tool and fills parameters from its schema.

Authorize

Organization, environment, role, tool, parameter hash, output limit and deadline are bound into a signed capability.

Collect

The Agent runs the tool next to Teamcenter: authorized roots, path containment, depth and size limits, binary rejection and local redaction.

Interpret

The client explains the evidence and names the next safe read-only checks. The administrator confirms the hypothesis and owns the decision.

MCP integration prepared for Codex, Claude Desktop and OpenCode. The client does not have to be ours. It is the one the company already chose.

Against the alternatives you already run

These are the real alternatives, not a strawman. Each one leaves a gap that the boundary closes.

Comparison with current alternatives
AlternativeLimitationPLMTrace
Manual collection by an administratorSlow, variable and hard to reproduce; it depends on who is on shift.Packs and schemas standardize the investigation, and the same request returns the same shape of evidence.
VPN, RDP or broad remote access for supportExpands the access surface and depends on human privilege.Edge Agent on Windows or Linux initiating outbound connections, with operations delimited by the catalog.
Loose scriptsHard to govern, version and audit.A versioned catalog with execution restricted to the installed collectors.
AI with shell accessThe prompt becomes part of the security boundary.Structural absence of a generic executor.
Manual upload of logs into a chatExposes content and loses operational context.Redaction and bounding in the Agent before the evidence is delivered.
Generic observability toolsThey see infrastructure, not necessarily the PLM model.Diagnostics specific to Teamcenter, BMIDE, upgrade and customization source.

Read the boundary in the code

For the security reader: each statement below names the file that implements it. PLMTrace is designed with security boundaries; independent review and external testing are pilot gates, not finished facts.

  1. Agent authentication with replay rejection

    The Agent presents a DPoP proof bound to its token, method and path. A replayed proof is rejected in memory and again in the database, so a captured request cannot be reused inside its window.

    apps/control-plane/internal/auth/agent.go

  2. One signed capability per call

    A single signature covers agent, environment, tool, parameter hash, validity window, duration and output bound. The Agent verifies all of it before executing, and a mismatch stops the task.

    packages/agent-runtime/capability/capability.go

  3. Authorized roots with path containment

    Every read resolves the real path, symlinks included, and must stay inside the authorized root. A candidate that escapes returns a permission error instead of content.

    apps/edge-agent/internal/fs/safe.go

  4. Depth, size and binary limits

    Directory walks cap depth, result count and file size, skip symlinks and reject binary content, so a collection cannot become an unbounded read of the host.

    apps/edge-agent/internal/fs/walker.go

  5. Secret redaction at the source

    Password, connection string, API key, bearer token, private key, certificate, FMS signed path and private IPv4 patterns are replaced inside the Agent, before the evidence travels.

    apps/edge-agent/internal/redact/engine.go

  6. Transient result payload

    The diagnostic result body is relayed in memory with a TTL, byte cap and item cap, and is consumed once. The migration drops the result_body column: the central database does not persist the diagnostic result payload.

    apps/control-plane/internal/store/store.godeployments/railway/migrations/000006_transient_results.up.sql

  7. Local credential protection

    The Agent identity never travels as a tool parameter. On Windows it is protected with DPAPI LocalMachine scope; on Linux it is encrypted with a machine-bound key. The database secret is resolved on the host either way.

    apps/edge-agent/internal/credentials/store_windows.go

  8. Artifacts are text, never execution

    Generated artifacts are limited to text extensions, written without execute permission, hashed into a manifest and never launched by the Agent.

    apps/edge-agent/internal/artifact/manager.go

  9. Governable metadata

    Tasks, policy decisions and events land in audit tables: actor, organization, environment, tool, outcome and timestamp. The product registers audit metadata; it does not claim regulatory immutability.

    deployments/railway/migrations/000001_initial.up.sql

Bring a real diagnostic scenario

The pilot sells joint learning, not a self-service subscription. We are selecting design partners to validate read-only diagnostics in a non-production environment, with the administrator in the loop.

  • 01Teamcenter on Windows or Linux, with SQL Server or Oracle.
  • 02A non-production environment that represents production.
  • 03A Teamcenter administrator available to validate the findings.

What to send

Send the scenario, not an email address: the symptom, the component and what you already ruled out. AWC unavailable, an upgrade baseline or a BMIDE model review are the strongest starting points.

Request a private pilot

Tell us what you run and which incident costs you the most time. No logs, no hostnames and no credentials, please. Those belong in the authorized pilot, not in a public form.

Components in scope

We store your contact details and the answers above to evaluate the pilot, and nothing else. No diagnostic content is collected here. You can ask us to delete your request at any time.

Technical prototype. Not certified by Siemens. Teamcenter is a trademark of Siemens.

No production use in the first cycle. No automatic remediation. Findings are hypotheses for a human to confirm.

Join the private pilot