[package]
name = "assay-mcp-server"
version.workspace = true
edition = "2021"
license.workspace = true
repository.workspace = true
readme.workspace = true
description = "MCP server integration for Assay"

[lints]
workspace = true

[features]
experimental = ["assay-core/experimental"]
# Test-only: adds assay_test_outbound tool for E6a.3 no-pass-through E2E test.
# Use: cargo test -p assay-mcp-server --features test-outbound
test-outbound = []

[dependencies]
anyhow.workspace = true
clap.workspace = true
serde = { workspace = true, features = ["std"] }
serde_json = { workspace = true, features = ["std"] }
serde_yaml.workspace = true
tokio = { workspace = true, features = ["full", "fs"] }
assay-core.workspace = true
assay-common = { workspace = true, features = ["std"] }
assay-metrics.workspace = true
sha2.workspace = true
hex.workspace = true
moka = { version = "0.12", features = ["sync"] }

tracing.workspace = true
tracing-subscriber = { version = "0.3", features = ["env-filter", "json", "time"] }
jsonwebtoken = { version = "10.3", default-features = false, features = ["rust_crypto", "use_pem"] }
base64 = "0.22"
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "json"] }
url = { version = "2.5", features = ["serde"] }

[dev-dependencies]
anyhow.workspace = true
serde_json = { workspace = true, features = ["std"] }
tokio = { workspace = true, features = ["full"] }
tempfile.workspace = true
wiremock = "0.6"
jsonwebtoken = { version = "10.3", default-features = false, features = ["rust_crypto", "use_pem"] }
base64 = "0.22"
# uuid = { version = "1.0", features = ["v4"] } # Removed in favor of SystemTime
rsa = "0.9"
rand = "0.8"
