Workflow làm công cụ MCP¶
Superstep cũng là một MCP server. Bật cho một workflow là các client MCP như Claude Desktop, Cursor, Claude Code hay agent khác gọi được workflow đó như một công cụ. Đây là chiều ngược lại với MCP server, nơi workflow của bạn gọi công cụ của các server bạn thêm vào.
Bật¶
- Mở workflow, chọn Thêm > API.
- Ở thẻ Token, tạo một token. Client xác thực bằng token này, giống hệt API công khai.
- Ở thẻ MCP, bật Cung cấp dưới dạng công cụ MCP. Mọi workflow đều tắt cho tới khi bạn bật, và chỉ người được quản lý token của workflow mới đổi được.
- Chọn client và sao chép cấu hình. Ngay sau khi tạo token, đoạn cấu hình đã
chứa sẵn token; nếu không, hãy thay
<token>.
Server nằm tại https://<studio của bạn>/mcp (Streamable HTTP, phản hồi JSON,
không có session). Gửi token qua Authorization: Bearer wft_... hoặc
X-Workflow-Token: wft_....
{
"mcpServers": {
"superstep-refunds": {
"url": "https://superstep.example.com/mcp",
"headers": { "Authorization": "Bearer wft_..." }
}
}
}
Claude Desktop chỉ khởi chạy server cục bộ, nên cấu hình của nó chạy
mcp-remote để tới server HTTP; Claude Code nhận URL trực tiếp:
claude mcp add --transport http superstep-refunds https://superstep.example.com/mcp \
--header "Authorization: Bearer wft_..."
Công cụ¶
Mỗi token thuộc về một workflow, nên client thấy ba công cụ:
| Công cụ | Chức năng |
|---|---|
run_<tên workflow> |
Chạy phiên bản đã lưu mới nhất. Input schema là các trường state của workflow; tham số là input của run. Trả về kết quả run: status, final_state, error, waiting, metrics. |
get_run |
Trạng thái và kết quả của một run (run_id). |
resume_run |
Trả lời node Human mà run đang chờ (run_id, response: văn bản, hoặc true / false để duyệt / từ chối) rồi chờ run dừng lại lần nữa. |
Run là run API bình thường: hiện trong lịch sử của workflow với nguồn API, tính
vào giới hạn tốc độ của token (STUDIO_TRIGGER_RATE_LIMIT) và qua cùng kiểm
tra input. Một lần gọi công cụ chờ tối đa STUDIO_SYNC_WAIT_MAX giây; run vẫn
đang chạy khi đó trả về status: running kèm run_id, client hỏi lại bằng
get_run.
Node Human¶
Run tới một node Human trả về status: waiting kèm run_id và lời nhắc của
node trong waiting. Client (hoặc người dùng client) trả lời bằng
resume_run; run tiếp tục từ checkpoint. Mọi người cũng trả lời được ngay
trong Superstep, trong editor hoặc hộp thư, như mọi run đang chờ.
Lỗi¶
Lỗi trả về dưới dạng lỗi công cụ (isError: true) với nội dung là đối tượng
lỗi chung, ví dụ {"error": {"code": "RUN_NOT_WAITING", ...}}. Yêu cầu không
có token hợp lệ bị từ chối trước MCP với 401 TRIGGER_TOKEN_INVALID; workflow
chưa bật trả về 403 MCP_SERVER_DISABLED.
Chế độ demo¶
Trong bản demo công khai, tài khoản khách không tạo được token hay đổi cài đặt, nên không cung cấp được workflow.