syncable-cli-mcp-server
High-performance Model Context Protocol (MCP) server for code analysis, security scanning, and project insights—written in Rust 🦀.
Related Project
This MCP server exposes the capabilities of the syncable-cli
tool to AI agents. While syncable-cli
is a standalone CLI tool for interacting with Syncable workspaces, this server acts as a bridge, allowing AI agents and other clients to access those CLI features programmatically via the Model Context Protocol (MCP). Both projects are closely related and complement each other.
Table of Contents
Features
- Fast & Scalable: Built with async Rust on the Tokio runtime
- Multi-Protocol: Supports both stdio and SSE (Server-Sent Events) transports
- Security Scanning: Static analysis and vulnerability detection
- Extensible: Easily add new MCP handlers and custom tools
- Production-Ready: Optimized release profile, structured logging, and CI integration
Installation
rust-mcp-server-syncable-cli
is published on crates.io. You need a recent Rust toolchain (1.70+ recommended). It works as an MCP server for AI agents where you can use the langgraph framework or similar to connect to this MCP server for code scanning.
CLI Binaries
Install the server binaries from crates.io:
This installs two binaries into your Cargo bin
directory (usually ~/.cargo/bin
):
mcp-stdio
— stdin/stdout-based MCP servermcp-sse
— HTTP/SSE-based MCP server
Add to PATH
If you see a warning like:
be sure to add
/Users/yourname/.cargo/bin
to your PATH to be able to run the installed binaries
Add the following to your shell profile:
For zsh (default on recent macOS):
For bash:
Verify installation:
Python Client Example
You can connect to the MCP server from Python using the mcp client library or similar.
Below is an example using mcp.client.stdio
to launch and communicate with the Rust MCP server via stdio:
await
= await
= await
= await
= await
= await
Using HTTP/SSE Mode
If you prefer to use HTTP/SSE, start the server with:
# Adjust import if needed
=
await
# List available tools
= await
# Call the 'about_info' tool
= await
# Call the 'analysis_scan' tool
= await
# Call the 'security_scan' tool
= await
# Call the 'dependency_scan' tool
= await
LangGraph Agent Integration
You can use the LangGraph framework to connect to this MCP server in both stdio and SSE modes. Below are example Python scripts for each mode.
Using Stdio Mode This example launches the mcp-stdio binary and connects via stdio:
=
=
= await
=
=
= await
Using HTTP/SSE Mode This example connects to the MCP server via HTTP/SSE:
=
# ← Use /sse here, since `mcp-sse` prints "Server is available at .../sse"
=
= await
=
=
= await
🛠️ Features
- Multi-Transport: Connect via stdio or SSE to the Rust MCP server.
- Tooling: List and invoke tools such as
about_info
,analysis_scan
,security_scan
, anddependency_scan
. - LangGraph Integration: Example agents using LangGraph.
- Extensible: Easily add new tools or adapt to other agent frameworks.
🧪 Testing
Run Python tests:
License
Licensed under the MIT License. See LICENSE for details.
Acknowledgments
- Built on rust-mcp-sdk
- Inspired by Syncable CLI MCP Server
- Thanks to the Rust and Python communities!