Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
73 lines (66 loc) · 2.84 KB
/
Copy pathCargo.toml
File metadata and controls
73 lines (66 loc) · 2.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
[package]
name = "agent-client-protocol-rmcp"
version = "5.3.0"
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
description = "rmcp integration for Agent Client Protocol MCP servers"
keywords = ["acp", "agent", "proxy", "mcp", "rmcp"]
categories = ["development-tools"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[features]
# No rmcp version is enabled by default. Each supported rmcp major version has
# its own feature and module; features are additive.
default = []
# rmcp 3.x integration in the `rmcp_3` module. Without an rmcp version feature
# the crate is empty, so the dependencies the integration uses are optional
# and enabled here.
rmcp_3 = [
"dep:rmcp_3",
"dep:agent-client-protocol",
"dep:futures",
"dep:futures-concurrency",
"dep:schemars",
"dep:serde",
"dep:serde_json",
"dep:tokio",
"dep:tokio-util",
]
# Passthrough feature for the core crate's `unstable_mcp_over_acp`. The native
# MCP-over-ACP path follows the core feature however it is enabled. On its own
# it enables nothing, because the core crate is only a dependency with an
# rmcp version feature.
unstable_mcp_over_acp = ["agent-client-protocol?/unstable_mcp_over_acp"]
[[example]]
name = "with_mcp_server"
required-features = ["rmcp_3", "unstable_mcp_over_acp"]
[[example]]
name = "stateless_native_mcp"
# Also needs the core `unstable_protocol_v2` feature, enabled by the dev-dependency below.
required-features = ["rmcp_3", "unstable_mcp_over_acp"]
[dependencies]
agent-client-protocol = { workspace = true, optional = true, features = ["schemars"] }
futures = { workspace = true, optional = true }
futures-concurrency = { workspace = true, optional = true }
# Keep the version and features in step with the workspace `rmcp` entry.
rmcp_3 = { package = "rmcp", version = "3.4.0", optional = true, default-features = false, features = ["server", "schemars"] }
schemars = { workspace = true, optional = true }
serde = { workspace = true, optional = true }
serde_json = { workspace = true, optional = true }
tokio = { workspace = true, optional = true, features = ["io-util", "macros", "rt"] }
tokio-util = { workspace = true, optional = true, features = ["rt"] }
[dev-dependencies]
# The `stateless_native_mcp` example attaches a server to a v2 proxy.
agent-client-protocol = { workspace = true, features = ["schemars", "unstable_protocol_v2"] }
# Cargo requires one name per package, so tests and examples import `rmcp_3`
# under its usual name with `extern crate rmcp_3 as rmcp;`.
rmcp_3 = { package = "rmcp", version = "3.4.0", default-features = false, features = ["macros", "server", "schemars"] }
tokio = { workspace = true, features = ["io-std", "rt-multi-thread"] }
tracing.workspace = true
tracing-subscriber.workspace = true
[lints]
workspace = true