[package]
edition = "2021"
rust-version = "1.80.0"
name = "rust-mcp-sdk"
version = "2.0.0"
authors = ["Ali Hashemi"]
build = false
exclude = [
"assets/",
"tests/",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "An asynchronous SDK and framework for building MCP-Servers and MCP-Clients, leveraging the rust-mcp-schema for type safe MCP Schema Objects."
documentation = "https://docs.rs/rust-mcp-sdk"
readme = "README.md"
keywords = [
"rust-mcp-stack",
"model",
"context",
"protocol",
"sdk",
]
categories = [
"data-structures",
"parser-implementations",
"parsing",
]
license = "MIT"
repository = "https://github.com/rust-mcp-stack/rust-mcp-sdk"
[package.metadata.typos.default]
extend-ignore-re = ["clonable"]
[features]
auth = [
"url",
"jsonwebtoken/aws_lc_rs",
"reqwest",
]
client = []
default = [
"client",
"server",
"auth",
"macros",
"stdio",
"sse",
"streamable-http",
]
macros = ["rust-mcp-macros/sdk"]
server = []
sse = [
"rust-mcp-transport/sse",
"http-body",
"http-body-util",
"tokio-stream",
]
stdio = ["rust-mcp-transport/stdio"]
streamable-http = [
"rust-mcp-transport/streamable-http",
"http-body",
"http-body-util",
"tokio-stream",
"reqwest",
]
[lib]
name = "rust_mcp_sdk"
path = "src/lib.rs"
[[example]]
name = "hello-world-mcp-server-stdio"
path = "examples/hello-world-mcp-server-stdio.rs"
[[example]]
name = "hello-world-mcp-server-stdio-core"
path = "examples/hello-world-mcp-server-stdio-core.rs"
[[example]]
name = "hello-world-server-streamable-http"
path = "examples/hello-world-server-streamable-http.rs"
[[example]]
name = "hello-world-server-streamable-http-core"
path = "examples/hello-world-server-streamable-http-core.rs"
[[example]]
name = "mcp-client-with-oauth"
path = "examples/mcp-client-with-oauth.rs"
[[example]]
name = "mcp-server-oauth-remote"
path = "examples/mcp-server-oauth-remote.rs"
[[example]]
name = "quick-start-client-stdio"
path = "examples/quick-start-client-stdio.rs"
[[example]]
name = "quick-start-server-stdio"
path = "examples/quick-start-server-stdio.rs"
[[example]]
name = "quick-start-streamable-http"
path = "examples/quick-start-streamable-http.rs"
[[example]]
name = "simple-mcp-client-sse"
path = "examples/simple-mcp-client-sse.rs"
[[example]]
name = "simple-mcp-client-sse-core"
path = "examples/simple-mcp-client-sse-core.rs"
[[example]]
name = "simple-mcp-client-stdio"
path = "examples/simple-mcp-client-stdio.rs"
[[example]]
name = "simple-mcp-client-stdio-core"
path = "examples/simple-mcp-client-stdio-core.rs"
[[example]]
name = "simple-mcp-client-streamable-http"
path = "examples/simple-mcp-client-streamable-http.rs"
[[example]]
name = "simple-mcp-client-streamable-http-core"
path = "examples/simple-mcp-client-streamable-http-core.rs"
[[example]]
name = "streamable_http_healthcheck"
path = "examples/streamable_http_healthcheck.rs"
[dependencies.async-trait]
version = "0.1"
[dependencies.base64]
version = "0.23"
[dependencies.bytes]
version = "1.10"
[dependencies.futures]
version = "0.3"
[dependencies.hmac]
version = "0.12"
[dependencies.http]
version = "1.3"
[dependencies.http-body]
version = "1.0"
optional = true
[dependencies.http-body-util]
version = "0.1"
optional = true
[dependencies.jsonwebtoken]
version = "10.1"
features = ["aws_lc_rs"]
optional = true
[dependencies.reqwest]
version = "0.12"
features = [
"stream",
"rustls-tls",
"json",
"cookies",
"multipart",
"stream",
"rustls-tls",
"json",
"cookies",
"multipart",
]
optional = true
default-features = false
[dependencies.rust-mcp-macros]
version = "2.0.0"
optional = true
default-features = false
[dependencies.rust-mcp-schema]
version = "2.0.0"
default-features = false
[dependencies.rust-mcp-transport]
version = "2.0.0"
default-features = false
[dependencies.serde]
version = "1.0"
features = [
"derive",
"serde_derive",
]
[dependencies.serde_json]
version = "1.0"
[dependencies.sha2]
version = "0.10"
[dependencies.thiserror]
version = "2.0"
[dependencies.time]
version = "0.3.0"
features = [
"formatting",
"local-offset",
]
[dependencies.tokio]
version = "1.4"
features = ["full"]
[dependencies.tokio-stream]
version = "0.1"
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.url]
version = "2.5"
features = ["serde"]
optional = true
[dependencies.uuid]
version = "1"
features = ["v4"]
[dev-dependencies.colored]
version = "3.0.0"
[dev-dependencies.reqwest]
version = "0.12"
features = [
"stream",
"rustls-tls",
"json",
"cookies",
"multipart",
"json",
]
default-features = false
[dev-dependencies.tempfile]
version = "3.23.0"
[dev-dependencies.tokio]
version = "1.4"
features = [
"full",
"full",
"test-util",
]
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"std",
"fmt",
"env-filter",
"std",
"fmt",
]
[dev-dependencies.wiremock]
version = "0.6"
[lints.clippy]
dbg_macro = "deny"
todo = "deny"