[package]
name = "coverage-mcp"
version = "0.15.4"
edition = "2024"
rust-version = "1.85"
description = "Local-first coverage time-series dashboard and MCP server"
license = "MIT"
repository = "https://github.com/appunni-m/coverage-mcp"
homepage = "https://github.com/appunni-m/coverage-mcp"
documentation = "https://docs.rs/coverage-mcp"
readme = "README.md"
keywords = ["coverage", "mcp", "duckdb", "testing", "rust"]
categories = ["development-tools", "command-line-utilities", "database"]
default-run = "coverage-mcp"
exclude = [
"/.coverage-mcp/",
"/.github/",
"/AGENTS.md",
"/CLAUDE.md",
"/CONTRIBUTING.md",
"/Makefile",
"/docs/generated/",
"/docs/releasing.md",
"/docs/rust-migration-parity.md",
"/evals/",
"/scripts/",
"/src/bin/mcp-evals.rs",
"/src/bin/migration_status.rs",
"/tests/",
]
[lib]
name = "coverage_mcp"
path = "src/lib.rs"
[[bin]]
name = "coverage-mcp"
path = "src/main.rs"
[[bin]]
name = "migration-status"
path = "src/bin/migration_status.rs"
[features]
default = ["bundled-duckdb"]
bundled-duckdb = ["duckdb/bundled"]
[dependencies]
base64 = "0.23.1"
chrono = { version = "0.4.44", default-features = false, features = ["serde", "clock"] }
clap = { version = "4.6.4", default-features = false, features = ["derive", "env", "std", "help", "usage", "error-context"] }
duckdb = { version = "1.10505.0", default-features = false, features = ["chrono", "r2d2"] }
form_urlencoded = "1.2.2"
fs2 = "0.4.3"
futures-util = { version = "0.3.33", default-features = false, features = ["alloc"] }
http-body-util = "0.1.3"
hyper = { version = "1.9.0", features = ["http1", "server"] }
hyper-util = { version = "0.1.20", features = ["server", "tokio"] }
quick-xml = "0.41.0"
r2d2 = "0.8.10"
rustc-demangle = "0.1.28"
serde = { version = "1.0.229", features = ["derive"] }
serde_json = "1.0.151"
sha2 = { version = "0.11.0", default-features = false }
tokio = { version = "1.52.3", features = ["io-std", "io-util", "macros", "net", "process", "rt-multi-thread", "signal", "sync", "time"] }
uuid = { version = "1.23.1", features = ["v4", "serde"] }
zstd = { version = "0.13.3", default-features = false }
[dev-dependencies]
tempfile = "3.27.0"
[profile.test]
debug = 1
[profile.release]
lto = "thin"
codegen-units = 1
strip = "symbols"
[lints.rust]
future_incompatible = { level = "deny", priority = -1 }
nonstandard_style = { level = "deny", priority = -1 }
unused = { level = "deny", priority = -1 }
unsafe_code = "deny"
dead_code = "deny"
missing_docs = "warn"
[lints.clippy]
all = { level = "warn", priority = -1 }
correctness = { level = "deny", priority = -1 }
unwrap_used = "deny"
expect_used = "deny"
unwrap_in_result = "deny"
todo = "deny"
arithmetic_side_effects = "allow"
cast_possible_truncation = "allow"
cast_sign_loss = "allow"
map_unwrap_or = "allow"
needless_collect = "allow"
needless_range_loop = "allow"
redundant_clone = "allow"
unnecessary_cast = "allow"
unnecessary_to_owned = "allow"