ThingWorx MCP服务器

一个基于Spring Boot的服务器,将ThingWorx暴露为一组AI友好的工具和API,支持Redis缓存和灵活的云或本地部署配置。

  • by doubleSlashde
  • Java
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 doubleSlashde/thingworx-mcp-server

使用说明

ThingWorx MCP服务器

基于LLM的ThingWorx代理:架构和MCP实现

基于Spring Boot的服务器,将ThingWorx作为一组AI友好的工具和API公开,具有Redis支持的缓存和灵活的云或本地部署配置。

免责声明:此存储库是一个实验项目,仅用于评估和测试目的。它不用于生产用途,也没有任何保证或担保。

特性

  • REST API 用于与ThingWorx对象、属性、服务和集合进行交互
  • AI工具:与Spring AI MCP一起使用的注释方法
  • 缓存:支持Redis,可在运行时切换启用/禁用
  • 可配置的:所有重要设置都可以通过环境变量设置
  • Docker就绪:包括Dockerfile和docker compose,便于本地或云部署

快速开始

1.先决条件

  • Docker(用于本地开发/测试)
  • 访问ThingWorx实例(本地或远程)

2.使用Docker Compose运行(推荐)

这将启动连接在一起的Redis和MCP服务器。在docker-compose.yaml中调整env变量,以针对您的环境进行配置(请参阅下面的解释)。然后跑

docker-compose up --build

环境变量(根据需要覆盖)

  • THINGWORX_BASE_URL (默认值: http://localhost)
  • THINGWORX_APP_KEY (您的ThingWorx应用程序密钥)
  • CACHE_ENABLED (true 或 false,默认值: true)
  • SERVER_PORT (默认值: 8081)
  • REDIS_HOST, REDIS_PORT, REDIS_PASSWORD (默认值: redis, 6379,空)
  • MCP_SERVER_* (高级MCP端点见下文)

3.本地运行(无需Docker-需要Java 21+、Apache Maven)

  • 自己启动Redis(例如。 docker run -p 6379:6379 redis:7-alpine)
  • 根据需要设置环境变量
  • 运行Spring Boot应用程序:
mvn spring-boot:run

API概述

服务器公开REST端点(和AI工具端点)用于:

  • 事物:列出,获取元数据,检查是否存在
  • 属性:列出属性,获取属性值
  • 服务:列出服务、获取参数、调用服务
  • 集合:列出内置ThingWorx集合(事物、用户等)

所有端点在配置的MCP端点下都可用(请参阅 MCP_SERVER_ENDPOINT,默认值 /mcp).


缓存

  • 默认情况下,所有工具方法都使用Redis进行缓存(请参阅 @Cacheable 代码中的注释)。
  • 要禁用缓存(用于调试或开发),请设置 CACHE_ENABLED=false.
  • 缓存TTL和Redis连接可以通过env变量进行配置。

高级:自定义MCP端点

您可以通过以下环境变量更改MCP端点:

  • MCP_SERVER_ENABLED (默认值: true)
  • MCP_SERVER_TYPE (默认值: SYNC)
  • MCP_SERVER_PROTOCOL (默认值: STREAMABLE)
  • MCP_SERVER_SSE (默认值: /sse)
  • MCP_SERVER_ENDPOINT (默认值: /mcp)
  • MCP_SERVER_SSE_MESSAGE_ENDPOINT (默认值: /mcp/message)