SAP Digital Manufacturing (DMC) MCP Server
# SAP Digital Manufacturing (DMC) MCP Server
A Multi-Protocol Model Context Protocol (MCP) server for SAP Digital Manufacturing (DMC) to enable AI-powered manufacturing operations analysis, automated report generation, and direct delivery to MS Teams via a webhook.
## Features
- **Multi-Protocol Support**: Implements REST, OData V2, and OData V4 client layers.
- **Dynamic Extractor Column Discovery**: Auto-detects schemas for all 53 OData V4 extractor entities.
- **10 Specialized MCP Tools**: Registered query tools for orders, labor_schedules, sfcs, workcenters, resources, materials, boms, downtimes, order_schedules, and production_events (with pagination).
- **Automated MS Teams Reports**: Triggers high-quality, print-ready HTML/Markdown report generation and pushes payloads directly to a Microsoft Teams webhook via Power Automate.
- **Auto Timezone Conversion**: Converts all UTC timestamps to India Standard Time (IST, UTC+5:30) for easy operations tracking.
## Getting Started
### Prerequisites
- [Node.js](https://nodejs.org/) (v18 or higher)
- [Claude Desktop](https://claude.ai/download) (or another MCP-compliant client)
### Setup & Installation
1. **Clone this repository** to your local machine.
2. **Configure Environment Variables**:
- Copy `.env.example` to a new file named `.env`.
- Update the configuration values with your SAP BTP credentials:
```env
DMC_API_ENDPOINT=https://<your-tenant>.dmc.cloud.sap
DMC_TOKEN_URL=https://<your-auth-url>/oauth/token
DMC_CLIENT_ID=<your-client-id>
DMC_CLIENT_SECRET=<your-client-secret>
DMC_PLANT=VIJ_01
```
3. **Register with Claude Desktop**:
Run the automatic installer script from the root folder:
```bash
node install.js
```
This will install dependencies, compile the TypeScript code, and register the server config inside Claude Desktop's configuration file.
4. **Restart Claude Desktop**:
- Completely quit Claude Desktop from the system tray (right-click the Claude icon -> Quit).
- Reopen Claude Desktop.
- The MCP tools are now available for use!
TDQS
Scored across 19 tools
Most tools target distinct entities (boms, downtimes, materials, etc.) but there is potential confusion between 'get_production_orders', 'get_order_details', and 'query_dmc_orders' which all relate to orders but with different scopes. Similarly, 'get_resources' and 'query_dmc_resources' overlap partially. Overall, descriptions help disambiguate.
Tool names follow a clear pattern: 'get_' for direct fetches (e.g., get_order_details) and 'query_dmc_' for table queries (e.g., query_dmc_materials). The reporting tool 'send_report_to_teams' is distinct but consistent. All use snake_case.
With 19 tools, the set covers a broad manufacturing domain (orders, resources, BOMs, labor, SFCs, etc.) without being excessive. Each tool serves a specific purpose, and the count feels well-scoped for a comprehensive read-only server.
The tool surface provides thorough read access to manufacturing data (orders, resources, BOMs, downtime, labor, SFCs, workcenters) and includes reporting. The only notable gap is the lack of write/update/delete operations, but that aligns with the server's likely purpose as a query and reporting assistant.