mcp-altair-studio
This server lets Claude control Altair AI Studio 2026.x (a RapidMiner-based ML/data mining desktop app on Windows) via headless batch execution and an optional HTTP bridge extension.
Diagnostics
altair_check_connection— Verify the batch script and optional HTTP bridge are reachable (run first when troubleshooting)
Data Ingestion
altair_import_data— Import/preview tabular data from a local CSV or Studio repository entryaltair_list_repository— Browse repository folders and entries (requires HTTP bridge)altair_read_repository_entry— Read a repository dataset as CSV (requires HTTP bridge)altair_store_csv_to_repository— Write a local CSV into the Studio repository (requires HTTP bridge)
Data Preparation
altair_clean_data— Handle missing values (average/min/max/zero/custom), remove duplicates, drop columnsaltair_normalize_data— Normalize numeric columns via Z-score, min-max, proportion, or IQR scalingaltair_generate_attribute— Create derived columns using RapidMiner expressions (e.g.,revenue - cost)altair_split_data— Partition a dataset into train/test splits with a configurable ratio
Exploration
altair_descriptive_stats— Compute mean, min, max, std, median, and count for numeric columns
Machine Learning
altair_train_classifier— Train and evaluate classifiers (Decision Tree, Random Forest, Naive Bayes, k-NN, SVM, Logistic Regression, Neural Net, GBT) with k-fold cross-validationaltair_cluster_kmeans— Segment data using k-Means; returns dataset with a cluster-id column addedaltair_association_rules— Mine frequent itemsets and association rules via FP-Growth (requires pre-binarized input)altair_reduce_dimensions_pca— Reduce dimensionality with PCA up to a target explained-variance threshold
Automation
altair_run_process_file— Execute any existing.rmpprocess file headlessly (with optional macro overrides)altair_run_operator_chain— Advanced escape hatch: run any arbitrary RapidMiner operator graph (DBSCAN, hierarchical clustering, database connections, Python/R scripting, LLM operators, etc.) by specifying exact class keys, parameters, and port connections
GUI Hand-off (requires HTTP bridge)
altair_get_current_process— Read the XML of the process currently open in the Studio GUIaltair_open_process_in_studio— Push a generated process XML into the Studio GUI for the user to inspect, edit, or run visually
Enables running Hugging Face models and LLMs through Altair AI Studio's operator chain.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-altair-studioload the iris dataset and train a decision tree"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-altair-studio
Servidor MCP (Model Context Protocol) que permite a Claude controlar Altair AI Studio (el producto de minería de datos/ML de Altair, basado en RapidMiner) instalado en tu PC con Windows: importar/limpiar/transformar datos, entrenar y evaluar modelos de ML, clusterizar, minar reglas de asociación y ejecutar procesos guardados — todo desde una conversación con Claude.
Repositorio: https://github.com/alan4041207/mcp-altair-studio
El target de este proyecto es Altair AI Studio 2026.1.1, instalado en:
C:\Program Files\Altair\RapidMiner\AI Studio 2026.1.1Todo este proyecto se construyó y validó contra esa instalación real (ver "Qué se verificó realmente" más abajo) en lugar de basarse solo en documentación.
Cómo se conecta (no existe una "API de Altair Studio" pública)
Altair AI Studio es una aplicación de escritorio sin una API REST propia para su GUI. Este proyecto usa los dos puntos de integración reales que el producto sí ofrece:
Ejecución headless por batch (principal, siempre disponible): el servidor MCP genera al vuelo un archivo de proceso
.rmp(XML de RapidMiner) y lo ejecuta con el lanzador de línea de comandos incluido,scripts\ai-studio-batch.bat -f <archivo>. Está verificado de punta a punta (ver abajo) y no requiere instalar nada adicional.Limitación real confirmada de este modo (no es un bug del MCP, es del lanzador batch de Altair AI Studio 2026.1.1): cualquier resultado que NO sea una tabla de datos (Performance Vector, Association Rules, etc.) se pierde silenciosamente — se enruta al puerto "result N" del proceso pero nunca se imprime. Se confirmó desensamblando
com.rapidminer.launcher.CommandLineLauncher.runProcessAndQuit: llama aProcess.run()y descarta elIOContainerdevuelto sin pasarlo jamás aResultService.logResult(...), pese a que el propio log dice "using stdout for logging results!". Esto afecta aaltair_train_classifier(el Performance Vector de la validación cruzada no se ve) y a cualquier uso deCreate Association Rulesque no termine en una tabla. Mitigación usada en este proyecto: paraaltair_association_rules/reglas de asociación, exportar los itemsets frecuentes (que sí son tabulares, víaitem_sets_to_data) y calcular confidence/lift/conviction con las fórmulas estándar fuera de Studio — verexamples/market-basket-optimization/para un caso real completo. Este modo sí funciona sin problema para todo lo que ya es una tabla (ExampleSet/Data Table): limpieza, normalización, PCA, clustering conadd_cluster_attribute, itemsets, etc.Bridge HTTP opcional (
altair-http-bridge/): una pequeña extensión Java que se compila e instala en la carpeta de extensiones de Studio. Levanta un servidor HTTP enlocalhostdentro de la sesión de Studio que ya está corriendo, para que Claude pueda explorar el repositorio y leer/reemplazar el proceso que esté abierto en la GUI en ese momento. Es opcional — todo lo demás funciona sin él. Veraltair-http-bridge/README.md.Estado: construido, instalado y verificado funcionando —
altair_check_connectionreporta el bridge como alcanzable enhttp://127.0.0.1:8266. Dos detalles no documentados oficialmente que costó descubrir (y que ya están corregidos en el código/README de la extensión, para que un rebuild futuro no los repita):La carpeta que Altair AI Studio 2026.x realmente escanea en el arranque es
%USERPROFILE%\.AltairRapidMiner\AI Studio\shared\extensions, no%USERPROFILE%\.RapidMiner\extensions(confirmado desmontandoPlugin.classdel jar núcleo de Studio).El método de entrada
initPlugin()debe ser estático — Studio lo invoca por reflexión conMethod.invoke(null, ...), y si es un método de instancia falla con unNullPointerExceptionsilencioso que la GUI muestra como "Incompatible extensions".
Related MCP server: Linear Regression MCP
Qué se verificó realmente
En lugar de adivinar nombres de operadores de RapidMiner de memoria (es fácil
equivocarse: por ejemplo "PCA" en realidad se llama
principal_component_analysis, y los operadores más nuevos viven detrás de
prefijos de namespace como concurrency:), la construcción de este proyecto:
Inspeccionó los jars reales instalados (
lib\*.jar,lib\plugins\*.jar) para confirmar las claves de operador y sus prefijos de namespace (concurrency:,blending:) vía el registroOperatorsXxx.xmlde cada extensión y suMANIFEST.MF.Ejecutó el CLI real
ai-studio-batch.batcontra procesos de prueba construidos a mano, iterando sobre los mensajes de error reales hasta que pasaron, confirmando:La sintaxis del CLI es
ai-studio-batch.bat -f <ruta-al-rmp>(no la sintaxis clásica posicionalrapidminer-batch.sh '//repo/ruta'que describen algunos manuales antiguos).Un pipeline completo
Retrieve -> Write CSVcorre y produce el resultado correcto.Un pipeline completo
Set Role -> Cross Validation(Naive Bayes / Apply Model / Performance)corre de punta a punta, lo cual corrigió dos suposiciones erróneas de nombres de puerto en el camino (el puerto de entrada exterior de Cross Validation esexample set, notraining; el puerto reenviado de su subproceso Training estraining set).Un Performance Vector no puede alimentar directamente a
Write CSV(incompatibilidad de tipos) — debe enrutarse al puerto de resultado exterior del proceso, donde el runner de batch lo imprime en stdout.
Las recetas de limpiar/normalizar/dividir/PCA reutilizan las mismas convenciones clásicas de puertos de ExampleSet confirmadas arriba, pero no se volvieron a ejecutar individualmente en esta sesión — si alguna reporta un operador/puerto desconocido, ver "Si algo falla" más abajo.
Reglas de asociación y k-Means: verificados de punta a punta y dos bugs
reales corregidos (sesión de análisis Market Basket Optimization, ver
examples/market-basket-optimization/):
sourceOperator()fijaba el parámetrofirst_row_as_namesenread_csv, pero ese parámetro no existe en el operador real que Altair AI Studio 2026.x usa pararead_csv(com.rapidminer.operator.nio.CSVTableSource) — se verificó ejecutándolo con ese valor enfalsecontra un CSV sin encabezado y comprobando que igual trataba la fila 1 como nombres de columna (perdiendo una fila de datos real). El parámetro correcto esuse_header_row. Corregido enrecipes.ts; documentado inline por qué.associationRulesRecipe()ykMeansRecipe()usaban las claves de operador sin namespace (fp_growth,k_means). Se verificó que ambas resuelven a la implementación central obsoleta (com.rapidminer.operator.learner .associations.fpgrowth.FPGrowth/...clustering.clusterer.KMeans), no a la versión moderna de la extensión Concurrency (BeltFPGrowth/BeltKMeans) pese a que esta última declarapriority=100— la prioridad más alta NO gana la resolución de la clave sin prefijo en esta instalación. Se confirmó ejecutandofp_growth(sin prefijo) coninput_format="items in separate columns": el operador ni reconoce ese parámetro ("unknown for operator") y además elimina en silencio cualquier columna no binominal ("Removed N non-binominal attributes"). Corregido aconcurrency:fp_growthyconcurrency:k_meansexplícitamente enrecipes.ts.El operador
De-Pivot(de_pivot) requiere que el parámetroattribute_namese pase como lista ({key: nombre_columna_resultado, value: regex_de_atributos_fuente}), no como string simple — el nombre del parámetro coincidía pero el tipo no, y usarlo como string simple produce 0 filas de salida sin ningún error. Confirmado desensamblandoAttribute2ExamplePivoting.getParameterTypes(). No se usa en las recetas actuales de este proyecto (FP-Growth consume el formato ancho directamente, ver el ejemplo), pero queda documentado aquí porque es la ruta clásica que cualquier tutorial de RapidMiner asume.
No verificado: Gradient Boosted Trees (la extensión H2O está instalada
en esta máquina, pero su clave de operador no se confirmó).
También se descubrió: esta instalación no tiene alcance a un servidor de licencias de Altair activo, así que Studio recae en licenciamiento community/RapidMiner. La ejecución batch de los operadores principales funcionó bien en ese estado; algunos operadores de nivel Professional pueden requerir licencia según tu cuenta de Altair.
Instalación
1. Clonar e instalar dependencias
git clone https://github.com/alan4041207/mcp-altair-studio.git
cd mcp-altair-studio
npm install
npm run build2. (Opcional) Compilar e instalar el bridge HTTP
Requiere JDK 17+ y Gradle — ver altair-http-bridge/README.md para el paso a
paso completo (incluye cómo obtener ambos sin permisos de administrador).
cd altair-http-bridge
gradle build -PaltairHome="C:\Program Files\Altair\RapidMiner\AI Studio 2026.1.1"
gradle installExtension -PaltairHome="C:\Program Files\Altair\RapidMiner\AI Studio 2026.1.1"Reinicia Altair AI Studio después de instalar la extensión.
3. Configurar Claude Desktop
Agrega (o fusiona, si ya tienes otros servidores MCP configurados) esta
entrada en %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"altair-studio": {
"command": "node",
"args": ["C:\\ruta\\a\\mcp-altair-studio\\dist\\index.js"],
"env": {
"ALTAIR_HOME": "C:\\Program Files\\Altair\\RapidMiner\\AI Studio 2026.1.1",
"ALTAIR_DEFAULT_REPOSITORY": "Local Repository",
"ALTAIR_HTTP_BRIDGE_ENABLED": "true",
"ALTAIR_HTTP_BRIDGE_PORT": "8266"
}
}
}
}Reinicia Claude Desktop después de modificar este archivo.
4. Verificación
En una conversación de Claude Desktop, pide que ejecute
altair_check_connection. Debe reportar el script de batch encontrado en
ALTAIR_HOME, y si el bridge HTTP opcional está alcanzable (no lo estará
hasta que completes el paso 2 y reinicies Studio).
Herramientas (tools)
Tool | Categoría | Notas |
| diagnóstico | ejecutar primero |
| ingesta | archivo CSV o entrada de repositorio |
| ingesta | requiere el bridge HTTP |
| ingesta | requiere el bridge HTTP |
| ingesta | requiere el bridge HTTP |
| preparación | valores faltantes, duplicados, eliminar columnas |
| preparación | Z-score/rango/proporción/IQR |
| preparación | columna derivada vía expresión |
| preparación | partición train/test |
| exploración | media/mín/máx/desv. estándar/mediana/conteo |
| ML | árbol de decisión/random forest/naive bayes/k-NN/SVM/regresión logística/red neuronal/GBT + validación cruzada k-fold. El Performance Vector no se imprime en modo batch (ver limitación en "Cómo se conecta") — la tool devuelve el log crudo, que no contendrá las métricas. |
| ML | k-Means (usa |
| ML | FP-Growth + reglas. Requiere datos ya binarizados (item presente/ausente); las reglas mismas tampoco se imprimen en modo batch — ver |
| ML | PCA |
| automatización | ejecuta cualquier |
| automatización | vía de escape: cualquier grafo de operadores que armes (DBSCAN, clustering jerárquico, conexiones a bases de datos, scripting Python/R, operadores de Hugging Face/LLM, Optimize Parameters, Loop Files, ...) |
| GUI hand-off | requiere el bridge HTTP |
| GUI hand-off | requiere el bridge HTTP |
Este proyecto deliberadamente no expone decenas de tools hechas a mano una por
una. RapidMiner/Altair tiene cientos de operadores; codificar cada uno de
memoria implicaría o bien una superficie enorme de baja confianza, o entregar
tools que silenciosamente invoquen la clave de operador equivocada. En su
lugar: ~17 tools bien probadas cubren los casos comunes de cada categoría, más
altair_run_operator_chain como bloque de construcción totalmente genérico —
se le pasa cualquier clave de clase de operador + parámetros + cableado de
puertos, y lo ejecuta. Arma el proceso una vez en la GUI de Studio, usa
Process ▸ Export Process para ver las claves de clase/puerto exactas, y
pásaselas directamente a la tool.
Ejemplos
examples/market-basket-optimization/ — análisis completo de reglas de
asociación (Market Basket Optimization) sobre un dataset real de 7 501
transacciones: flujo construido y ejecutado contra Altair AI Studio, 959
itemsets frecuentes, 249 reglas con support/confidence/lift/conviction/
leverage/coverage, y un reporte HTML autocontenido con hallazgos de negocio.
Es el caso real que motivó los tres bugs corregidos arriba (use_header_row,
concurrency:fp_growth, la limitación de resultados no tabulares en modo
batch) — ver su propio README.md para el detalle completo.
Si algo falla
Ejecuta
altair_check_connection.Lee el log de error en la respuesta de la tool — los mensajes de error propios de Altair AI Studio suelen nombrar exactamente el operador/puerto incorrecto (así se corrigieron los nombres de puerto en las recetas de este proyecto).
Para un operador/puerto del que no estés seguro: arrástralo a un proceso en la GUI de Studio, conéctalo, y luego Process ▸ Export Process (o la vista de XML del proceso) para ver la clave de clase y nombres de puerto reales, y usa
altair_run_operator_chaindirectamente o corrige la función correspondiente ensrc/altair/recipes.ts.Para inspeccionar tú mismo el registro real de operadores del producto instalado (misma técnica usada para construir este proyecto):
Add-Type -AssemblyName System.IO.Compression.FileSystem $zip = [System.IO.Compression.ZipFile]::OpenRead("C:\Program Files\Altair\RapidMiner\AI Studio 2026.1.1\lib\plugins\concurrency-12.1.1-all.jar") $zip.Entries | Where-Object { $_.FullName -match "Operators.*\.xml" }Si el bridge HTTP deja de responder tras un rebuild: revisa
%USERPROFILE%\.AltairRapidMiner\AI Studio\<versión>\ai-studio.logen busca de la líneaRegister plugin: MCP HTTP Bridgey cualquierWARNING/excepción justo después — casi siempre apunta al problema exacto (ruta de instalación incorrecta, firma de método incorrecta, etc.).
Estructura del proyecto
src/
config.ts ALTAIR_HOME, puertos, carpeta scratch (todo sobreescribible por env)
altair/
rmpXml.ts constructor genérico de XML .rmp
recipes.ts grafos de operadores escritos y probados a mano
batchRunner.ts lanza ai-studio-batch.bat
httpBridgeClient.ts habla con la extensión Java opcional
connector.ts elige bridge vs. batch, lee los CSV de resultado
tools/ registro de tools MCP (esquemas zod + handlers)
index.ts punto de entrada del servidor MCP (transporte stdio)
altair-http-bridge/ extensión Java opcional (ver su propio README)
examples/
market-basket-optimization/ caso real: reglas de asociación end-to-end (ver su README)
claude-desktop-config.example.jsonMaintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/alan4041207/mcp-altair-studio'
If you have feedback or need assistance with the MCP directory API, please join our Discord server