[package]
name = "mcpkit"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
description = "Rust SDK for the Model Context Protocol (MCP) - the official facade crate providing unified access to all mcpkit functionality"
repository.workspace = true
homepage.workspace = true
documentation.workspace = true
keywords = ["mcp", "mcp-protocol", "ai", "llm", "sdk"]
categories = ["api-bindings", "asynchronous", "network-programming"]
readme = "../README.md"

[dependencies]
# Internal crates - path takes precedence locally, version used for publishing
mcpkit-core = { version = "0.2.4", path = "../crates/mcpkit-core" }
mcpkit-transport = { version = "0.2.4", path = "../crates/mcpkit-transport" }
mcpkit-server = { version = "0.2.4", path = "../crates/mcpkit-server" }
mcpkit-client = { version = "0.2.4", path = "../crates/mcpkit-client" }
mcpkit-macros = { version = "0.2.4", path = "../crates/mcpkit-macros" }

[features]
default = ["server", "client", "tokio-runtime"]
server = []
client = []
tokio-runtime = ["mcpkit-transport/tokio-runtime", "mcpkit-server/tokio-runtime", "mcpkit-client/tokio-runtime"]
websocket = ["mcpkit-transport/websocket"]
http = ["mcpkit-transport/http"]
full = ["websocket", "http"]

[dev-dependencies]
serde = { workspace = true }
serde_json = "1.0"
tokio = { version = "1", features = ["rt-multi-thread", "macros", "net", "time"] }
tokio-tungstenite = { workspace = true }
futures = "0.3"
reqwest = { workspace = true }
axum = { workspace = true }

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[lints]
workspace = true
