PTC-MCP Integration Server
# PTC-MCP Integration Server
Model Context Protocol (MCP) server for integrating PTC Windchill and Creo Parametric with LLM-based clients.
## Overview
The PTC-MCP Integration Server provides a standardized gateway between MCP clients (ChatGPT Desktop, Claude Desktop, Agents SDK) and PTC's enterprise PLM and CAD systems. It enables natural language interaction with Windchill and Creo through structured, auditable workflows.
## Features
- **MCP Protocol Support:** Full implementation of Model Context Protocol
- **Windchill Integration:** Read operations for parts, BOMs, and documents
- **Creo Automation:** Model operations, exports, and parameter extraction
- **Security:** Enterprise-grade authentication, authorization, and audit logging
- **Configuration:** Centralized configuration management
## Requirements
- Node.js >= 18.0.0
- TypeScript >= 5.3.0
- Access to PTC Windchill (REST/OData API)
- Creo Parametric with J-Link/OTK (for Creo automation)
## Installation
```bash
# Install dependencies
npm install
# Build the project
npm run build
# Run in development mode
npm run dev
# Run production build
npm start
```
## Configuration
Copy `.env.example` to `.env` and configure:
```env
# Windchill Configuration
WINDCHILL_BASE_URL=https://your-windchill-server.com
WINDCHILL_USERNAME=service-account
WINDCHILL_PASSWORD=password
# Creo Configuration
CREO_JLINK_PATH=C:/Program Files/PTC/Creo X.X/Common Files/x86e_win64/obj/jlink
CREO_EXPORT_PATH=./exports
# MCP Server Configuration
MCP_SERVER_NAME=ptc-mcp-server
MCP_SERVER_VERSION=1.0.0
LOG_LEVEL=info
```
## Usage
### As MCP Server (stdio)
The server runs as an MCP server accessible via stdio:
```bash
node dist/index.js
```
### MCP Client Configuration
Configure in your MCP client (e.g., Claude Desktop):
```json
{
"mcpServers": {
"ptc-mcp": {
"command": "node",
"args": ["/path/to/ptc-mcp-integration-server/dist/index.js"]
}
}
}
```
## Available Tools
### Windchill Tools
- `windchill_search_part` - Search for parts
- `windchill_get_part` - Get part details
- `windchill_get_bom` - Get bill of materials
- `windchill_get_docs` - Get associated documents
### Creo Tools
- `creo_open_model` - Open Creo model
- `creo_export_step` - Export as STEP
- `creo_export_pdf` - Export drawing as PDF
- `creo_get_parameters` - Extract parameters
## Development
```bash
# Type checking
npm run type-check
# Linting
npm run lint
# Testing
npm test
# Watch mode
npm run dev
```
## Project Structure
```
ptc-mcp-server/
├── src/
│ ├── mcp/ # MCP protocol implementation
│ ├── windchill/ # Windchill connector
│ ├── creo/ # Creo automation service
│ ├── security/ # Security layer
│ └── config/ # Configuration management
├── tests/ # Test files
├── config/ # Configuration files
└── docs/ # Documentation
```
## Documentation
- [PRD](./docs/prd-ptc-mcp-integration-server.md)
- [Architecture](./docs/architecture-ptc-mcp-integration-server.md)
- [Epics & Stories](./docs/epics.md)
## License
MIT
## Support
For issues and questions, please refer to the project documentation or create an issue.
TDQS
Scored across 11 tools
Most tools are clearly differentiated by prefix (creo_ vs windchill_), but 'export_part_as_step' and 'creo_export_step' could cause confusion for STEP export, and 'analyze_dependencies' lacks a clear domain indicator.
Windchill and Creo tools follow consistent prefix_verb_noun patterns, but two tools ('analyze_dependencies', 'export_part_as_step') lack prefixes, and 'find_part_and_open_in_creo' is verbose and breaks the pattern.
With 11 tools covering search, retrieval, export, and CAD interactions, the count is well-scoped for a Windchill-Creo integration server without being excessive or sparse.
The toolset covers basic retrieval and export workflows but lacks creation, update, or lifecycle operations (e.g., checkout/checkin), leaving notable gaps for full lifecycle management.