Get the FREE Ultimate OpenClaw Setup Guide →

thingworx

A MCP server for PTC ThingWorx. Using the REST-API via AppKey authentication.

Installation
Run this command in your terminal to add the MCP server to Claude Code.
Run in terminal:
Command
claude mcp add --transport stdio doubleslashde-thingworx-mcp-server docker run -i thingworx-mcp-server:latest \
  --env REDIS_HOST="redis (default in docker-compose)" \
  --env REDIS_PORT="6379" \
  --env SERVER_PORT="8081 (default)" \
  --env CACHE_ENABLED="true or false (default: true)" \
  --env MCP_SERVER_SSE="/sse (default)" \
  --env REDIS_PASSWORD="" \
  --env MCP_SERVER_TYPE="SYNC (default)" \
  --env THINGWORX_APP_KEY="your-thingworx-app-key" \
  --env MCP_SERVER_ENABLED="true (default)" \
  --env THINGWORX_BASE_URL="http://localhost (default) or your ThingWorx host" \
  --env MCP_SERVER_ENDPOINT="/mcp (default)" \
  --env MCP_SERVER_PROTOCOL="STREAMABLE (default)" \
  --env MCP_SERVER_SSE_MESSAGE_ENDPOINT="/mcp/message (default)"

How to use

ThingWorx MCP Server exposes ThingWorx resources (Things, Properties, Services, and Collections) through MCP-compatible endpoints and AI tooling. It exposes a REST API for interacting with ThingWorx entities and wraps these calls behind AI-friendly tools that can be invoked by an MCP-enabled agent. Caching is Redis-backed and configurable at runtime, helping to speed up repeated queries and avoid unnecessary calls to ThingWorx. The server is designed to run locally via Docker Compose or locally with Java (Spring Boot) for development and testing. You can customize endpoints and enable/disable features via environment variables.

You can access the MCP endpoints by default at /mcp (configurable via MCP_SERVER_ENDPOINT) and you can also use the provided SSE/stream endpoints to receive live updates. The REST API covers listing Things, fetching their metadata, reading and invoking Services, and listing built-in ThingWorx collections. The server also exposes AI tooling endpoints that can be discovered and used by an MCP-enabled agent to reason about and perform actions in ThingWorx.

How to install

Prerequisites:

  • Docker and Docker Compose for quick setup
  • Optional: Java 21+ and Maven if you want to run the Spring Boot app locally without Docker

Install and run with Docker Compose (recommended):

  1. Create or edit docker-compose.yaml to configure the environment variables (ThingWorx URL, app key, Redis connection details, etc.).
  2. Start the services:
docker-compose up --build
  1. Access the MCP server at http://localhost:8081 (default). Redis will be accessible on the internal Docker network at port 6379.

If you prefer running locally without Docker:

  1. Ensure Java 21+ is installed and Maven is available.
  2. Set environment variables to support Redis and ThingWorx access (e.g., THINGWORX_BASE_URL, THINGWORX_APP_KEY, REDIS_HOST, REDIS_PORT).
  3. Run the Spring Boot application:
mvn spring-boot:run
  1. The server will start on port 8081 by default unless overridden via SERVER_PORT.

Additional notes

Tips and common issues:

  • Ensure ThingWorx BASE URL is reachable from the container or host where the server runs.
  • If Redis is not reachable, double-check REDIS_HOST, REDIS_PORT, and REDIS_PASSWORD (empty by default).
  • Set CACHE_ENABLED=false to disable caching during debugging or dev.
  • MCP endpoints are configurable through environment variables prefixed with MCP_SERVER_ (endpoint paths, enablement, protocol, etc.).
  • The project uses Spring Boot and Redis caching via @Cacheable; ensure Redis is properly configured when running in production-like environments.
  • If you run via Docker Compose, you can adjust docker-compose.yaml to wire in your own ThingWorx instance and Redis settings.

Related MCP Servers

Sponsor this space

Reach thousands of developers