About Scylla Rust MCP
Scylla Rust MCP is an MCP server in the Data category: an MCP (Model Context Protocol) server for ScyllaDB.
Install
git clone https://github.com/anthony-cervantes/scylla-rust-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Scylla Rust MCP
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
scylla-rust-mcp
Read-only MCP (Model Context Protocol) server for ScyllaDB that exposes safe data discovery and query tools over stdio for AI agents and MCP clients.
Features
- Read-only ScyllaDB access (no writes or schema changes)
- TLS (OpenSSL) plus optional username/password auth
- Prepared statements for fast, safe queries
- Pagination with cursors (
paged_select) - Schema discovery (
search_schema) and rich introspection tools - Shared connection/session and lightweight schema cache
Supported tools (MCP):
list_keyspaces,list_tables,describe_tablelist_indexes,list_views,keyspace_replicationlist_udts,list_functions,list_aggregatescluster_topology,size_estimatessample_rows,select,paged_select,partition_rowssearch_schema
Quick Start
For Codex and other local MCP clients, the simplest path is to run the binary directly.
Install from crates.io with Cargo:
cargo install scylla-rust-mcp
For unreleased changes, you can still install from Git:
cargo install --git https://github.com/anthony-cervantes/scylla-rust-mcp scylla-rust-mcp
Run it:
export SCYLLA_URI=127.0.0.1:9042
scylla-rust-mcp
Environment:
SCYLLA_URI(required):host:portfor Scylla/CassandraSCYLLA_USER,SCYLLA_PASS(optional): credentialsSCYLLA_SSL(optional):trueor1to enable TLSSCYLLA_CA_BUNDLE(optional): absolute path to a CA bundle on the hostSCYLLA_SSL_INSECURE(optional):trueor1to skip verification (dev only)RUST_LOGorMCP_SERVER_LOG(optional): enable stderr logging, for exampleinfoordebug. The default stdio server stays quiet unless one of these is set.MCP_FRAMING(optional):content-length(default) for Codex-compatible MCP stdio framing, ornewlinefor the legacy newline-delimited JSON transport (manual testing only)SCYLLA_WARMUP_ON_START(optional): set to1to eagerly connect to Scylla during startup. Default is off so MCP initialization stays fast and quiet.
Use With MCP Clients
Codex-style TOML:
[mcp_servers.scylla-rust-mcp]
command = "scylla-rust-mcp"
env = { MCP_FRAMING = "content-length", SCYLLA_URI = "127.0.0.1:9042" }
TLS with auth:
[mcp_servers.scylla-rust-mcp]
command = "scylla-rust-mcp"
env = { MCP_FRAMING = "content-length", SCYLLA_URI = "scylla.example.com:9142", SCYLLA_USER = "scylla", SCYLLA_PASS = "<password>", SCYLLA_SSL = "true" }
TLS with a custom CA bundle:
[mcp_servers.scylla-rust-mcp]
command = "scylla-rust-mcp"
env = { MCP_FRAMING = "content-length", SCYLLA_URI = "scylla.example.com:9142", SCYLLA_SSL = "true", SCYLLA_CA_BUNDLE = "/absolute/path/ca.pem" }
JSON example:
{
"mcpServers": {
"scylla-rust-mcp": {
"command": "scylla-rust-mcp",
"env": {
"MCP_FRAMING": "content-length",
"SCYLLA_URI": "127.0.0.1:9042"
}
}
}
}
Packaging Notes
- Once the crate is published, install it with
cargo install scylla-rust-mcp. - Until then, Cargo can install this project directly from Git with
cargo install --git .... - GitHub Packages is not a Cargo registry, so it is not the right place for
cargo install. - Tagged releases upload prebuilt Linux, Intel macOS, and Apple Silicon macOS archives to GitHub Releases.
Local Development
Prerequisites:
- Rust stable (edition 2021)
- OpenSSL headers for TLS
- macOS:
brew install openssl@3 - Debian/Ubuntu:
sudo apt-get install -y libssl-dev pkg-config
- macOS:
Build and run:
export SCYLLA_URI=127.0.0.1:9042
cargo run
# For manual newline-delimited JSON testing
MCP_FRAMING=newline cargo run
Quality checks:
- Format:
cargo fmt --all - Lint:
cargo clippy --all-targets -- -D warnings - Tests:
cargo test(some integration tests are#[ignore]unlessSCYLLA_URIis set)
Justfile
just check- fmt, clippy, testsjust run- run the stdio server locallyjust install- install the binary into Cargo's local bin directoryjust version-show- print current package versionjust version-set 0.1.7- bumpCargo.tomlversion and commitjust tag- create and push tagv<current-version>just release-local [x.y.z]- clean-tree local release: bump, commit, local tag, install from tag, verify install
Roadmap
- Partition reads:
partition_rows(strict prepared PK binding) - Paged tests: add ignored integration tests for
paged_selectandsearch_schema - Schema validation: fail early on invalid column/filter/order_by
- Observability: add row counts/durations to spans and optional metrics
- CI: boot Scylla during integration testing and run ignored integration tests
Contributing
We welcome issues and PRs. Please:
- Follow rustfmt defaults:
cargo fmt --all - Lint cleanly:
cargo clippy --all-targets -- -D warnings - Add tests where possible (unit in-file, integration under
tests/) - Avoid committing secrets; use env vars
Security
This server is read-only by design. If you discover a security issue, please report it privately via GitHub Security Advisories so maintainers can triage and fix before disclosure. See SECURITY.md for details.
License
Licensed under either of:
- Apache License, Version 2.0 (see
LICENSE-APACHE) - MIT License (see
LICENSE-MIT)
at your option.
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.