[package]
name = "rmcp-actix-web"
version = "0.8.16"
edition = "2024"
description = "actix-web transport implementations for RMCP (Rust Model Context Protocol)"
license = "MIT"
repository = "https://gitlab.com/lx-industries/rmcp-actix-web"
homepage = "https://gitlab.com/lx-industries/rmcp-actix-web"
readme = "README.md"
keywords = ["mcp", "actix", "actix-web", "protocol", "llm"]
categories = ["network-programming", "web-programming"]

[features]
default = ["transport-streamable-http"]
transport-sse = ["rmcp/transport-sse-server"]
transport-streamable-http = ["rmcp/transport-streamable-http-server"]

# Enable this if your MCP service will forward tokens to upstream APIs (non-compliant).
# This violates MCP specifications but may be necessary for proxy architectures.
# See SECURITY.md for important security implications.
authorization-token-passthrough = []

[dependencies]
rmcp = { version = "0.9.0", features = ["base64", "server"] }
actix-web = "4"
actix-rt = "2"
async-stream = "0.3"
bon = "3.7.1"
tokio = { version = "1", features = [
    "sync",
    "macros",
    "rt",
    "time",
    "process",
] }
futures = "0.3"
tracing = "0.1"
serde = { version = "1.0", features = ["derive"] }
serde_json = { version = "1.0", features = ["preserve_order"] }
tokio-util = "0.7"
sse-stream = "0.2"
bytes = "1"
tokio-stream = "0.1"
http = "1"

[dev-dependencies]
rmcp = { version = "0.9.0", default-features = false, features = [
    "base64",
    "macros",
    "server",
    "transport-sse-server",
    "transport-streamable-http-server",
] }
anyhow = "1"
reqwest = { version = "0.12", features = ["json", "stream"] }
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
chrono = "0.4"
insta = { version = "1.41", features = ["json"] }
