from dedalus_mcp import get_context, tool
@tool(description="处理大型数据集")
async def process_dataset(dataset_id: str) -> dict:
ctx = get_context()
await ctx.report_progress(0, total=100, message="加载数据集")
data = load_dataset(dataset_id) # 你的代码
await ctx.report_progress(30, total=100, message="转换数据")
total_items = len(data)
if total_items:
for i, item in enumerate(data, start=1):
# 将项进度映射到 30..70 范围
progress = 30 + int((i / total_items) * 40)
await ctx.report_progress(progress, total=100)
transform(item) # 你的代码
await ctx.report_progress(70, total=100, message="保存结果")
save_results(data) # 你的代码
await ctx.report_progress(100, total=100, message="完成")
return {"processed": len(data)}