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- MCP服务器将在 http://localhost:8081
- Redis将在
localhost:6379(Docker网络内部)
环境变量(根据需要覆盖)
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:runAPI概述
服务器公开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)
