[package]
name = "jacs-mcp"
version = "0.9.4"
edition = "2024"
rust-version = "1.93"
description = "MCP server for JACS: data provenance and cryptographic signing of agent state"
readme = "README.md"
license = "Apache-2.0 OR MIT"
homepage = "https://humanassisted.github.io/JACS"
repository = "https://github.com/HumanAssisted/JACS"
authors = ["JACS Contributors"]
keywords = ["mcp", "jacs", "ai", "agents", "signing"]
categories = ["cryptography", "development-tools"]

[features]
default = ["mcp", "attestation", "core-tools"]
mcp = ["dep:rmcp", "dep:tokio"]
attestation = ["jacs/attestation", "jacs-binding-core/attestation"]

# Tool family feature flags (Issue 010 / TASK_039).
# core-tools enables all standard tool families by default.
core-tools = ["state-tools", "document-tools", "trust-tools", "audit-tools",
              "memory-tools", "search-tools", "key-tools"]
state-tools = []
document-tools = []
trust-tools = []
audit-tools = []
memory-tools = []
search-tools = []
key-tools = []

# Advanced tool families — require explicit opt-in via feature flag or runtime profile.
agreement-tools = ["jacs/agreements"]
messaging-tools = []
a2a-tools = ["jacs/a2a"]
attestation-tools = ["attestation"]

# Everything: all core + advanced families.
full-tools = ["core-tools", "agreement-tools", "messaging-tools",
              "a2a-tools", "attestation-tools"]

[dependencies]
anyhow = "1"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["fmt", "env-filter"] }
rmcp = { version = "0.12", features = ["client", "server", "transport-io", "transport-child-process", "macros"], optional = true }
tokio = { version = "1", features = ["rt-multi-thread", "macros", "process", "time"], optional = true }
jacs = { version = "0.9.4", path = "../jacs", default-features = true }
jacs-binding-core = { version = "0.9.4", path = "../binding-core", features = ["a2a"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
schemars = "1.0"
uuid = { version = "1", features = ["v4"] }
sha2 = "0.10.8"
chrono = { version = "0.4", features = ["serde"] }

[dev-dependencies]
assert_cmd = "2"
predicates = "3.1"
tempfile = "3"
