Skip to main content
Glama

CodeGraph CLI MCP Server

by Jakedismo
Cargo.toml.orig5.49 kB
[package] name = "rmcp" license = { workspace = true } version = { workspace = true } edition = { workspace = true } repository = { workspace = true } homepage = { workspace = true } readme = { workspace = true } description = "Rust SDK for Model Context Protocol" documentation = "https://docs.rs/rmcp" [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] [dependencies] serde = { version = "1.0", features = ["derive", "rc"] } serde_json = "1.0" thiserror = "2" tokio = { version = "1", features = ["sync", "macros", "rt", "time"] } futures = "0.3" tracing = { version = "0.1" } tokio-util = { version = "0.7" } pin-project-lite = "0.2" paste = { version = "1", optional = true } # oauth2 support oauth2 = { version = "5.0", optional = true } # for auto generate schema schemars = { version = "1.0", optional = true, features = ["chrono04"] } # for image encoding base64 = { version = "0.22", optional = true } # for SSE client reqwest = { version = "0.12", default-features = false, features = [ "json", "stream", ], optional = true } sse-stream = { version = "0.2", optional = true } http = { version = "1", optional = true } url = { version = "2.4", optional = true } # For tower compatibility tower-service = { version = "0.3", optional = true } # for child process transport process-wrap = { version = "8.2", features = ["tokio1"], optional = true } # for ws transport # tokio-tungstenite ={ version = "0.26", optional = true } # for http-server transport axum = { version = "0.8", features = [], optional = true } rand = { version = "0.9", optional = true } tokio-stream = { version = "0.1", optional = true } uuid = { version = "1", features = ["v4"], optional = true } http-body = { version = "1", optional = true } http-body-util = { version = "0.1", optional = true } bytes = { version = "1", optional = true } # macro rmcp-macros = { workspace = true, optional = true } [target.'cfg(not(all(target_family = "wasm", target_os = "unknown")))'.dependencies] chrono = { version = "0.4.38", features = ["serde"] } [target.'cfg(all(target_family = "wasm", target_os = "unknown"))'.dependencies] chrono = { version = "0.4.38", default-features = false, features = [ "serde", "clock", "std", "oldtime", ] } [features] default = ["base64", "macros", "server"] client = ["dep:tokio-stream"] server = ["transport-async-rw", "dep:schemars"] macros = ["dep:rmcp-macros", "dep:paste"] elicitation = [] # reqwest http client __reqwest = ["dep:reqwest"] reqwest = ["__reqwest", "reqwest?/rustls-tls"] reqwest-tls-no-provider = ["__reqwest", "reqwest?/rustls-tls-no-provider"] server-side-http = [ "uuid", "dep:rand", "dep:tokio-stream", "dep:http", "dep:http-body", "dep:http-body-util", "dep:bytes", "dep:sse-stream", "tower", ] # SSE client client-side-sse = ["dep:sse-stream", "dep:http"] transport-sse-client = ["client-side-sse", "transport-worker"] transport-sse-client-reqwest = ["transport-sse-client", "reqwest"] transport-worker = ["dep:tokio-stream"] # Streamable HTTP client transport-streamable-http-client = ["client-side-sse", "transport-worker"] transport-streamable-http-client-reqwest = ["transport-streamable-http-client", "reqwest"] transport-async-rw = ["tokio/io-util", "tokio-util/codec"] transport-io = ["transport-async-rw", "tokio/io-std"] transport-child-process = [ "transport-async-rw", "tokio/process", "dep:process-wrap", ] transport-sse-server = [ "transport-async-rw", "transport-worker", "server-side-http", "dep:axum", ] transport-streamable-http-server = [ "transport-streamable-http-server-session", "server-side-http", "transport-worker", ] transport-streamable-http-server-session = [ "transport-async-rw", "dep:tokio-stream", ] # transport-ws = ["transport-io", "dep:tokio-tungstenite"] tower = ["dep:tower-service"] auth = ["dep:oauth2", "__reqwest", "dep:url"] schemars = ["dep:schemars"] [dev-dependencies] tokio = { version = "1", features = ["full"] } schemars = { version = "1.0", features = ["chrono04"] } anyhow = "1.0" tracing-subscriber = { version = "0.3", features = [ "env-filter", "std", "fmt", ] } async-trait = "0.1" [[test]] name = "test_tool_macros" required-features = ["server", "client"] path = "tests/test_tool_macros.rs" [[test]] name = "test_with_python" required-features = [ "reqwest", "server", "client", "transport-sse-server", "transport-sse-client", "transport-child-process", ] path = "tests/test_with_python.rs" [[test]] name = "test_with_js" required-features = [ "server", "client", "transport-sse-server", "transport-child-process", "transport-streamable-http-server", "transport-streamable-http-client", "__reqwest", ] path = "tests/test_with_js.rs" [[test]] name = "test_notification" required-features = ["server", "client"] path = "tests/test_notification.rs" [[test]] name = "test_logging" required-features = ["server", "client"] path = "tests/test_logging.rs" [[test]] name = "test_message_protocol" required-features = ["client"] path = "tests/test_message_protocol.rs" [[test]] name = "test_message_schema" required-features = ["server", "client", "schemars"] path = "tests/test_message_schema.rs" [[test]] name = "test_progress_subscriber" required-features = ["server", "client", "macros"] path = "tests/test_progress_subscriber.rs" [[test]] name = "test_elicitation" required-features = ["elicitation", "client", "server"] path = "tests/test_elicitation.rs"

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Jakedismo/codegraph-rust'

If you have feedback or need assistance with the MCP directory API, please join our Discord server