Generic API MCP Server

Un servidor genérico para interactuar con cualquier API REST, permitiéndote consultar datos, crear elementos y llamar métodos.

Documentación

🚀 Aras Innovator Claude Agent

¡Conecta Claude Desktop a Aras Innovator PLM mediante OAuth 2.0!

Este servidor del Protocolo de Contexto de Modelo (MCP) permite que Claude Desktop interactúe con Aras Innovator utilizando autenticación OAuth 2.0 moderna y APIs REST de OData, permitiéndote consultar datos PLM, crear elementos y llamar métodos directamente desde tu asistente de IA.

✨ ¿Qué puedes hacer?

  • 🔐 Autenticación OAuth 2.0 segura con Aras Innovator 14+
  • 📊 Consulta datos PLM usando endpoints REST de OData
  • ✍️ Crea nuevos elementos (Piezas, Documentos, etc.) directamente desde Claude
  • 🔧 Llama métodos del servidor Aras y endpoints personalizados
  • 📋 Accede a listas y datos de configuración
  • 🛡️ Seguridad de nivel empresarial con autenticación mediante token de portador

📋 Requisitos previos

🐍 Python 3.8+

  • Windows: Descárgalo desde python.org
  • macOS/Linux: brew install python o sudo apt install python3 python3-pip

🤖 Claude Desktop (¡gratis!)

  • Descárgalo desde claude.ai - ¡no se requiere suscripción!

🏢 Aras Innovator 14+ con OAuth 2.0

  • Servidor Aras Innovator con endpoints OAuth 2.0 habilitados
  • Credenciales de usuario Aras válidas con permisos de API
  • Permisos de acceso a la base de datos

🎯 Inicio rápido

1️⃣ Clona e instala

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

2️⃣ Configura tu conexión a Aras

Crea un archivo .env en la raíz del proyecto:

# 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

💡 Cópialo desde env_example.txt y actualízalo con tus credenciales de Aras

3️⃣ Añádelo a Claude Desktop

Edita tu archivo de configuración de Claude Desktop:

📁 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"]
    }
  }
}

💡 Reemplaza la ruta con tu directorio de instalación real.

4️⃣ ¡Prueba tu configuración!

Verifica la instalación:

python main.py

El servidor debería iniciarse sin errores de análisis JSON.

Prueba en Claude Desktop: Reinicia Claude Desktop y prueba:

  • "Prueba mi conexión a la API"
  • "Obtén todas las Piezas de la base de datos"
  • "Muéstrame los tipos de Documento disponibles"

🛠️ Herramientas disponibles

HerramientaDescripciónQué puedes preguntarEndpoint de ejemplo
test_api_connectionPrueba la autenticación OAuth 2.0"Prueba mi conexión a la API"N/A
api_get_itemsConsulta OData de Aras"Obtén todas las Piezas"Part, Document
api_create_itemCrea nuevos elementos de Aras"Crea una nueva Pieza"Part, Document
api_call_methodLlama métodos del servidor Aras"Llama al método GetItemsInBOM"Nombres de métodos
api_get_listObtén valores de listas de Aras"Muestra las categorías de Piezas"IDs de listas

🔐 Autenticación OAuth 2.0

Este agente utiliza la concesión de credenciales de contraseña del propietario del recurso OAuth 2.0 para una autenticación segura con Aras Innovator 14+. El flujo de autenticación:

  1. Solicitud de token: https://your-server/oauthserver/connect/token
  2. Alcance: openid Innovator offline_access
  3. ID de cliente: IOMApp (cliente Aras predeterminado)
  4. Tipo de concesión: password
  5. Requerido: username, password, database

💬 Conversaciones de ejemplo

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...

🔧 Correcciones y actualizaciones recientes

✅ v1.1.0 - Correcciones de OAuth 2.0 y análisis JSON

  • Corregido: error "Unexpected token 'A', 'API MCP Se'... is not valid JSON"
  • Añadido: Autenticación OAuth 2.0 adecuada con requests-oauthlib
  • Añadido: Requisito del parámetro de base de datos para la autenticación de Aras
  • Corregido: Todas las declaraciones print redirigidas a stderr para evitar la contaminación de stdout
  • Actualizado: Soporte de endpoints OData (/Server/Odata)
  • Añadido: Cabeceras HTTP adecuadas para la API REST de Aras

🛠️ Solución de problemas

🔗 ¿Falla la autenticación OAuth?

  • Verifica que tu servidor Aras soporta OAuth 2.0 (Aras 14+)
  • Comprueba las credenciales y el nombre de la base de datos en .env
  • Asegúrate de que el usuario tenga permisos de acceso a la API

🔐 ¿Error "Missing database parameter"?

  • Añade ARAS_DATABASE=YourDatabaseName a tu archivo .env

🤖 ¿Claude no encuentra las herramientas?

  • Reinicia Claude Desktop después de los cambios de configuración
  • Comprueba las rutas de archivo en claude_desktop_config.json

🐍 ¿Errores de análisis JSON?

  • ✅ ¡Corregido en v1.1.0! Actualiza a la última versión

🏗️ Arquitectura

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

🤝 Contribuciones

¿Encontraste un error o quieres añadir funciones? ¡Aceptamos contribuciones! Por favor, revisa nuestros issues o envía un pull request.

📚 Aprende más

📄 Licencia

Licencia MIT - consulta el archivo LICENSE para más detalles.