[[bench]]
harness = false
name = "introspection"
path = "benches/introspection.rs"
[[bench]]
harness = false
name = "runtime_proxy"
path = "benches/runtime_proxy.rs"
[[bin]]
name = "turbomcp-proxy"
path = "src/main.rs"
required-features = ["cli"]
[dependencies.async-trait]
version = "0.1"
[dependencies.atty]
optional = true
version = "0.2"
[dependencies.axum]
optional = true
version = "0.8"
[dependencies.bytes]
version = "1.5"
[dependencies.chrono]
optional = true
version = "0.4"
[dependencies.clap]
features = ["derive", "cargo", "env"]
optional = true
version = "4.5"
[dependencies.colored]
optional = true
version = "2.0"
[dependencies.convert_case]
optional = true
version = "0.6"
[dependencies.dashmap]
version = "6.1"
[dependencies.handlebars]
optional = true
version = "6.0"
[dependencies.ipnetwork]
version = "0.20"
[dependencies.jsonwebtoken]
features = ["aws_lc_rs"]
optional = true
version = "10.1"
[dependencies.parking_lot]
version = "0.12"
[dependencies.proc-macro2]
optional = true
version = "1"
[dependencies.reqwest]
features = ["json", "stream"]
optional = true
version = "0.12"
[dependencies.schemars]
optional = true
version = "1.0"
[dependencies.secrecy]
version = "0.10"
[dependencies.serde]
features = ["derive"]
version = "1.0"
[dependencies.serde_json]
version = "1.0"
[dependencies.syn]
features = ["parsing", "full"]
optional = true
version = "2"
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
features = ["full"]
version = "1.47"
[dependencies.tokio-tungstenite]
optional = true
version = "0.28"
[dependencies.tower]
optional = true
version = "0.5"
[dependencies.tower-http]
features = ["cors", "trace"]
optional = true
version = "0.6"
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
features = ["env-filter"]
optional = true
version = "0.3"
[dependencies.turbomcp-auth]
optional = true
version = "2.2.2"
[dependencies.turbomcp-client]
version = "2.2.2"
[dependencies.turbomcp-protocol]
version = "2.2.2"
[dependencies.turbomcp-server]
optional = true
version = "2.2.2"
[dependencies.turbomcp-transport]
features = ["http", "tcp", "unix", "websocket", "jwt-validation"]
version = "2.2.2"
[dependencies.url]
version = "2.5"
[dependencies.utoipa]
features = ["axum_extras", "macros"]
optional = true
version = "5.4"
[dependencies.utoipa-swagger-ui]
features = ["axum"]
optional = true
version = "7.0"
[dependencies.uuid]
features = ["v4"]
version = "1.6"
[dev-dependencies.criterion]
features = ["async_tokio"]
version = "0.5"
[dev-dependencies.pretty_assertions]
version = "1.4"
[dev-dependencies.proptest]
version = "1.0"
[dev-dependencies.tempfile]
version = "3.8"
[dev-dependencies.tokio-test]
version = "0.4"
[[example]]
name = "runtime_proxy"
path = "examples/runtime_proxy.rs"
[[example]]
name = "schema_export"
path = "examples/schema_export.rs"
[[example]]
name = "tcp_backend"
path = "examples/tcp_backend.rs"
[[example]]
name = "unix_socket_backend"
path = "examples/unix_socket_backend.rs"
[features]
adapters = ["rest", "graphql"]
auth = ["dep:turbomcp-auth", "dep:jsonwebtoken"]
cli = ["clap", "colored", "atty", "tracing-subscriber"]
codegen = ["handlebars", "convert_case", "chrono", "syn", "proc-macro2"]
default = ["cli", "runtime", "introspection"]
full = ["introspection", "runtime", "codegen", "schema", "cli", "auth", "adapters"]
graphql = ["axum", "tower", "tower-http"]
introspection = []
rest = ["utoipa", "utoipa-swagger-ui", "axum", "tower", "tower-http"]
runtime = ["axum", "tower", "tower-http", "reqwest", "tokio-tungstenite"]
schema = ["schemars"]
[lib]
name = "turbomcp_proxy"
path = "src/lib.rs"
[lints.clippy]
assertions_on_constants = "allow"
cast_possible_truncation = "allow"
cast_possible_wrap = "allow"
cast_sign_loss = "allow"
const_is_empty = "allow"
items_after_statements = "allow"
match_same_arms = "allow"
missing_const_for_fn = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
return_self_not_must_use = "allow"
similar_names = "allow"
single_match_else = "allow"
struct_excessive_bools = "allow"
too_many_lines = "allow"
uninlined_format_args = "allow"
[lints.rust.unexpected_cfgs]
check-cfg = ["cfg(http)", "cfg(websocket)", "cfg(tcp)", "cfg(unix)", "cfg(auth)", "cfg(dpop)", "cfg(docsrs)"]
level = "warn"
priority = 0
[package]
authors = ["TurboMCP Team"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
categories = ["command-line-utilities", "web-programming", "development-tools"]
description = "Universal MCP adapter/generator - introspection, proxying, and code generation for any MCP server"
edition = "2024"
keywords = ["mcp", "proxy", "adapter", "code-generation", "introspection"]
license = "MIT OR Apache-2.0"
name = "turbomcp-proxy"
readme = "README.md"
repository = "https://github.com/turbomcp/turbomcp"
resolver = "2"
rust-version = "1.89.0"
version = "2.2.2"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[[test]]
name = "comprehensive_tests"
path = "tests/comprehensive_tests.rs"
[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"
[[test]]
name = "manual_integration"
path = "tests/manual_integration.rs"
[[test]]
name = "runtime_test"
path = "tests/runtime_test.rs"
[[test]]
name = "ssrf_protection_tests"
path = "tests/ssrf_protection_tests.rs"