sqlserver-mcp 0.5.2

SQL Server 2025/2022/2019/2017 - master/msdb/sandbox combined catalog MCP server, generated by mcpify.
Documentation
[package]
name = "sqlserver-mcp"
version = "0.5.2"
edition = "2024"
description = "SQL Server 2025/2022/2019/2017 - master/msdb/sandbox combined catalog MCP server, generated by mcpify."
license = "MIT"
repository = "https://github.com/guercheLE/sqlserver-mcp-rs"
readme = "README.md"
authors = ["Luciano Evaristo Guerche (Gorše)"]
keywords = ["mcp", "sqlserver", "cli", "api"]
categories = ["command-line-utilities", "api-bindings"]
publish = true
exclude = [
    "/.github",
    "/.mcpify",
    "/docs",
    "/scripts",
    "/openapi",
    "/Dockerfile",
    "/docker-compose.yml",
    "/.dockerignore",
    "/.env.example",
    "/mcpify.yaml",
]

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

[[bin]]
name = "sqlserver-mcp"
path = "src/main.rs"

[[bin]]
name = "sqlserver-mcp-populate-embeddings"
path = "src/bin/populate_embeddings.rs"

[[bin]]
name = "sqlserver-mcp-healthcheck"
path = "src/bin/healthcheck.rs"

[dependencies]
tokio = { version = "1", features = ["full"] }
async-trait = "0.1"
rmcp = { version = "2", features = ["server", "transport-io", "transport-streamable-http-server"] }
axum = "0.8"
# rustls-tls-native-roots (on top of rustls-tls's webpki-roots) makes
# rustls also trust certs from the OS trust store, not just Mozilla's
# bundled CA list — without it, a corporate TLS-inspecting proxy's
# injected root CA (trusted by Windows/macOS because it's typically
# installed via MDM/group policy, but invisible to rustls) makes every
# HTTPS call rustls makes fail with a handshake/certificate error, even
# though native TLS clients on the same machine work fine. Cargo unifies
# features across the whole build for a shared dependency, so this also
# covers fastembed's hf-hub-rustls-tls download client below (Cargo.lock
# only ever holds one compiled `reqwest`), without adding an openssl-sys
# build dependency the way native-tls would.
reqwest = { version = "0.12", features = ["json", "rustls-tls", "rustls-tls-native-roots"], default-features = false }
# Explicit rustls crypto provider: reqwest itself installs one lazily, but
# opentelemetry-otlp's HTTP exporter pulls in its own reqwest (via a
# different version) that doesn't, and panics at first use if nothing
# installed a process-wide default first. Installed in main() below.
rustls = { version = "0.23", default-features = false, features = ["aws_lc_rs"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_yaml = "0.9"
clap = { version = "4", features = ["derive"] }
rusqlite = { version = "0.32", features = ["bundled", "load_extension", "backup"] }
sqlite-vec = "0.1"
zstd = "0.13"
jsonschema = "0.46"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["json", "env-filter"] }
tracing-opentelemetry = "0.33"
opentelemetry = "0.32"
opentelemetry_sdk = "0.32"
opentelemetry-otlp = "0.32"
# default-features disabled to select rustls-tls variants instead of the
# native-tls ones (default): native-tls pulls in openssl-sys, which needs
# system OpenSSL dev headers that the Docker builder image doesn't have.
fastembed = { version = "5", default-features = false, features = ["ort-download-binaries-rustls-tls", "hf-hub-rustls-tls", "image-models"] }
keyring = "4"
# sha1 is pinned to 0.10, not 0.11 like sha2, because it's used for OAuth1
# RSA-SHA1 signing (auth/strategies/oauth1.rs) via `rsa 0.9`'s
# `Pkcs1v15Sign::new::<D>()`, which requires `D: Digest` from `digest ^0.10.5`
# — `sha1 0.11` implements the newer, incompatible `digest 0.11` traits.
rsa = "0.9"
sha1 = { version = "0.10", features = ["oid"] }
sha2 = "0.11"
aes-gcm = "0.10"
oauth2 = "5"
inquire = "0.7"
anyhow = "1"
thiserror = "2"
url = "2"
uuid = { version = "1", features = ["v4"] }
base64 = "0.22"
percent-encoding = "2"
dhat = { version = "0.3", optional = true }
tiberius = { version = "0.12.3", default-features = false, features = ["tds73", "tokio", "rustls", "winauth", "chrono", "bigdecimal"] }
bb8-tiberius = { version = "0.16.0", features = ["tds73", "tokio", "chrono"] }
bb8 = "0.9.1"
tokio-util = { version = "0.7.18", default-features = false, features = ["compat"] }
chrono = "0.4.45"

[features]
# Opt-in heap profiling via dhat-rs (scripts/profile-heap.sh) — a pure-library
# profiler with no external OS tool needed, so it works identically on
# every platform. Zero cost when the feature isn't enabled.
profiling = ["dep:dhat"]

[profile.dist]
inherits = "release"
# Not "thin": GitHub's macOS runner ships an Xcode/libLTO too old to parse
# ThinLTO bitcode from current rustc's LLVM version, which fails the
# aarch64-apple-darwin dist build at link time ("could not parse bitcode
# object file ... Unknown attribute kind"). Release-build correctness
# shouldn't depend on the CI image's Xcode keeping pace with rustc's LLVM.
lto = false

[dev-dependencies]
tempfile = "3"
rand = "0.8"