ML MCP Server
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., "@ML MCP ServerTrain a forecasting model on sales_data.csv"
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.
ML MCP Server
MCP server untuk melatih dan memakai model machine learning plug-and-play
atas dataset CSV lokal — diporting dari prototipe mcp-chatbot-multi
(model_factory.py + sensor_ml.py + code_executor.py), disusun ulang
mengikuti pola grk-mcp/idms_mcp/irim-mcp/docs-mcp (satu server per
domain, tools.py dipakai bersama server.py stdio dan http_api.py
bridge HTTP) supaya bisa dipakai lewat Claude Code maupun aplikasi Laravel
chatbot-ai.
Fitur inti dari prototipe tetap dipertahankan (list katalog algoritma, latih
model, prediksi pakai model tersimpan, jalankan kode Python ad hoc), hanya
digeneralisasi supaya bekerja atas dataset & kolom apa pun — bukan hanya
skema sensor_A..D yang dihardcode di prototipe.
Setup
cd ml-mcp
python -m venv .venv
./.venv/Scripts/pip install -r requirements.txt
cp .env.example .env
./.venv/Scripts/python.exe generate_sample_dataset.py # opsional: dataset contoh datasets/sensors.csvTaruh file .csv apa pun di folder datasets/ — nama file (tanpa .csv)
menjadi nilai parameter dataset di semua tool. Kolom bernama
timestamp/date/datetime/time (case-insensitive) otomatis di-parse
sebagai waktu dan dipakai untuk mengurutkan baris.
Sumber data dari MCP lain (bukan hanya CSV lokal)
Selain dataset yang ditaruh manual, dataset ML juga bisa berasal dari MCP
server LAIN yang datanya ditarik AI di tengah percakapan — ini yang
membuat chatbot-ai bisa menjawab pertanyaan seperti "latih model prediksi
dari data vibrasi pompa X" tanpa data itu pernah ada sebagai file CSV.
Alur yang dijalankan AI (semua lewat tool-calling, satu percakapan):
Panggil tool MCP lain untuk menarik data, mis.
idms__get_predictive_parameter_trend(...),pkt-grk__get_emission_detail(...), atauirim__list_issues(...)— semuanya mengembalikan baris data berbentuk list of dict (rows/trend/ list hasil tool itu).Lempar baris data itu ke
ml__ingest_dataset(name, records)—namebebas (mis."vibrasi_pompa_101"),recordspersis baris yang didapat dari langkah 1. Tool ini menyimpannya sebagai dataset bernama, dan mengembalikan kolom-kolom yang berhasil terbaca (termasuk mana yang numerik) supaya AI tahu nilai apa yang valid untuktarget_column/feature_columns.Lanjut seperti dataset biasa:
ml__get_dataset_summary(name)(opsional, untuk cek kolom),ml__train_model(dataset=name, task=..., ...), laluml__predict_with_model(model_key).Kalau dataset itu memang cuma dipakai sekali untuk pertanyaan ini,
ml__delete_dataset(name)membersihkannya (model yang sudah dilatih atas dataset itu tetap bisa dipakaipredict_with_modelselamainput_datadiisi lengkap — lihat catatan di tabel tools).
ingest_dataset dibatasi ketat karena isi name/records datang dari LLM,
bukan dari file yang sudah dikurasi manusia: nama dataset hanya boleh
huruf/angka/-/_ (mencegah path traversal), dan records maksimum
50.000 baris per panggilan.
Menjalankan
Stdio (dipakai Claude Code lewat .mcp.json, atau manual untuk debug):
./.venv/Scripts/python.exe server.pyHTTP bridge (dipakai aplikasi chatbot-ai):
./.venv/Scripts/uvicorn http_api:app --host 127.0.0.1 --port 8769Daftarkan sebagai MCP server baru di chatbot-ai (menu MCP Servers,
atau lewat McpServerSeeder), mengikuti pola pkt-grk/irim/docs:
Kolom | Nilai |
|
|
|
|
| isi sama dengan |
Port 8765/8766/8767/8768 sudah dipakai grk-mcp/irim-mcp/
idms_mcp/docs-mcp, jadi server ini memakai 8769.
Keamanan
Server ini tidak menyentuh database aplikasi lain — "database"-nya hanya registry SQLite lokal (
ml_registry.sqlite3) yang mencatat metadata model terlatih, dan file.pkldimodels/. Tidak ada risiko SQL injection ke data produksi karena tidak ada tool query SQL ad hoc di sini.execute_python(jalankan kode Python bebas atas sebuah dataset, disandbox dasar: whitelist import, blokir pola berbahaya, timeout 15 detik — lihatcode_executor.py) hanya didaftarkan diserver.py(stdio, dipakai Claude Code secara lokal) dan sengaja tidak diekspos lewathttp_api.py, karena mengizinkan LLM yang menghadap pengguna akhir menjalankan kode bebas adalah permukaan risiko yang jauh lebih besar daripada tool terkurasi lainnya — sama sepertirun_readonly_queryyang dikecualikan dari bridge HTTPgrk-mcp/irim-mcp..envberisi token asli dan sengaja di-gitignore — jangan pernah di-commit.
Tools yang tersedia
Tool | Transport | Kegunaan |
| stdio + HTTP | Daftar dataset yang tersedia (CSV lokal maupun hasil |
| stdio + HTTP | Statistik kolom (describe, nilai hilang, contoh baris) — dipakai sebelum |
| stdio + HTTP | Simpan data yang ditarik dari MCP server LAIN (list of dict) sebagai dataset bernama — lihat bagian "Sumber data dari MCP lain". |
| stdio + HTTP | Hapus dataset (mis. hasil |
| stdio + HTTP | Daftar task ( |
| stdio + HTTP | Latih model, simpan ke registry + disk, kembalikan metrik evaluasi dan |
| stdio + HTTP | Prediksi pakai model tersimpan — |
| stdio + HTTP | Daftar semua model terlatih beserta metriknya. |
| stdio + HTTP | Hapus model terlatih (file + entri registry). |
| stdio saja | Jalankan kode Python ad hoc atas sebuah dataset (analisis/ML custom di luar |
Task ML yang didukung
forecast — prediksi nilai
target_column(kolom numerik) N langkah ke depan, berbasis pola historis kolom itu sendiri (lag features), analogforecast_sensordi prototipe.regression — prediksi nilai numerik
target_columndarifeature_columns(kolom lain).classification — prediksi kelas/kategori
target_columndarifeature_columns. Kalautarget_columnberupa angka (bukan kategori), wajib isithreshold(kelas 1 jika nilai ≥ threshold) — analog taskoutage/predict_failuredi prototipe.anomaly — deteksi baris tidak normal pada
feature_columns(default semua kolom numerik) pakaiIsolationForest, tanpa target — sama sepertidetect_anomaliesdi prototipe.
Algoritma yang tersedia: linear_regression/random_forest untuk
regression/forecast, logistic_regression/random_forest untuk
classification. anomaly selalu memakai IsolationForest otomatis.
Yang sengaja tidak diporting dari prototipe
Tool analisis khusus data sensor di mcp-chatbot-multi (analyze_sensors,
get_correlation, get_downtime, make_chart, forecast_chart) tidak
diporting karena spesifik ke skema sensor & menghasilkan file gambar (PNG) —
di luar cakupan "model ML plug-and-play" dan tidak konsisten dengan pola
MCP server lain di proyek ini (semuanya mengembalikan JSON, bukan file).
get_dataset_summary (statistik describe()) dan execute_python sudah
cukup untuk eksplorasi data serupa tanpa dependensi matplotlib.
This server cannot be installed
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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/pktcopilot2/ml-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server