[package]
name = "aether-mcp-utils"
version = "0.5.21"
edition = "2024"
description = "MCP client and server utilities for the Aether AI agent framework"
license = "MIT"
repository = "https://github.com/contextbridge/aether"
readme = "README.md"
keywords = ["mcp", "aether", "agent", "tools"]
categories = ["api-bindings", "asynchronous"]

[package.metadata.dist]
dist = false

[lib]
name = "mcp_utils"
path = "src/lib.rs"

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

[lints]
workspace = true

[features]
default = ["client"]
client = [
    "dep:aether-auth",
    "aether-auth/mcp",
    "dep:llm",
    "dep:reqwest",
    "dep:thiserror",
    "rmcp/transport-streamable-http-client-reqwest",
    "rmcp/transport-child-process",
]

[dependencies]
futures = { workspace = true }
serde = { workspace = true }
tokio = { workspace = true }
rmcp = { workspace = true }
tracing = { workspace = true }
utils = { package = "aether-utils", path = "../utils", version = "0.2.8" }
schemars = { workspace = true }

# client-only deps
aether-auth = { path = "../aether-auth", version = "0.1.6", optional = true }
llm = { package = "aether-llm", path = "../llm", optional = true, version = "0.7.16" }
serde_json = { workspace = true }
regex = { workspace = true }
reqwest = { workspace = true, optional = true }
thiserror = { workspace = true, optional = true }

[dev-dependencies]
aether-doctest = { path = "../doctest" }
tempfile = { workspace = true }
tracing-subscriber = { workspace = true }
