[package]
name = "aether-mcp-servers"
version = "0.4.21"
edition = "2024"
description = "Built-in MCP tool servers for the Aether AI agent framework"
license = "MIT"
repository = "https://github.com/contextbridge/aether"
homepage = "https://github.com/contextbridge/aether"
readme = "README.md"
keywords = ["mcp", "aether", "agent", "tools"]
categories = ["development-tools"]

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

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

[package.metadata.dist]
dist = false

[lints]
workspace = true

[features]
default = ["coding", "skills", "tasks", "subagents", "plan"]
test-helpers = []
file-ops = ["dep:thiserror"]
coding = [
    "file-ops",
    "dep:aether-project",
    "dep:aether-lspd",
    "dep:futures",
    "dep:glob",
    "dep:globset",
    "dep:grep",
    "dep:ignore",
    "dep:ast-grep-core",
    "dep:ast-grep-language",
    "dep:regex",
    "dep:tracing",
    "dep:thiserror",
    "dep:lsp-types",
    "dep:reqwest",
    "dep:uuid",
    "dep:chrono",
    "dep:htmd",
    "dep:dom_smoothie",
    "dep:url",
]
skills = [
    "dep:aether-project",
    "dep:chrono",
    "dep:regex",
    "dep:serde_yml",
    "dep:tracing",
]
tasks = [
    "dep:chrono",
    "dep:tempfile",
    "dep:thiserror",
]
plan = ["file-ops"]
subagents = [
    "coding",
    "skills",
    "tasks",
    "survey",
    "plan",
    "dep:aether-auth",
    "dep:aether-core",
    "dep:aether-project",
    "dep:llm",
    "dep:futures",
    "dep:tracing",
]
survey = []
all = ["coding", "skills", "tasks", "subagents", "survey", "plan"]
stdio = ["coding", "skills", "tasks", "survey", "subagents", "plan"]

[dependencies]
# Always required
serde = { workspace = true }
serde_json = { workspace = true }
tokio = { workspace = true }
rmcp = { workspace = true }
schemars = { workspace = true }
clap = { workspace = true, features = ["env"] }
mcp_utils = { package = "aether-mcp-utils", path = "../mcp-utils", version = "0.5.19" }
utils = { package = "aether-utils", path = "../utils", version = "0.2.8" }
aether-lspd = { path = "../aether-lspd", optional = true, version = "0.1.19" }
futures = { workspace = true, optional = true }
glob = { workspace = true, optional = true }
globset = { workspace = true, optional = true }
grep = { workspace = true, optional = true }
ignore = { workspace = true, optional = true }
ast-grep-core = { workspace = true, optional = true }
ast-grep-language = { workspace = true, optional = true }
regex = { workspace = true, optional = true }
tracing = { workspace = true, optional = true }
thiserror = { workspace = true, optional = true }
lsp-types = { workspace = true, optional = true }
reqwest = { workspace = true, optional = true }
uuid = { workspace = true, optional = true }
chrono = { workspace = true, optional = true }
htmd = { workspace = true, optional = true }
dom_smoothie = { workspace = true, optional = true }
url = { workspace = true, optional = true }

# skills feature
serde_yml = { workspace = true, optional = true }

# tasks feature
tempfile = { workspace = true, optional = true }

# subagents feature
aether-auth = { path = "../aether-auth", optional = true, version = "0.1.6", features = ["keyring"] }
aether-core = { package = "aether-agent-core", path = "../aether-core", optional = true, version = "0.6.16" }
aether-project = { path = "../aether-project", optional = true, version = "0.5.16" }
llm = { package = "aether-llm", path = "../llm", optional = true, version = "0.7.14" }

[dev-dependencies]
tempfile = { workspace = true }
aether-lspd = { path = "../aether-lspd", features = ["testing"], version = "0.1.19" }
mcp-servers = { package = "aether-mcp-servers", path = ".", features = ["test-helpers"] }

[[bin]]
name = "mcp-servers-stdio"
path = "src/bin/stdio.rs"
required-features = ["stdio"]

[[example]]
name = "lsp_diagnostics"
path = "examples/lsp_diagnostics.rs"
required-features = ["coding"]
