[dependencies.axum]
features = []
optional = true
version = "0.8"
[dependencies.base64]
optional = true
version = "0.21"
[dependencies.chrono]
features = ["serde"]
version = "0.4.38"
[dependencies.futures]
version = "0.3"
[dependencies.paste]
optional = true
version = "1"
[dependencies.pin-project-lite]
version = "0.2"
[dependencies.rand]
optional = true
version = "0.9"
[dependencies.reqwest]
default-features = false
features = ["json", "stream", "rustls-tls"]
optional = true
version = "0.12"
[dependencies.rmcp-macros]
optional = true
version = "0.1.5"
[dependencies.schemars]
optional = true
version = "0.8"
[dependencies.serde]
features = ["derive", "rc"]
version = "1.0"
[dependencies.serde_json]
version = "1.0"
[dependencies.sse-stream]
optional = true
version = "0.1.3"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
features = ["sync", "macros", "rt", "time"]
version = "1"
[dependencies.tokio-stream]
optional = true
version = "0.1"
[dependencies.tokio-util]
version = "0.7"
[dependencies.tower-service]
optional = true
version = "0.3"
[dependencies.tracing]
version = "0.1"
[dependencies.url]
optional = true
version = "2.4"
[dev-dependencies.anyhow]
version = "1.0"
[dev-dependencies.schemars]
version = "0.8"
[dev-dependencies.tokio]
features = ["full"]
version = "1"
[dev-dependencies.tracing-subscriber]
features = ["env-filter", "std", "fmt"]
version = "0.3"
[features]
client = []
default = ["base64", "macros", "server"]
macros = ["dep:rmcp-macros", "dep:paste"]
server = ["transport-async-rw", "dep:schemars"]
tower = ["dep:tower-service"]
transport-async-rw = ["tokio/io-util", "tokio-util/codec"]
transport-child-process = ["transport-async-rw", "tokio/process"]
transport-io = ["transport-async-rw", "tokio/io-std"]
transport-sse = ["dep:reqwest", "dep:sse-stream", "dep:url"]
transport-sse-server = ["transport-async-rw", "dep:axum", "dep:rand", "dep:tokio-stream"]
[lib]
name = "rmcp"
path = "src/lib.rs"
[package]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
description = "Rust SDK for Model Context Protocol"
documentation = "https://docs.rs/rmcp"
edition = "2024"
homepage = "https://github.com/4t145/rmcp"
license = "MIT/Apache-2.0"
name = "rmcp"
readme = "README.md"
repository = "https://github.com/4t145/rmcp/"
resolver = "2"
version = "0.1.5"
[package.metadata.docs.rs]
all-features = true
[[test]]
name = "test_complex_schema"
path = "tests/test_complex_schema.rs"
[[test]]
name = "test_tool_handler"
path = "tests/test_tool_handler.rs"
[[test]]
name = "test_tool_macros"
path = "tests/test_tool_macros.rs"
required-features = ["server"]
[[test]]
name = "test_with_js"
path = "tests/test_with_js.rs"
required-features = ["server", "transport-sse-server"]
[[test]]
name = "test_with_python"
path = "tests/test_with_python.rs"
required-features = ["server", "client", "transport-sse-server", "transport-sse", "transport-child-process"]