Syncable Cli
БесплатноНе проверенMCP server for syncable cli which scans code repo for security risks, vulnerabilities and project overview.
Описание
MCP server for syncable cli which scans code repo for security risks, vulnerabilities and project overview.
README
Local Development & Testing
Prerequisites
- Rust 1.70+ (
rustup update) - Python 3.8+ (for client testing)
- uv (
brew install uvon macOS)
Building from Source
- Clone the repository:
git clone https://github.com/your-org/syncable-cli-mcp-server.git
cd syncable-cli-mcp-server
- Build the project:
# Debug build
cargo build
# Release build
cargo build --release
The binaries will be available in:
- Debug:
./target/debug/mcp-stdioand./target/debug/mcp-sse - Release:
./target/release/mcp-stdioand./target/release/mcp-sse
Testing the MCP Server
- Test Rust Components:
# Run unit tests
cargo test
# Run with logging
RUST_LOG=debug cargo test
- Manual Testing with Python Client:
First, start the MCP server in a terminal:
# For stdio mode
cargo run --bin mcp-stdio
# For SSE mode (in another terminal)
cargo run --bin mcp-sse
Then in another terminal, set up the Python environment:
# Setup Python environment
cd mcp-python-server-client
# Create and activate virtual environment using uv
uv venv
source .venv/bin/activate
# Install dependencies
uv pip install -r requirements.txt
# Or use sync if you have a requirements.lock
uv sync
# Test stdio mode
uv run python -m src.mcp_py_client_rust_server_stdio
# Test SSE mode
uv run python src.mcp_py_client_rust_server_sse
- Verify Available Tools:
The server should display available tools on startup. You should see:
- about_info
- analysis_scan
- security_scan
- dependency_scan
- Test Each Tool:
# Using stdio mode for example
cargo run --bin mcp-stdio
In another terminal:
import asyncio
from mcp.client.session import ClientSession
from mcp.client.stdio import StdioServerParameters, stdio_client
async def test_tools():
async with stdio_client(
StdioServerParameters(command="../target/debug/mcp-stdio")
) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
# Test about_info
result = await session.call_tool("about_info", {})
print("About Info:", result)
# Test analysis_scan
result = await session.call_tool("analysis_scan",
{"path": ".", "display": "matrix"})
print("Analysis Scan:", result)
# Test security_scan
result = await session.call_tool("security_scan", {"path": "."})
print("Security Scan:", result)
# Test dependency_scan
result = await session.call_tool("dependency_scan", {"path": "."})
print("Dependency Scan:", result)
asyncio.run(test_tools())
- Integration Testing with LangGraph:
# Install LangGraph dependencies
uv add langgraph openai python-dotenv langchain_mcp_adapters
# Test stdio integration
uv run python -m src.langgraph_stdio_demo
# Test SSE integration
uv run python -m src.langgraph_sse_demo
Common Issues & Debugging
- Port Already in Use (SSE mode):
lsof -i :8000 # Check if port 8000 is in use
kill -9 <PID> # Kill the process if needed
- Binary Not Found (stdio mode):
- Ensure the binary path in Python client matches your build location
- Check
cargo buildsucceeded - Verify binary permissions (
chmod +xif needed)
- Enable Debug Logging:
# For Rust server
RUST_LOG=debug cargo run --bin mcp-stdio
# For Python client
uv python -c "import logging; logging.basicConfig(level=logging.DEBUG)"
Automated Release Process with release-plz
We use release-plz to automate versioning and publishing. The workflow is configured in .github/workflows/release-plz.yml.
- Setup:
# Install release-plz
cargo install release-plz
# Configure GitHub token
export GITHUB_TOKEN=your_github_token
export CARGO_REGISTRY_TOKEN=your_crates_io_token
- Check Release Status:
# Preview what would be released
release-plz check
- Release Process:
- Push your changes to the
mainbranch - The GitHub Action will automatically:
- Update versions in Cargo.toml
- Generate changelog entries
- Create a release PR or publish directly
- Push to crates.io when ready
- Manual Release (if needed):
# Create changelog and bump version
release-plz release
# Update changelog only
release-plz update-changelog
Manual Pre-release Checklist
Before publishing to crates.io:
- All tests pass:
cargo test - Code formatted:
cargo fmt --all -- --check - No clippy warnings:
cargo clippy -- -D warnings - Documentation up-to-date:
cargo doc --no-deps - Version bumped in:
- Cargo.toml
- CHANGELOG.md
- Python client examples work
- Both transport modes (stdio/SSE) tested
Publishing Process
Only after local testing succeeds:
# Login to crates.io
cargo login
# Dry run
cargo publish --dry-run
# Actual publish
cargo publish
Установка Syncable Cli
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/syncable-dev/syncable-cli-mcp-serverFAQ
Syncable Cli MCP бесплатный?
Да, Syncable Cli MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Syncable Cli?
Нет, Syncable Cli работает без API-ключей и переменных окружения.
Syncable Cli — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Syncable Cli в Claude Desktop, Claude Code или Cursor?
Открой Syncable Cli на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Syncable Cli with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
