Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
MLflow MCP — experiments, runs, registered models, versions, traces, assessments (MLflow 3)
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
MLFLOW_TRACKING_URI, MLFLOW_TRACKING_TOKEN, MLFLOW_TRACKING_USERNAME, MLFLOW_TRACKING_PASSWORD, MLFLOW_EXPERIMENT_ID, MLFLOW_TOOLS, MLFLOW_DISABLE, MLFLOW_ALLOW_WRITEค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"mlflow": {
"command": "npx",
"args": [
"-y",
"@us-all/mlflow-mcp"
],
"env": {
"MLFLOW_TRACKING_URI": "ใส่ค่าของคุณ",
"MLFLOW_TRACKING_TOKEN": "ใส่ค่าของคุณ",
"MLFLOW_TRACKING_USERNAME": "ใส่ค่าของคุณ",
"MLFLOW_TRACKING_PASSWORD": "ใส่ค่าของคุณ",
"MLFLOW_EXPERIMENT_ID": "ใส่ค่าของคุณ",
"MLFLOW_TOOLS": "ใส่ค่าของคุณ",
"MLFLOW_DISABLE": "ใส่ค่าของคุณ",
"MLFLOW_ALLOW_WRITE": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add mlflow --env MLFLOW_TRACKING_URI='ใส่ค่าของคุณ' --env MLFLOW_TRACKING_TOKEN='ใส่ค่าของคุณ' --env MLFLOW_TRACKING_USERNAME='ใส่ค่าของคุณ' --env MLFLOW_TRACKING_PASSWORD='ใส่ค่าของคุณ' --env MLFLOW_EXPERIMENT_ID='ใส่ค่าของคุณ' --env MLFLOW_TOOLS='ใส่ค่าของคุณ' --env MLFLOW_DISABLE='ใส่ค่าของคุณ' --env MLFLOW_ALLOW_WRITE='ใส่ค่าของคุณ' -- npx -y @us-all/mlflow-mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"mlflow": {
"command": "npx",
"args": [
"-y",
"@us-all/mlflow-mcp"
],
"env": {
"MLFLOW_TRACKING_URI": "ใส่ค่าของคุณ",
"MLFLOW_TRACKING_TOKEN": "ใส่ค่าของคุณ",
"MLFLOW_TRACKING_USERNAME": "ใส่ค่าของคุณ",
"MLFLOW_TRACKING_PASSWORD": "ใส่ค่าของคุณ",
"MLFLOW_EXPERIMENT_ID": "ใส่ค่าของคุณ",
"MLFLOW_TOOLS": "ใส่ค่าของคุณ",
"MLFLOW_DISABLE": "ใส่ค่าของคุณ",
"MLFLOW_ALLOW_WRITE": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"mlflow": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@us-all/mlflow-mcp"
],
"env": {
"MLFLOW_TRACKING_URI": "ใส่ค่าของคุณ",
"MLFLOW_TRACKING_TOKEN": "ใส่ค่าของคุณ",
"MLFLOW_TRACKING_USERNAME": "ใส่ค่าของคุณ",
"MLFLOW_TRACKING_PASSWORD": "ใส่ค่าของคุณ",
"MLFLOW_EXPERIMENT_ID": "ใส่ค่าของคุณ",
"MLFLOW_TOOLS": "ใส่ค่าของคุณ",
"MLFLOW_DISABLE": "ใส่ค่าของคุณ",
"MLFLOW_ALLOW_WRITE": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
MLFLOW_TRACKING_USERNAME envMLFLOW_EXPERIMENT_ID envMLFLOW_TOOLS envMLFLOW_DISABLE envMLFLOW_ALLOW_WRITE envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub us-all ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: MLFLOW_TRACKING_URI, MLFLOW_TRACKING_TOKEN, MLFLOW_TRACKING_PASSWORD
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.12.7) เข้า registry 5 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Fomu MCP
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Kenya government form guides: checklists, draft letters, eCitizen, Huduma, timelines. Sample data.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
The widest-coverage MLflow MCP — including MLflow 3 traces, prompt-optimization, webhooks, and Databricks trace attachments that no other MCP exposes.
82 tools across experiments, runs, registry, logged models, traces, assessments, webhooks, prompt-optimization. Aggregation tools (
summarize-experiment,summarize-run) fold 3–5 round-trips into one structured response with already-fetched metric stats.
list-trace-attachments, get-trace-attachment — Databricks MLflow only; OSS returns 404).summarize-experiment returns experiment + topN runs + metric stats (min/max/mean) in one call from already-fetched data, zero extra round-trips. summarize-run dedups metricHistory.history.*.key (~100KB savings on 4k-point series).debug-failed-traces, promote-best-run, compare-top-runs, annotate-trace-quality. Workflow templates the model invokes directly.mlflow://run/{runId}, mlflow://experiment/{expId}, mlflow://run/{runId}/artifacts, mlflow://experiment/{expId}/runs, mlflow://registered-model/{name}/versions, mlflow://trace/{traceId}.extractFields projection on get-run / search-runs / search-traces / get-trace / fat reads, MLFLOW_TOOLS / MLFLOW_DISABLE 8 categories, search-tools meta-tool.compare-runs renders as a side-by-side card on ChatGPT clients (run summary + metric/param tables with diff highlight) via _meta["openai/outputTemplate"]. Claude clients receive the same JSON content.MCP_TRANSPORT=http for ChatGPT Apps SDK or remote clients (Bearer auth via MCP_HTTP_TOKEN).Connect the server to Claude Desktop or Claude Code, then paste any of these:
customer-churn-v3 experiment, find the run with the highest val_accuracy. Show its hyperparameters and metric history."*status=ERROR from the last 24h in experiment 12. Group the failures by exception type and surface the 3 most common."*validation_loss. Show differing hyperparameters in a table."*recommendation_v2 registered model with the champion alias. Show its training metrics + lineage to the source run."*tr-abc123. Highlight slow spans and any failed feedback annotations."* (Add list-trace-attachments on Databricks workspaces.)Official mlflow[mcp] | kkruglik/mlflow-mcp | @us-all/mlflow-mcp (this) | |
|---|---|---|---|
| Tool count | ~9 (trace-only) | ~25 | 78 |
| MLflow 3 LoggedModel | ❌ | ✅ | ✅ |
| Trace attachments | ❌ | ❌ | ✅ Databricks only |
| Prompt-optimization-jobs | ❌ | ❌ | ✅ |
| Webhooks | ❌ | ❌ | ✅ |
| Aggregation tools | ❌ | ❌ | ✅ summarize-experiment, summarize-run |
| MCP Prompts | ❌ | ✅ | ✅ |
| MCP Resources | ❌ | ❌ | ✅ 6 URIs |
| Auth | Databricks SDK | Bearer / basic | Bearer / basic |
| Transport | stdio | stdio | stdio |
The official mlflow[mcp] is bundled inside MLflow itself and intentionally trace-narrow. Use it for quick managed-MLflow trace inspection. Use this server for end-to-end coverage, especially MLflow 3 entities, prompt-optimization workflows, and aggregation-driven AI debugging.
{
"mcpServers": { "mlflow": { "command": "npx", "args": ["-y", "@us-all/mlflow-mcp"], "env": { "MLFLOW_TRACKING_URI": "http://localhost:5000" } } } }
claude mcp add mlflow -s user \
-e MLFLOW_TRACKING_URI=http://localhost:5000 \ -- npx -y @us-all/mlflow-mcp
docker run --rm -i \
-e MLFLOW_TRACKING_URI=http://your-host:5000 \ ghcr.io/us-all/mlflow-mcp-server
git clone https://github.com/us-all/mlflow-mcp-server.git
cd mlflow-mcp-server && pnpm install && pnpm build node dist/index.js
| Variable | Required | Default | Description |
|---|---|---|---|
MLFLOW_TRACKING_URI | ✅ | — | MLflow tracking URL (http://localhost:5000, Databricks workspace URL, etc.) |
MLFLOW_TRACKING_TOKEN | ❌ | — | Bearer token. Use for Databricks PAT (dapi…) |
MLFLOW_TRACKING_USERNAME | ❌ | — | Basic-auth username (alternative to token) |
MLFLOW_TRACKING_PASSWORD | ❌ | — | Basic-auth password |
MLFLOW_EXPERIMENT_ID | ❌ | — | Default experiment ID for tools that accept it implicitly |
MLFLOW_ALLOW_WRITE | ❌ | false | Set true to enable mutations (create/update/delete) |
MLFLOW_TOOLS | ❌ | — | Comma-sep allowlist of categories. Biggest token saver. |
MLFLOW_DISABLE | ❌ | — | Comma-sep denylist. Ignored when MLFLOW_TOOLS is set. |
MCP_TRANSPORT | ❌ | stdio | http to enable Streamable HTTP transport |
MCP_HTTP_TOKEN | conditional | — | Bearer token. Required when MCP_TRANSPORT=http |
MCP_HTTP_PORT | ❌ | 3000 | HTTP listen port |
MCP_HTTP_HOST | ❌ | 127.0.0.1 | HTTP bind host (DNS rebinding protection auto-enabled for localhost) |
MCP_HTTP_SKIP_AUTH | ❌ | false | Skip Bearer auth — e.g. behind a reverse proxy that handles it |
Categories (8): experiments, runs, registry, logged-models, traces, assessments, webhooks, prompts.
When MCP_TRANSPORT=http: POST /mcp (Bearer-auth JSON-RPC) + GET /health (public liveness).
For Databricks-hosted MLflow:
MLFLOW_TRACKING_URI=https://<workspace>.cloud.databricks.com
MLFLOW_TRACKING_TOKEN=dapi... # PAT or service-principal token
The MLflow REST API path (/api/2.0/mlflow/...) is identical between OSS and Databricks. Bearer auth handles both PAT and service-principal flows.
| Scenario | Tools | Schema tokens | vs default |
|---|---|---|---|
| default (all categories) | 78 | 9,200 | — |
typical (MLFLOW_TOOLS=experiments,runs,registry,traces) | 54 | 5,900 | −36% |
narrow (MLFLOW_TOOLS=experiments,runs) | 27 | 3,200 | −66% |
Plus extractFields on get-run / search-runs / search-traces / get-trace / summarize-experiment — caller can scope response fields per call.
By default, all writes are blocked. The following require MLFLOW_ALLOW_WRITE=true:
create-experiment, update-experiment, delete-experiment, restore-experiment, set-experiment-tag, delete-experiment-tag, create-run, update-run, delete-run, restore-run, log-metric, log-param, log-batch, log-inputs, set-run-tag, delete-run-tag, create-registered-model, rename-registered-model, update-registered-model, delete-registered-model, plus all model-version, logged-model, trace, assessment, webhook, and prompt-optimization writes.
max_results > 500 with INVALID_PARAMETER_VALUE. For larger result sets, loop on nextPageToken — total trace count is unbounded.list-trace-attachments / get-trace-attachment call routes that OSS MLflow (verified through 3.12.0) returns 404 for. Tool descriptions surface this; calls against OSS return a structured MlflowError.Workflow templates available via MCP prompts/list:
debug-failed-traces — find failed traces, group failure modespromote-best-run — find best run, register, set champion aliascompare-top-runs — top-N comparison by metricannotate-trace-quality — guided feedback annotation loopURI-based read-only access:
mlflow://run/{runId}, mlflow://experiment/{expId}, mlflow://experiment-by-name/{name}, mlflow://registered-model/{name}, mlflow://model-version/{name}/{version}, mlflow://trace/{traceId}, mlflow://run/{runId}/artifacts, mlflow://experiment/{expId}/runs, mlflow://registered-model/{name}/versions.
8 categories. Use search-tools to discover at runtime; full list collapsed below.
get-run, search-runs, search-traces, get-trace, and summarize-experiment accept extractFields for response slicing.
Full tool list
create-experiment, search-experiments, get-experiment, get-experiment-by-name, update-experiment, delete-experiment, restore-experiment, set-experiment-tag, delete-experiment-tag
create-run, get-run, search-runs, update-run, delete-run, restore-run, log-metric, log-param, log-batch, log-inputs, get-metric-history, set-run-tag, delete-run-tag, list-artifacts, get-best-run, compare-runs, search-runs-by-tags, summarize-run *(aggregation)*
create-registered-model, get-registered-model, search-registered-models, rename-registered-model, update-registered-model, delete-registered-model, get-latest-model-versions, set-registered-model-tag, delete-registered-model-tag, set-registered-model-alias, delete-registered-model-alias, get-model-version-by-alias
create-model-version, get-model-version, search-model-versions, update-model-version, delete-model-version, transition-model-version-stage, get-model-version-download-uri, set-model-version-tag, delete-model-version-tag
create-logged-model, search-logged-models, get-logged-model, finalize-logged-model, delete-logged-model, set-logged-model-tags, delete-logged-model-tag, log-logged-model-params
search-traces, get-trace, get-trace-info, delete-traces, set-trace-tag, delete-trace-tag, list-trace-attachments, get-trace-attachment
log-feedback, log-expectation, get-assessment, update-assessment, delete-assessment
create-webhook, list-webhooks, get-webhook, update-webhook, delete-webhook, test-webhook
create-prompt-optimization-job, get-prompt-optimization-job, search-prompt-optimization-jobs, cancel-prompt-optimization-job, delete-prompt-optimization-job
summarize-experiment, summarize-run — fold 3–5 round-trips into one structured response with caveats array.
search-tools — query other tools by keyword; always enabled.
# 1. start MLflow (UI at http://localhost:5050)
docker compose up -d mlflow
ตัดมาแค่ช่วงต้น อ่านต่อใน repo