Skip to main content

MCP Server for generic API integration with Claude Desktop

Project description

🚀 Aras Innovator Claude Agent

Connect Claude Desktop to Aras Innovator PLM via OAuth 2.0!

This Model Context Protocol (MCP) server enables Claude Desktop to interact with Aras Innovator using modern OAuth 2.0 authentication and OData REST APIs, allowing you to query PLM data, create items, and call methods directly from your AI assistant.

✨ What can you do?

  • 🔐 Secure OAuth 2.0 authentication with Aras Innovator 14+
  • 📊 Query PLM data using OData REST endpoints
  • ✍️ Create new items (Parts, Documents, etc.) directly from Claude
  • 🔧 Call Aras server methods and custom endpoints
  • 📋 Access lists and configuration data
  • 🛡️ Enterprise-grade security with bearer token authentication

📋 Prerequisites

🐍 Python 3.8+

  • Windows: Download from python.org
  • macOS/Linux: brew install python or sudo apt install python3 python3-pip

🤖 Claude Desktop (free!)

  • Download from claude.ai - no subscription required!

🏢 Aras Innovator 14+ with OAuth 2.0

  • Aras Innovator server with OAuth 2.0 endpoints enabled
  • Valid Aras user credentials with API permissions
  • Database access permissions

🎯 Quick start

1️⃣ Clone & install

git clone https://github.com/DaanTheoden/aras-claude-agent.git
cd aras-claude-agent
pip install -r requirements.txt

2️⃣ Configure your Aras connection

Create a .env file in the project root:

# Aras Innovator OAuth 2.0 Configuration
API_URL=https://your-aras-server.com/YourDatabase
API_USERNAME=your-aras-username
API_PASSWORD=your-aras-password
ARAS_DATABASE=YourDatabase

# Optional Configuration
API_TIMEOUT=30
API_RETRY_COUNT=3
API_RETRY_DELAY=1
LOG_LEVEL=INFO

💡 Copy from env_example.txt and update with your Aras credentials

3️⃣ Add to Claude Desktop

Edit your Claude Desktop config file:

📁 Windows: %APPDATA%\Claude\claude_desktop_config.json
📁 macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "api-server": {
      "command": "py",
      "args": ["C:/path/to/your/aras-claude-agent/main.py"]
    }
  }
}

💡 Replace the path with your actual installation directory!

4️⃣ Test your setup!

Verify installation:

python main.py

The server should start without any JSON parsing errors.

Test in Claude Desktop: Restart Claude Desktop and try:

  • "Test my API connection"
  • "Get all Parts from the database"
  • "Show me the available Document types"

🛠️ Available tools

Tool Description What You Can Ask Example Endpoint
test_api_connection Test OAuth 2.0 authentication "Test my API connection" N/A
api_get_items Query Aras OData "Get all Parts" Part, Document
api_create_item Create new Aras items "Create a new Part" Part, Document
api_call_method Call Aras server methods "Call method GetItemsInBOM" Method names
api_get_list Get Aras list values "Show Part categories" List IDs

🔐 OAuth 2.0 Authentication

This agent uses OAuth 2.0 Resource Owner Password Credentials Grant for secure authentication with Aras Innovator 14+. The authentication flow:

  1. Token Request: https://your-server/oauthserver/connect/token
  2. Scope: openid Innovator offline_access
  3. Client ID: IOMApp (default Aras client)
  4. Grant Type: password
  5. Required: username, password, database

💬 Example conversations

You: "Test my API connection"
Claude: ✅ Successfully authenticated with API!
Bearer token obtained and ready for API calls.
Server URL: https://your-server.com/YourDatabase

You: "Get all Parts where item_number starts with 'P-'"
Claude: Retrieved 25 Parts matching your criteria...

You: "Create a new Document with name 'User Manual v2'"
Claude: Successfully created Document with ID A1B2C3D4...

🔧 Recent Fixes & Updates

✅ v1.1.0 - OAuth 2.0 & JSON Parsing Fixes

  • Fixed: "Unexpected token 'A', 'API MCP Se'... is not valid JSON" error
  • Added: Proper OAuth 2.0 authentication with requests-oauthlib
  • Added: Database parameter requirement for Aras authentication
  • Fixed: All print statements redirected to stderr to prevent stdout contamination
  • Updated: OData endpoint support (/Server/Odata)
  • Added: Proper HTTP headers for Aras REST API

🛠️ Troubleshooting

🔗 OAuth authentication failing?

  • Verify your Aras server supports OAuth 2.0 (Aras 14+)
  • Check credentials and database name in .env
  • Ensure user has API access permissions

🔐 "Missing database parameter" error?

  • Add ARAS_DATABASE=YourDatabaseName to your .env file

🤖 Claude not finding tools?

  • Restart Claude Desktop after config changes
  • Check file paths in claude_desktop_config.json

🐍 JSON parsing errors?

  • ✅ Fixed in v1.1.0! Update to latest version

🏗️ Architecture

Claude Desktop
    ↓ JSON-RPC
MCP Server (stdio)
    ↓ OAuth 2.0
Aras Innovator
    ↓ OData REST API
PLM Database

🤝 Contributing

Found a bug or want to add features? We welcome contributions! Please check our issues or submit a pull request.

📚 Learn More

📄 License

MIT License - see LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_daantheoden_api_mcp_server-1.0.0.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file iflow_mcp_daantheoden_api_mcp_server-1.0.0.tar.gz.

File metadata

  • Download URL: iflow_mcp_daantheoden_api_mcp_server-1.0.0.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_daantheoden_api_mcp_server-1.0.0.tar.gz
Algorithm Hash digest
SHA256 d01e2a5777e2b52d0fb5f397d0451d2e35c3f8eb9e680271fae11991c1cdb706
MD5 a0be25295ead749183bb87267939183f
BLAKE2b-256 d39ee91c1922dda7d8ca75a44394dc488e3ae497b5c942ea44f474abaaa77fc1

See more details on using hashes here.

File details

Details for the file iflow_mcp_daantheoden_api_mcp_server-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_daantheoden_api_mcp_server-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_daantheoden_api_mcp_server-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e2005c273e04ec65bd1e8f6e1c7abb5f4d3cb254500583dada215f3500a75813
MD5 dccef5824f3e555a2f61b4652b43bdee
BLAKE2b-256 4baddf6891a4c83f0b167837f2e2d89b6a7694efee8938a6a5ee2d8493df2434

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page