| name | mcp-result-delivery |
| description | Result delivery workflow for retrieving analysis results, downloading files from MinIO, and sharing reports with users. Use when user wants to download results, export reports, get analysis outputs, or share data files. Triggers: ไธ่ผ็ตๆ, ๅๅพๅ ฑๅ, ๅณๆชๆก, share results, download, ่ผธๅบ, export, ็ตๆๅจๅช, where is result, ๅ ฑๅ, report, ๅ่กจ, visualization. |
Result Delivery Workflow ๆ่ฝ (็ตๆไบคไปๆต็จ)
ๆ่ฟฐ
็ฎก็ๅๆ็ตๆ็ๅฒๅญใๆฅ่ฉขๅไบคไป็ตฆไฝฟ็จ่
ใ
่งธ็ผๆขไปถ
- ใไธ่ผ็ตๆใใๅๅพๅ ฑๅใ
- ใๅณๆชๆก็ตฆๆใใshare resultsใ
- ใไนๅ็ๅๆ็ตๆใใๆญทๅฒ่จ้ใ
๐ฏ ็ตๆไบคไปๆถๆง
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Result Storage Architecture โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ ๅๆๅทฅๅ
ทๅท่ก โ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Result Storage โ โ
โ โ โ โ
โ โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ โ
โ โ โ Redis โ โ MinIO โ โ โ
โ โ โ (7 ๅคฉๅฟซๅ) โ โ (ๆฐธไน
ๅฒๅญ) โ โ โ
โ โ โ โ โ โ โ โ
โ โ โ stats:resultโ โ automl-results/ โ โ
โ โ โ :{result_id}โ โ {user}/{type}/ โ โ
โ โ โโโโโโโโโโโโโโโ โ {timestamp}_{id}.json โ โ
โ โ โโโโโโโโโโโโโโโ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ ๅๅณ็ตฆ Agent๏ผ โ
โ โข result_id: stat_tableone_abc12345 โ
โ โข result_path: automl-results/eric/tableone/20251216_xxx.json โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ฆ ็ตๆ้กๅ
ๆฏๆด่ชๅๅฒๅญ็ๅทฅๅ
ท
| ๅทฅๅ
ท | ๅๆ้กๅ | ๅฒๅญไฝ็ฝฎ |
|---|
compare_groups | compare_groups | โ
Redis + MinIO |
analyze_correlations | correlation | โ
Redis + MinIO |
generate_tableone_directly | tableone | โ
Redis + MinIO |
auto_analyze | auto_analyze | โ
Job ็ณป็ตฑ |
kaplan_meier_survival | survival | โ
Job ็ณป็ตฑ |
cox_proportional_hazards | cox | โ
Job ็ณป็ตฑ |
compute_roc_curve | roc | โ
Redis + MinIO |
ๅฒๅญๆ ผๅผ
{
"metadata": {
"result_id": "stat_tableone_abc12345",
"analysis_type": "tableone",
"user_id": "eric",
"created_at": "2025-12-16T10:30:00"
},
"result": {
}
}
๐ ๆฅ่ฉขๆญทๅฒ็ตๆ
Step 1: ๅๅบไฝฟ็จ่
็็ตๆ
mcp_automl_list_analysis_results(
user_id="eric",
analysis_type="tableone",
limit=20
)
่ผธๅบ๏ผ
{
"status": "success",
"user_id": "eric",
"count": 5,
"keys": [
"stats:result:stat_tableone_abc12345",
"stats:result:stat_tableone_def67890",
...
]
}
Step 2: ๅๅพ็นๅฎ็ตๆ
mcp_automl_get_analysis_result(
result_id="stat_tableone_abc12345"
)
่ผธๅบ๏ผ
{
"status": "success",
"result_id": "stat_tableone_abc12345",
"metadata": {...},
"result": {...}
}
๐ฅ ๅพ MinIO ไธ่ผๆชๆก
็ดๆฅไฝฟ็จ Stats Service API
GET http://localhost:8003/storage/minio/download?bucket=automl-results&path=eric/tableone/xxx.json
ๅๅบ MinIO ็ฉไปถ
GET http://localhost:8003/storage/minio/list?bucket=automl-results&prefix=eric/
๐ผ๏ธ ่ฆ่ฆบๅ็ตๆ
็ฎๅ็ๆ
่ฆ่ฆบๅๅ่ฝๅๅณ figure_data๏ผๅบงๆจ่ณๆ๏ผ๏ผ่้ๅ็ๆชๆกใ
ๆฏๆดๅ่กจ่ณๆ็ๅทฅๅ
ท
| ๅทฅๅ
ท | ๅ่กจ้กๅ | ๅๅณๆฌไฝ |
|---|
compute_roc_curve | ROC ๆฒ็ท | figure_data.curve_points |
kaplan_meier_survival | KM ๆฒ็ท | survival_curve |
analyze_correlations | ็ฑๅๅ | heatmap_data |
analyze_calibration | ๆ กๆบๆฒ็ท | reliability_diagram_data |
ttest_sensitivity_analysis | Power ๆฒ็ท | power_curve_data |
ๅ่กจ่ณๆ็ฏไพ
{
"figure_data": {
"curve_points": [
{"fpr": 0.0, "tpr": 0.0},
{"fpr": 0.1, "tpr": 0.5},
...
],
"auc": 0.85,
"optimal_threshold": {"fpr": 0.15, "tpr": 0.82}
}
}
Agent ๅฆไฝๅ็พๅ่กจ
User: "็ซๅบ ROC ๆฒ็ท"
Agent:
1. ๅท่ก compute_roc_curve ๅๅพ figure_data
2. ๅจๅๆไธญ็จ Markdown ่ชชๆๆธๆ๏ผ
"๐ ROC ๅๆ็ตๆ๏ผ
- AUC = 0.85 (95% CI: 0.80-0.90)
- ๆไฝณ้พๅผ = 0.45 (Youden's J)
- ๆๆๅบฆ = 82%, ็น็ฐๅบฆ = 85%
ๅฆ้็นช่ฃฝๅ่กจ๏ผๅฏ็จไปฅไธ Python ็จๅผ็ขผ๏ผ
\`\`\`python
import matplotlib.pyplot as plt
fpr = [0.0, 0.1, 0.2, ...] # from figure_data
tpr = [0.0, 0.5, 0.7, ...]
plt.plot(fpr, tpr)
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title(f'ROC Curve (AUC = 0.85)')
plt.show()
\`\`\`
"
๐ค ไบคไป็ตๆ็ตฆไฝฟ็จ่
ๆนๅผ 1๏ผ็ดๆฅๅจๅฐ่ฉฑไธญๅ็พ
User: "ๅๆ็ตๆๅฆไฝ๏ผ"
Agent:
"โ
Table One ๅๆๅฎๆ
| ่ฎๆธ | Group A (n=100) | Group B (n=150) | p-value |
|------|-----------------|-----------------|---------|
| Age | 45.2 ยฑ 12.3 | 48.1 ยฑ 11.8 | 0.032 |
| Sex (M) | 60 (60%) | 85 (57%) | 0.58 |
๐ ็ตๆๅทฒๅฒๅญ๏ผ
- Result ID: `stat_tableone_abc12345`
- MinIO ่ทฏๅพ: `automl-results/eric/tableone/20251216_xxx.json`
ๅๅพๅฎๆด็ตๆ๏ผ
\`\`\`python
result = get_analysis_result('stat_tableone_abc12345')
\`\`\`
"
ๆนๅผ 2๏ผๆไพไธ่ผ้ฃ็ต
Agent:
"๐ ๅๆ็ตๆๅทฒๅฒๅญ๏ผ
| ้
็ฎ | ่ทฏๅพ |
|------|------|
| JSON | `automl-results/eric/tableone/20251216_xxx.json` |
๐ฅ ไธ่ผๆนๅผ๏ผ
1. ้้ MinIO Console: http://localhost:9001
2. ้้ API: GET /storage/minio/download?bucket=automl-results&path=...
"
ๆนๅผ 3๏ผๅฏๅบ็บ็นๅฎๆ ผๅผ
User: "ๆ้่ฆ CSV ๆ ผๅผ"
Agent:
"็ฎๅ็ณป็ตฑๅฒๅญ็บ JSON ๆ ผๅผใๆๅฏไปฅๅนซไฝ ่ฝๆ๏ผ
\`\`\`python
import pandas as pd
import json
# ่ผๅ
ฅ JSON ็ตๆ
with open('result.json') as f:
data = json.load(f)
# ่ฝ็บ DataFrame
df = pd.DataFrame(data['result']['table'])
# ๅฒๅญ็บ CSV
df.to_csv('tableone_result.csv', index=False)
\`\`\`
ๆ่
ๆๅฏไปฅ็ดๆฅๅจ้่ฃกไปฅ่กจๆ ผๅฝขๅผๅ็พ๏ผไฝ ๅฏไปฅ่ค่ฃฝๅฐ Excelใ
"
๐๏ธ ๅฐๆก็ฎก็
ๅปบ่ญฐ็็ฎ้็ตๆง
ไฝฟ็จ่
ๅฏไปฅ็จ /data/projects/ ็ฎ้็ต็นๅฐๆก๏ผ
/data/projects/
โโโ my_study_2025/
โ โโโ data/
โ โ โโโ raw/ # ๅๅง่ณๆ
โ โ โโโ processed/ # ๆธ
็ๅพ่ณๆ
โ โโโ analysis/
โ โ โโโ descriptive/ # ๆ่ฟฐๆง็ตฑ่จ
โ โ โโโ survival/ # ๅญๆดปๅๆ
โ โ โโโ models/ # ML ๆจกๅ
โ โโโ reports/ # ๆ็ตๅ ฑๅ
โ
โโโ another_project/
โโโ ...
ๆธ
็ๅพ่ณๆ่ผธๅบ
่ณๆๆธ
็ๅทฅๅ
ทๆฏๆด output_path๏ผ
mcp_automl_handle_missing_values(
csv_path="/data/sample_data/titanic.csv",
strategy="median",
output_path="/data/projects/my_study/data/processed/titanic_cleaned.csv"
)
โณ ็ตๆไฟ็ๆ้
| ๅฒๅญไฝ็ฝฎ | ไฟ็ๆ้ | ็จ้ |
|---|
| Redis | 7 ๅคฉ | ๅฟซ้ๅญๅใๆ่ฟๅๆ |
| MinIO | ๆฐธไน
| ๅฏฉ่จ่ฟฝ่นคใ้็พๆง |
่ถ
้ 7 ๅคฉๅพๅๅพ็ตๆ
ๅฆๆ Redis ็ตๆๅทฒ้ๆ๏ผไฝ MinIO ไปๆ๏ผ
GET /storage/minio/download?bucket=automl-results&path=eric/tableone/xxx.json
GET /storage/minio/list?bucket=automl-results&prefix=eric/
๐ ๅฎๆดไบคไปๆต็จ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Result Delivery Workflow โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ 1. ไฝฟ็จ่
่ฆๆฑๅๆ โ
โ ใๅๆ้ๅ่ณๆ็ๅญๆดปๆ
ๆณใ โ
โ โ โ
โ 2. Agent ๅท่กๅๆๅทฅๅ
ท โ
โ kaplan_meier_survival(..., save_result=True) โ
โ โ โ
โ 3. ็ตๆ่ชๅๅฒๅญ โ
โ โข Redis: stats:result:stat_survival_xxx โ
โ โข MinIO: automl-results/eric/survival/xxx.json โ
โ โ โ
โ 4. Agent ๅ็พ็ตๆ โ
โ โข ไธป่ฆๆๆจๆ่ฆ โ
โ โข ่กจๆ ผ/ๅ่กจ่ชชๆ โ
โ โข ๆไพ result_id ๅ path โ
โ โ โ
โ 5. ไฝฟ็จ่
่ฆๆฑ่ฉณ็ดฐ่ณๆ โ
โ ใ็ตฆๆๅฎๆด็ๆธๆใ โ
โ โ โ
โ 6. Agent ๅๅพๅฎๆด็ตๆ โ
โ get_analysis_result(result_id) โ
โ โ โ
โ 7. ๆไพไธ่ผ/ๅฏๅบ้ธ้
โ
โ โข JSON ๅๅง่ณๆ โ
โ โข ่ฝๆ็จๅผ็ขผ โ
โ โข MinIO ไธ่ผ้ฃ็ต โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ก ๆไฝณๅฏฆ่ธ
1. ๆฐธ้ ๆไพ result_id
ๆฏๆฌกๅๆๅพ๏ผๅ่จดไฝฟ็จ่
result_id๏ผๆนไพฟๆฅๅพๆฅ่ฉขใ
2. ๆ่ฆๅชๅ
๏ผ็ดฐ็ฏ้จ้
ๅ
ๅ็พ้่ฆๆๆจ๏ผไฝฟ็จ่
้่ฆๆๅๆไพๅฎๆดๆธๆใ
3. ๅปบ่ญฐๅฐๆก็ฎ้
ๅนซไฝฟ็จ่
ๅปบ็ซ็ต็น่ฏๅฅฝ็ๅฐๆก็ตๆงใ
4. ๆไพๅค็จฎๆ ผๅผ้ธ้
ไฝฟ็จ่
ๅฏ่ฝ้่ฆ JSONใCSVใๆ็ดๆฅ่ค่ฃฝ็่กจๆ ผใ
5. ่ชชๆไฟ็ๆ้
ๅ็ฅ Redis 7 ๅคฉ้ๅถ๏ผๅปบ่ญฐ้่ฆ็ตๆไธ่ผๅไปฝใ