[package]
name = "mcp-repl"
version = "0.3.0"
edition = "2024"
rust-version = "1.90"
license = "MIT OR Apache-2.0"
repository = "https://github.com/joshrotenberg/mcp-repl"
readme = "README.md"
description = "Interactive MCP client REPL: connects to any MCP server and turns its tools, prompts, and resources into the command set"
keywords = ["mcp", "repl", "cli", "client", "protocol"]
categories = ["command-line-utilities", "development-tools"]
exclude = ["/examples", "/.github", "/docs", "/deny.toml"]
[profile.release]
strip = true
[lib]
name = "mcp_repl"
path = "src/lib.rs"
[[bin]]
name = "mcp-repl"
path = "src/main.rs"
[dependencies]
tower-mcp = { version = "0.20.1", features = ["http-client", "oauth-client", "protocol-2026-07-28"] }
async-trait = "0.1"
tokio = { version = "1", features = ["full"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
base64 = "0.23.0"
getrandom = "0.4"
toml = "1"
toml_edit = "0.25"
clap = { version = "4", features = ["derive"] }
regex = "1"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
reedline = { version = "0.49", features = ["external_printer"] }
nu-ansi-term = "0.50"
keyring = "4.1"
webbrowser = { version = "1.2", features = ["hardened"] }
tempfile = "3"
unicode-width = "0.2"
schemars = "1.2"
clap_complete = "4"
clap_mangen = "0.2"
crossterm = { version = "0.29", default-features = false }
url = "2"
[target.'cfg(unix)'.dependencies]
libc = "0.2"
[dev-dependencies]
tower-mcp = { version = "0.20.1", features = ["http", "protocol-2026-07-28"] }
axum = { version = "0.8", features = ["json"] }
schemars = "1.2"