Cargo MCP Server

Cargo MCP Server

Provides a suite of tools for running Cargo commands and interacting with Rust projects through AI agents. It enables automated builds, testing, linting, and documentation generation directly from any MCP-compatible client.

Category
访问服务器

README

Cargo MCP Server

A Model Context Protocol (MCP) server that provides tools for running Cargo commands. This server allows AI agents to interact with Rust projects through Cargo, enabling automated builds, tests, documentation generation, and more.

Features

The server provides the following Cargo tools:

  • cargo_build - Build a Rust project with Cargo
  • cargo_test - Run tests for a Rust project
  • cargo_run - Run a Rust binary
  • cargo_check - Check a project for errors without building
  • cargo_clippy - Run Clippy linter
  • cargo_fmt - Format Rust code using rustfmt
  • cargo_doc - Generate documentation
  • cargo_clean - Clean build artifacts
  • cargo_tree - Display dependency tree
  • cargo_update - Update dependencies in Cargo.lock
  • cargo_bench - Run benchmarks

Installation

Prerequisites

  • Python 3.8 or higher
  • Rust and Cargo installed on your system
  • Access to install Python packages

Install from source

  1. Clone this repository:
git clone <repository-url>
cd cargo-mcp
  1. Install the package:
pip install -e .

Usage

With Claude Desktop

Add the server to your claude_desktop_config.json:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "cargo-mcp": {
      "command": "cargo-mcp"
    }
  }
}

With other MCP clients

The server can be used with any MCP-compatible client. Start the server using:

cargo-mcp

Testing with MCP Inspector

You can test the server using the MCP Inspector:

npx @modelcontextprotocol/inspector cargo-mcp

Tool Documentation

cargo_build

Build a Rust project with Cargo.

Parameters:

  • release (boolean, optional): Build in release mode with optimizations
  • features (array, optional): List of features to activate
  • target (string, optional): Build for the given target triple
  • workspace_path (string, optional): Path to the workspace root (auto-detected if not provided)

cargo_test

Run tests for a Rust project.

Parameters:

  • test_name (string, optional): Name of specific test to run
  • release (boolean, optional): Run tests in release mode
  • features (array, optional): List of features to activate
  • workspace_path (string, optional): Path to the workspace root

cargo_run

Run a Rust binary.

Parameters:

  • bin_name (string, optional): Name of the binary to run (for multi-binary projects)
  • args (array, optional): Arguments to pass to the binary
  • release (boolean, optional): Run in release mode
  • features (array, optional): List of features to activate
  • workspace_path (string, optional): Path to the workspace root

cargo_check

Check a Rust project for errors without building it.

Parameters:

  • features (array, optional): List of features to activate
  • workspace_path (string, optional): Path to the workspace root

cargo_clippy

Run Clippy linter on a Rust project.

Parameters:

  • fix (boolean, optional): Automatically apply suggested fixes
  • features (array, optional): List of features to activate
  • workspace_path (string, optional): Path to the workspace root

cargo_fmt

Format Rust code using rustfmt.

Parameters:

  • check (boolean, optional): Check if files are formatted without modifying them
  • workspace_path (string, optional): Path to the workspace root

cargo_doc

Generate documentation for a Rust project.

Parameters:

  • open (boolean, optional): Open documentation in browser after generation
  • no_deps (boolean, optional): Don't build documentation for dependencies
  • workspace_path (string, optional): Path to the workspace root

cargo_clean

Clean build artifacts.

Parameters:

  • workspace_path (string, optional): Path to the workspace root

cargo_tree

Display dependency tree.

Parameters:

  • package (string, optional): Package to display tree for
  • features (array, optional): List of features to activate
  • workspace_path (string, optional): Path to the workspace root

cargo_update

Update dependencies in Cargo.lock.

Parameters:

  • package (string, optional): Specific package to update
  • workspace_path (string, optional): Path to the workspace root

cargo_bench

Run benchmarks.

Parameters:

  • bench_name (string, optional): Name of specific benchmark to run
  • features (array, optional): List of features to activate
  • workspace_path (string, optional): Path to the workspace root

Project Structure Detection

The server automatically detects Rust projects by searching for Cargo.toml files. It walks up the directory tree from the current working directory to find the nearest Cargo.toml file and uses that directory as the workspace root.

You can override this behavior by providing the workspace_path parameter to any tool.

Error Handling

The server provides detailed error messages and logs for troubleshooting:

  • Checks if Cargo is installed and available in PATH
  • Validates that Cargo.toml exists in the target directory
  • Captures both stdout and stderr from Cargo commands
  • Provides detailed command execution information

Development

Setup

  1. Clone the repository
  2. Install development dependencies:
pip install -e ".[dev]"

Testing

Run tests using pytest:

pytest

Code Formatting

Format code using black:

black src/

Lint code using ruff:

ruff check src/

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Support

For issues and questions:

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选