67 lines
2.1 KiB
TOML
67 lines
2.1 KiB
TOML
[package]
|
|
name = "mcp-streamable-proxy"
|
|
version = "0.1.28"
|
|
edition = "2024"
|
|
authors = ["nuwax-ai"]
|
|
description = "Streamable HTTP proxy implementation for MCP protocol using rmcp 0.13"
|
|
license = "MIT OR Apache-2.0"
|
|
repository = "https://github.com/nuwax-ai/mcp-proxy"
|
|
keywords = ["mcp", "proxy", "http", "protocol"]
|
|
categories = ["web-programming", "network-programming"]
|
|
|
|
[dependencies]
|
|
# 共享类型和工具
|
|
mcp-common = { version = "0.1.28", path = "../mcp-common" }
|
|
|
|
# MCP protocol implementation - using forked rmcp-soddygo with non-standard stdout log tolerance
|
|
rmcp = { version = "1.5.0", package = "rmcp-soddygo", features = [
|
|
"server",
|
|
"client",
|
|
"transport-streamable-http-server",
|
|
"transport-streamable-http-server-session", # Critical: custom SessionManager support
|
|
"transport-streamable-http-client",
|
|
"transport-streamable-http-client-reqwest",
|
|
"server-side-http", # Includes axum and tower
|
|
"transport-child-process",
|
|
"transport-io",
|
|
"transport-async-rw",
|
|
"reqwest",
|
|
"base64",
|
|
"macros",
|
|
] }
|
|
|
|
# Concurrent hashmap for session management (better than Arc<RwLock<HashMap>>)
|
|
dashmap = { workspace = true }
|
|
|
|
# Async runtime (添加 signal feature 用于 Ctrl+C 处理)
|
|
tokio = { workspace = true, features = ["signal"] }
|
|
tokio-util = { workspace = true }
|
|
|
|
# Web framework
|
|
axum = { workspace = true }
|
|
tower = { workspace = true }
|
|
|
|
# Logging
|
|
tracing = { workspace = true }
|
|
|
|
# HTTP client
|
|
reqwest = { workspace = true }
|
|
|
|
# Utilities
|
|
arc-swap = { workspace = true }
|
|
anyhow = { workspace = true }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
async-trait = { workspace = true }
|
|
futures = { workspace = true }
|
|
|
|
# 进程组管理(跨平台子进程清理)
|
|
# 版本需要与 rmcp 0.13 兼容
|
|
# 添加 process-group 特性用于 Unix 平台的进程组管理
|
|
# 添加 job-object 特性用于 Windows 平台的进程树管理
|
|
process-wrap = { version = "9.0.3", features = ["tokio1", "process-group", "job-object"] }
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
windows = { version = "0.62", features = ["Win32_System_Threading"] }
|
|
which = "8.0"
|