Work Smarter & Safer with AI: Connecting Aras Innovator and Claude MCP
Have you ever thought, "It would be great if AI could look up this data in Aras Innovator," or "I wish there was an easier way to generate and load realistic test data for my project"? You’re in luck! We’re going to walk through how you can use a Model Context Protocol (MCP) server with Aras Innovator to streamline everyday tasks for developers and users. By the end of this blog, you’ll be able to give your AI assistant authenticated access to query your PLM data, inspect your schema, and create items through natural language commands. A Community Collaboration This blog post was inspired by community member Daan Theoden and his work integrating Claude Desktop and Aras Innovator. You can check out his videos about AI on LinkedIn and see the source code of his original project on GitHub. The project was later forked and extended by Aras Labs to support both Configurable Web Services (CWS) and Aras InnovatorEdge. This collaboration is an excellent example of how the Aras community drives innovation, and we appreciate Daan laying the groundwork for this tool. What is the MCP? The MCP is an open standard that defines how AI models interact with external data and systems. Without MCP, integrations need to be hard-coded for each individual AI application. With MCP, you can build a standardized server once. This server advertises a set of tools – such as "Get Item" or "Create Item" – and any MCP-compliant client can discover and utilize them. This provides a secure, predictable, and auditable way to expose your PLM environment to an AI assistant without exposing direct database access or unstructured APIs. What this project does This is a lightweight Python server that acts as a bridge to your Aras instance – whether you are using Configurable Web Services (CWS) or the new Aras InnovatorEdge. It handles the necessary plumbing of authentication, URL normalization, and error handling so the AI model can focus on executing your intent. Out of the box, it enables your assistant to: Explore your schema: Fetches OData $metadata to dynamically learn your specific ItemTypes and property definitions. Auto-resolve names: Uses fuzzy matching to resolve terms like "Problem Report" or "Doc" to their actual ItemTypes (PR or Document). Generate data: Automates the creation of complex test data sets. Call methods: Triggers server-side logic by calling Aras methods directly. Quick Start: Connecting to the Aras Innovator REST API This tool is designed to work natively with Aras InnovatorEdge, but it includes full backward compatibility for the standard Aras Innovator REST API via CWS. If you choose to use CWS, please see our previous blog on how to set it up! Here is how to get it running 1. Clone the repository Clone the repo and install the dependencies. We recommend using a virtual environment. git clone https://github.com/ArasLabs/aras-claude-agent.git cd aras-claude-agent pip install -r requirements.txt 2. Configure the environment Create a .env file in the root directory. This is where you will define how the tool connects to Aras. Option A: Connecting via Aras InnovatorEdge (Beta) Aras InnovatorEdge is currently in beta. If you are an early adopter with access to an Edge environment, this is the preferred setup. # --- Backend Setup --- # Use 'EDGE' for InnovatorEdge instances API_BACKEND=EDGE # --- Auth Credentials --- AUTH_MODE=API_KEY EDGE_API_KEY=your_edge_api_key_here # Your Innovator URL API_URL=https://myserver.com/InnovatorServer # --- Optional Configuration --- # Map friendly names to ItemTypes for better recognition ITEMTYPE_ALIASES=Problem:PR;Doc:Document;Part:Part Option B: Connecting via Configurable Web Services If you do not have access to the Edge Beta yet, you can use standard Configurable Web Services (CWS). Note: Because this tool uses an "Edge-first" design, it uses the same authentication pattern for both backends. You will see InnovatorEdge terminology in the configuration variables (specifically EDGE_API_KEY). Don't worry, this works perfectly with CWS. # --- Backend Setup --- # Use 'ARAS' for standard CWS instances API_BACKEND=ARAS # Your Innovator URL (The server handles the /Server/Odata path automatically) API_URL=https://myserver.com/InnovatorServer # --- Auth Credentials --- AUTH_MODE=API_KEY # NOTE: Even though we are connecting to CWS, we use the EDGE_API_KEY # variable name to maintain compatibility with the tool's internal auth logic. EDGE_API_KEY=your_cws_api_key_here # --- Optional Configuration --- ITEMTYPE_ALIASES=Problem:PR;Doc:Document;Part:Part 3. Verify the installation You generally do not need to run the server manually. Claude Desktop will handle that for you. However, it is good practice to run it once just to ensure your environment is set up correctly and there are no missing dependencies. python -m src.server If the process starts and waits silently (or "hangs"), it is working correctly. The server is simply listening for commands over standard input. You can stop it with Ctrl+C and move to the next step. 4. Add to Claude Desktop Open your Claude Desktop configuration file. Mac: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json Add the following entry (ensure you update the path to your cloned repository): { "mcpServers": { "aras-api": { "command": "python", "args": ["-m", "src.server"], "cwd": "/absolute/path/to/aras-claude-agent" } } } Once you save this file and restart Claude Desktop, it will automatically launch the Python server in the background. In Practice: Generating Test Data One of the most powerful applications of this tool is accelerating test preparation. Because the AI can read the OData metadata, it understands your specific data model without requiring detailed instructions. For example, you can use a prompt like this: "I need to test the Part Form with a new Robotic Arm assembly. Create 10 Parts for me. Number them ROBOT-001 through ROBOT-010. For the name, generate realistic component names." Behind the scenes, the Agent will: Call api_resolve_itemtype to confirm "Part" matches the correct ItemType. Call api_get_metadata to verify the property names for item_number and classification. Execute a loop of api_create_item calls to generate the records, using its own creativity to fill in the names. This automation dramatically reduces the time spent on repetitive data setup. Want to learn more about InnovatorEdge? We're preparing a series of technical blogs about what's new and what you can do with it, but in the meantime, you can check out this overview from product manager Benjamin Chaillon, or this article on AI data governance with Aras InnovatorEdge. Join the Conversation This project is just the beginning of what’s possible when we combine the structure of PLM with the flexibility of Large Language Models. By bridging Aras Innovator with tools like Claude, we can reduce the friction of context switching and make data creation and inspection significantly faster. A special thanks again to Daan Theoden for pioneering this integration and sharing it with the community. Open collaboration like this is what makes the Aras ecosystem so powerful, and we are thrilled to support and extend his original vision. Now, we want to hear from you. If you could automate one mundane PLM task with an AI assistant today, what would it be? Let us know in the comments below, or head over to the GitHub repository to star the project, file an issue, or contribute your own improvements!907Views1like0Comments