Skip to main content
Glama

cargo-mcp

by jbr
Apache 2.0

Cargo MCP Server

Caution

This repository is written by AI as an experiment. Although I (jbr) review every line, the code quality is not necessarily identical to what I would have written. Caveat usor.

A Model Context Protocol (MCP) server that provides safe access to Cargo operations for Rust projects.

Features

This MCP server exposes the following Cargo tools:

  • cargo_check - Verify code compiles without producing executables
  • cargo_clippy - Run the Clippy linter for code suggestions
  • cargo_test - Execute project tests
  • cargo_fmt_check - Check code formatting without modifying files
  • cargo_build - Build the project (debug or release mode)

Installation

cargo build --release

Usage with Claude Desktop

Add this to your Claude Desktop MCP configuration:

{ "mcpServers": { "cargo-mcp": { "command": "/path/to/cargo-mcp/target/release/cargo-mcp", "args": ["serve"] } } }

Tool Usage

cargo_check

Verify that your Rust code compiles:

{ "name": "cargo_check", "arguments": { "path": "/path/to/rust/project", "package": "optional-package-name" } }

cargo_clippy

Get linting suggestions:

{ "name": "cargo_clippy", "arguments": { "path": "/path/to/rust/project", "package": "optional-package-name", "fix": false } }

cargo_test

Run tests:

{ "name": "cargo_test", "arguments": { "path": "/path/to/rust/project", "package": "optional-package-name", "test_name": "optional-specific-test" } }

cargo_fmt_check

Check formatting:

{ "name": "cargo_fmt_check", "arguments": { "path": "/path/to/rust/project" } }

cargo_build

Build the project:

{ "name": "cargo_build", "arguments": { "path": "/path/to/rust/project", "package": "optional-package-name", "release": false } }

Safety Features

  • Only whitelisted Cargo commands are available
  • Path validation ensures the target is a valid Rust project (has Cargo.toml)
  • No arbitrary command execution
  • All commands run in the specified project directory

Development

To test the server manually:

cargo run -- serve

Then send MCP requests via stdin. Example initialization:

{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {}}

License

MIT

Related MCP Servers

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jbr/cargo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server