thingworx
A MCP server for PTC ThingWorx. Using the REST-API via AppKey authentication.
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):
- Create or edit docker-compose.yaml to configure the environment variables (ThingWorx URL, app key, Redis connection details, etc.).
- Start the services:
docker-compose up --build
- 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:
- Ensure Java 21+ is installed and Maven is available.
- Set environment variables to support Redis and ThingWorx access (e.g., THINGWORX_BASE_URL, THINGWORX_APP_KEY, REDIS_HOST, REDIS_PORT).
- Run the Spring Boot application:
mvn spring-boot:run
- 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
mcp-for-beginners
This open-source curriculum introduces the fundamentals of Model Context Protocol (MCP) through real-world, cross-language examples in .NET, Java, TypeScript, JavaScript, Rust and Python. Designed for developers, it focuses on practical techniques for building modular, scalable, and secure AI workflows from session setup to service orchestration.
sonarqube
SonarQube MCP Server
wanaku
Wanaku MCP Router
WigAI
Bitwig Controller Extension that provides an MCP Server for AI Agent control
SchemaCrawler-AI
Free database schema discovery and comprehension tool
vertx
A Vert.x MCP Server built on top of MCP Java SDK