fabro/lib/crates/arc-workflows/Cargo.toml
Bryan Helmkamp 08461fe603 Add MCP server support to workflow engine and Playwright demo workflow
Wire MCP server configs from workflow TOML into agent sessions so
MCP tools are available to agent stages during workflow runs.

Changes:
- run_config.rs: add mcp_servers HashMap to WorkflowRunConfig
- backend.rs: AgentApiBackend.with_mcp_servers() passes configs to SessionConfig
- run.rs: extract mcp_servers from RunConfig and pass to backend
- demo/mod.rs: add default mcp_servers field to struct literals

New workflow: arc/workflows/playwright-demo/
- Runs on Daytona with daytona-medium snapshot
- Configures Playwright MCP as a sandbox transport (port 3100)
- Agent browses Hacker News, takes screenshots at each step
- asset_globs captures screenshots/** into logs directory

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 08:05:12 -04:00

65 lines
1.6 KiB
TOML

[package]
name = "arc-workflows"
edition.workspace = true
version.workspace = true
license.workspace = true
description = "A DOT-based pipeline runner for multi-stage AI workflows"
repository = "https://github.com/brynary/arc"
keywords = ["llm", "ai", "pipeline", "workflow", "dot"]
categories = ["development-tools"]
readme = "README.md"
[lib]
doctest = false
[features]
default = []
exedev = ["dep:arc-exe"]
[dependencies]
clap.workspace = true
anyhow.workspace = true
dotenvy.workspace = true
arc-agent = { path = "../arc-agent" }
arc-exe = { path = "../arc-exe", optional = true }
arc-mcp = { path = "../arc-mcp" }
arc-github = { path = "../arc-github" }
arc-util = { path = "../arc-util" }
arc-git-storage = { path = "../arc-git-storage" }
arc-llm = { path = "../arc-llm" }
thiserror.workspace = true
serde.workspace = true
serde_json.workspace = true
tokio.workspace = true
ulid.workspace = true
uuid.workspace = true
rand.workspace = true
async-trait.workspace = true
futures.workspace = true
chrono = { workspace = true, features = ["serde"] }
nom = "7"
toml.workspace = true
dirs = "6"
dialoguer.workspace = true
daytona-sdk.workspace = true
daytona-api-client.workspace = true
base64.workspace = true
regex.workspace = true
scopeguard = "1"
shlex = "1"
strsim = "0.11"
git2.workspace = true
console.workspace = true
indicatif.workspace = true
tokio-util.workspace = true
tracing.workspace = true
walkdir.workspace = true
reqwest.workspace = true
[dev-dependencies]
arc-mcp = { path = "../arc-mcp" }
mockito = "1"
tokio = { workspace = true, features = ["test-util", "macros"] }
tempfile = "3"
dotenvy.workspace = true
assert_cmd = "2"
predicates = "3"