项目简介
Syncable CLI MCP 服务器是一个用 Rust 实现的后端应用,它遵循 Model Context Protocol (MCP),旨在为大型语言模型 (LLM) 客户端提供结构化的上下文信息和可调用的功能。它通过标准化的方式,将复杂的代码库分析、安全漏洞扫描和项目依赖管理等能力,封装成易于 LLM 理解和执行的工具。
主要功能点
- 代码分析 (analysis_scan): 深入解析项目代码,识别编程语言、框架、架构模式等,生成详细报告。支持多种展示格式(如矩阵、详细、摘要)。
- 安全扫描 (security_scan): 扫描代码库中的安全风险,包括泄露的秘密和常见的漏洞,帮助开发者维护代码安全。
- 依赖扫描 (dependency_scan): 检查项目依赖项,并将其与已知漏洞数据库进行比对,识别潜在的风险。
- 漏洞扫描 (vulnerability_scan): 专门用于扫描已知漏洞。
- 服务器信息 (about_info): 提供关于MCP服务器自身能力和用途的详细描述。
- 多传输协议支持: 支持通过标准输入输出 (Stdio) 和服务器发送事件 (SSE) 两种方式与客户端进行通信。
安装步骤
- 安装 Rust: 确保您的系统已安装 Rust 1.70 或更高版本。可以通过 'rustup update' 命令更新。
- 克隆仓库: 将项目仓库克隆到本地。
git clone https://github.com/syncable-dev/syncable-cli-mcp-server.git cd syncable-cli-mcp-server - 构建服务器:
进入 'rust-mcp-server-syncable-cli' 目录并编译:
构建成功后,服务器的可执行文件将在 './target/release/' 目录下生成 'mcp-stdio' (用于标准I/O) 和 'mcp-sse' (用于 SSE 模式)。cd rust-mcp-server-syncable-cli cargo build --release
服务器配置
MCP 客户端(如 Langchain、Agno 等)连接此服务器时,需要提供服务器的启动命令和相关参数。以下是两种传输协议的典型配置示例,客户端通常会以 JSON 对象的形式提供这些信息:
Stdio 模式配置:
{ "server_name": "syncable_cli", "command": "../rust-mcp-server-syncable-cli/target/release/mcp-stdio", "args": [], "transport": "stdio", "description": "通过标准I/O与Syncable CLI MCP服务器通信,提供代码分析和安全扫描等功能。" }
- 'server_name': 服务器的唯一标识符。
- 'command': 指向编译好的 'mcp-stdio' 可执行文件的路径。请确保路径正确,根据您的实际编译位置进行调整。
- 'args': 启动服务器时附加的命令行参数,当前版本为空。
- 'transport': 通信协议类型,此处为 'stdio'。
- 'description': 对此服务器功能的简要描述。
SSE 模式配置:
{ "server_name": "syncable_cli_sse", "url": "http://127.0.0.1:8008/sse", "transport": "sse", "description": "通过服务器发送事件 (SSE) 与Syncable CLI MCP服务器通信,提供代码分析和安全扫描等功能。服务器通常监听 8008 端口。" }
- 'server_name': 服务器的唯一标识符。
- 'url': SSE 服务器的监听地址。默认端口为 8008。
- 'transport': 通信协议类型,此处为 'sse'。
- 'description': 对此服务器功能的简要描述。
基本使用方法
- 启动服务器:
- Stdio 模式: 在一个终端中运行:
cd rust-mcp-server-syncable-cli cargo run --release --bin mcp-stdio - SSE 模式: 在另一个终端中运行:
SSE 服务器启动后,会显示监听地址,例如 'http://0.0.0.0:8008/sse'。cd rust-mcp-server-syncable-cli cargo run --release --bin mcp-sse
- Stdio 模式: 在一个终端中运行:
- 通过 MCP 客户端连接:
启动服务器后,LLM 应用或任何兼容 MCP 的客户端可以连接到此服务器。客户端会使用上述配置信息建立连接,并可以通过 JSON-RPC 请求来:
- 初始化会话: 客户端发送 'initialize' 请求。
- 列出可用工具: 客户端发送 'list_tools' 请求,服务器将返回如 'about_info', 'analysis_scan', 'security_scan', 'dependency_scan', 'vulnerability_scan' 等工具列表及其描述。
- 调用工具: 客户端发送 'call_tool' 请求,指定工具名称(如 'analysis_scan')和参数(如 '{"path": "./", "display": "matrix"}'),服务器将执行相应操作并返回结果。 例如,LLM 客户端可能会通过提示词“分析当前项目代码并以矩阵形式展示”来触发 'analysis_scan' 工具的调用。
信息
分类
开发者工具