release/1.3.1
toml 50 lines 2.2 KB
Raw
1 [package]
2 name = "ed-mcp"
3 description = "MCP for Onde agents: server configuration, tool namespacing, timeouts, progress and cancellation over rmcp, the official Rust SDK."
4 keywords = ["mcp", "llm", "agent", "onde"]
5 categories = ["asynchronous"]
6 version.workspace = true
7 edition = "2024"
8 rust-version.workspace = true
9 license.workspace = true
10 authors.workspace = true
11 repository.workspace = true
12 homepage.workspace = true
13
14 [dependencies]
15 agent-client-protocol = { workspace = true, optional = true }
16 ed-agent = { workspace = true, optional = true }
17 async-trait = { workspace = true, optional = true }
18 http = "1"
19 rmcp = { workspace = true, features = ["client", "transport-streamable-http-client-reqwest", "reqwest"] }
20 tokio = { workspace = true, features = ["sync", "time", "process", "macros", "io-std", "io-util", "rt"] }
21 tokio-util.workspace = true
22 futures.workspace = true
23 serde_json.workspace = true
24 anyhow.workspace = true
25 tracing.workspace = true
26
27 # Spawning an MCP server as a child process needs `exec`, which Apple hides on tvOS (`libc`
28 # has no `execv` there, so `nix` under `process-wrap` doesn't compile). The stdio transport
29 # is everywhere else.
30 [target.'cfg(not(target_os = "tvos"))'.dependencies]
31 rmcp = { workspace = true, features = ["transport-child-process"] }
32
33 [features]
34 # Map ACP `session/new` MCP server lists (`McpToolset::connect`, `ServerSpec::from_acp`).
35 # Pulls in `agent-client-protocol`; `ed-acp` enables it.
36 acp = ["dep:agent-client-protocol"]
37 # `McpExecutor`: an `McpToolset` as Ed tools. Pulls in `ed-agent` (and with it `onde`).
38 agent = ["dep:ed-agent", "dep:async-trait"]
39 # A scriptable MCP server for tests: `echo`, `slow_progress`, `wait_for_cancel`, and the
40 # demucs-shaped `list_models` / `separate_stems`.
41 test-server = []
42
43 [dev-dependencies]
44 # `elicitation` adds the server peer's `create_elicitation`, so the in-process test server can
45 # ask the client for input and exercise the forwarding hook.
46 rmcp = { workspace = true, features = ["server", "transport-streamable-http-server", "elicitation"] }
47 axum = "0.8"
48 tokio = { workspace = true, features = ["net", "rt-multi-thread"] }
49 # Run the feature-gated code's tests under a plain `cargo test`.
50 ed-mcp = { path = ".", features = ["acp", "agent", "test-server"] }