2 releases
| 0.1.0-alpha.2 | Oct 24, 2025 |
|---|
#24 in #crates
140KB
2.5K
SLoC
scan_crate
Fast regex search through Rust crate source code. Supports crates.io, GitHub repos, and local paths.
Features
- Multiple sources: Automatically detects and fetches from:
- crates.io registry
- GitHub/git repositories
- Local directories
- Workspace dependencies (via
cargo metadata)
- Smart caching: Uses existing Cargo cache when available, maintains its own cache for other sources
- Regex search: Powered by
ripgrepfor fast pattern matching - MCP server: Integrates with AI assistants via Model Context Protocol
- CLI tool: Direct command-line usage
Installation
From crates.io (Recommended)
cargo install scan_crate
# Requires ripgrep
# macOS: brew install ripgrep
# Linux: apt-get install ripgrep
From source
git clone https://github.com/verse-pbc/scan_crate.git
cd scan_crate
cargo build --release
Claude Code Plugin
scan_crate includes a Claude Code plugin that enables automatic crate exploration when you ask questions about Rust libraries.
Plugin Installation
Important: You must install the binary first, then the plugin.
Step 1: Install the binary
Since this is a pre-release version, you need to specify the version:
cargo install scan_crate --version 0.1.0-alpha.2
Or install from source:
cargo install --git https://github.com/verse-pbc/scan_crate.git
Step 2: Install the plugin in Claude Code
/plugin install https://github.com/verse-pbc/scan_crate.git
Step 3: Restart Claude Code
The plugin will automatically check if scan_crate is installed and show a helpful message if it's missing.
What the Plugin Does
Once installed, Claude will automatically use scan_crate when you:
- Ask about Rust libraries: "How does serde work?"
- Analyze dependencies: "What's in our Cargo.toml?"
- Discover APIs: "Show me tokio's Runtime API"
- Search for implementations: "Find examples of Serialize trait"
The plugin includes the rust-crate-explorer skill that teaches Claude when to proactively scan crates, so you don't need to manually request searches.
Manual MCP Configuration
If not using the plugin, you can configure the MCP server directly in ~/.claude.json:
{
"mcpServers": {
"scan-crate": {
"command": "scan_crate",
"args": ["--mcp"]
}
}
}
Usage
CLI Examples
# Search crates.io package
scan_crate --crate-spec "serde@1.0.130" --query "Serialize"
# Search GitHub repository
scan_crate --crate-spec "https://github.com/rust-lang/cargo.git@0.70.0" --query "cargo_metadata"
# Search local directory
scan_crate --crate-spec "./" --query "TODO"
# Case-sensitive search
scan_crate --crate-spec "tokio" --query "Runtime" --case-sensitive
MCP Server for Other Editors
For MCP clients other than Claude Code (e.g., Cursor), configure in your editor's MCP settings:
{
"mcpServers": {
"scan-crate": {
"command": "scan_crate",
"args": ["--mcp"]
}
}
}
License
This project is licensed under the MIT License. See the LICENSE file for details.
Dependencies
~21–44MB
~613K SLoC