thingworx-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| THINGWORX_APP_KEY | Yes | Your ThingWorx application key generated in Composer under Security > Application Keys | |
| THINGWORX_BASE_URL | Yes | The base URL of your ThingWorx instance (e.g., https://thingworx.your-company.com) | |
| THINGWORX_VERIFY_SSL | No | Set to 'false' for self-signed dev instances (default true) | true |
| THINGWORX_ALLOW_WRITE | No | Set to 'true' to enable the write_property tool (default false) | false |
| THINGWORX_ALLOW_INVOKE | No | Set to 'true' to enable the invoke_service tool (default false) | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_thingsA | List all Things registered in the ThingWorx model. Returns Thing names, descriptions, and parent ThingTemplate. The standard read path for an agent that needs to discover the industrial asset inventory. |
| get_thingA | Get metadata for a specific Thing by name. Returns the Thing's properties, services, events, and implemented ThingShapes. Used to discover the surface area of a Thing before reading or writing it. |
| read_propertyA | Read the current value of a single Property on a Thing. Returns the property value plus its data type. The standard read path for an agent that needs the live state of an industrial asset. |
| write_propertyA | Write a new value to a Property on a Thing. Gated by THINGWORX_ALLOW_WRITE=true because property writes can change the state of real industrial equipment (setpoints, modes, configuration). The MCP refuses to write unless the operator has explicitly authorized it. |
| invoke_serviceA | Invoke a named Service on a Thing. Gated by THINGWORX_ALLOW_INVOKE=true (separate from write) because services execute named actions that can include PLC commands, scripted workflows, and downstream system calls. The MCP refuses to invoke unless the operator has explicitly authorized it. |
| list_thing_templatesA | List all ThingTemplates available in the ThingWorx model. ThingTemplates are the type definitions Things instantiate from. Used by agents to understand the schema available before creating or inspecting Things. |
| get_thing_templateA | Get the full definition of a ThingTemplate by name, including property + service + event signatures, parent template, and implemented ThingShapes. |
| search_thingsA | Search the ThingWorx model by free-text expression matched against Thing names + descriptions. Returns up to max_items results. Used when the agent does not know the exact Thing name (e.g. 'find all conveyor things in Line 4'). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each tool targets a distinct resource and action: property, service, thing, template, search. No overlap between read_property/write_property, list_things/search_things, or get_thing/get_thing_template.
All tools follow a clear verb_noun pattern in snake_case (e.g., list_things, read_property, invoke_service). No mixed conventions or vague verbs.
8 tools is well-scoped for an industrial MCP server covering asset discovery, state reading, property writing, and service invocation. Each tool has clear purpose.
Core read/write and discovery are covered, but missing create/delete for Things and ThingTemplates. Invoke/service is present but limited. Gaps in lifecycle management.