Code review MCP server for Claude. Not affiliated with Atlassian.
Project description
Crucible
Code review MCP server for Claude. Runs static analysis and loads review skills based on what kind of code you're looking at.
Note: This project is not affiliated with Atlassian or their Crucible code review tool. Just an unfortunate naming collision.
┌─────────────────────────────────────────────────────────────────────────────┐
│ Your Code ──→ Crucible ──→ Claude │
│ (analysis) (synthesis) │
│ │
│ .sol file ──→ slither, semgrep ──→ web3-engineer skill loaded │
│ .py file ──→ ruff, bandit ──→ backend-engineer skill loaded │
└─────────────────────────────────────────────────────────────────────────────┘
MCP provides data. Skills provide perspective. Claude orchestrates.
Quick Start
# Install from PyPI
pip install crucible-mcp
# Or install from source
pip install -e ".[dev]"
# Install skills to ~/.claude/crucible/skills/
crucible skills install
# Install analysis tools for your stack
pip install semgrep ruff # Python
pip install slither-analyzer # Solidity
pip install bandit # Python security
Tools are separate by design. Different workflows need different analyzers. Install what you need, skip what you don't. Crucible gracefully handles missing tools.
MCP Setup
Works with any MCP client (Claude Code, Cursor, etc.). Add to your .mcp.json:
{
"mcpServers": {
"crucible": {
"command": "crucible-mcp"
}
}
}
Then in Claude:
Review src/Vault.sol
→ Crucible: domains_detected: [solidity, smart_contract, web3]
→ Crucible: severity_summary: {critical: 1, high: 3}
→ Claude loads: web3-engineer, security-engineer skills
→ Claude synthesizes multi-perspective review
MCP Tools
| Tool | Purpose |
|---|---|
quick_review(path) |
Run analysis, return findings + domains |
get_principles(topic) |
Load engineering knowledge |
delegate_* |
Direct tool access (semgrep, ruff, slither, bandit) |
check_tools() |
Show installed analysis tools |
CLI
crucible skills list # List all skills
crucible skills show <skill> # Show which version is active
crucible skills init <skill> # Copy to .crucible/ for customization
crucible knowledge list # List all knowledge files
crucible knowledge init <file> # Copy for customization
How It Works
Crucible detects what kind of code you're reviewing, runs the right analysis tools, and returns findings with domain metadata. Claude uses this to load appropriate review skills.
.sol file → slither + semgrep → web3-engineer, gas-optimizer skills
.py file → ruff + bandit → backend-engineer, security-engineer skills
See ARCHITECTURE.md for the full flow.
Customization
Override skills and knowledge for your project or personal preferences:
# Customize a skill for your project
crucible skills init security-engineer
# Creates .crucible/skills/security-engineer/SKILL.md
# Add project-specific concerns, team conventions, etc.
Resolution order (first found wins):
.crucible/— Project overrides~/.claude/crucible/— User preferences- Bundled — Package defaults
See CUSTOMIZATION.md for the full guide.
What's Included
18 Review Skills — Different review perspectives (security, performance, accessibility, web3, etc.)
See SKILLS.md for the full list with triggers and focus areas.
12 Knowledge Files — Engineering principles for security, testing, APIs, databases, smart contracts, etc.
See KNOWLEDGE.md for topics covered and skill linkages.
Documentation
| Doc | What's In It |
|---|---|
| FEATURES.md | Complete feature reference |
| ARCHITECTURE.md | How MCP, tools, skills, and knowledge fit together |
| CUSTOMIZATION.md | Override skills and knowledge for your project |
| SKILLS.md | All 18 review personas with triggers and key questions |
| KNOWLEDGE.md | All 12 knowledge files with topics covered |
| CONTRIBUTING.md | Adding tools, skills, and knowledge |
Development
pip install -e ".[dev]"
pytest # Run tests (263 tests)
ruff check src/ --fix # Lint
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file crucible_mcp-0.1.0.tar.gz.
File metadata
- Download URL: crucible_mcp-0.1.0.tar.gz
- Upload date:
- Size: 23.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f785e2ab02132ad9ba093cc4ed377d3c50e42c8da813123d3258a924da6e8060
|
|
| MD5 |
2869c5cff21f8aec8fa828c32a88682b
|
|
| BLAKE2b-256 |
19241e9e3be09f1dd4f3cac56744311049d15630885b6d617e222253be43a787
|
Provenance
The following attestation bundles were made for crucible_mcp-0.1.0.tar.gz:
Publisher:
publish.yml on b17z/crucible
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
crucible_mcp-0.1.0.tar.gz -
Subject digest:
f785e2ab02132ad9ba093cc4ed377d3c50e42c8da813123d3258a924da6e8060 - Sigstore transparency entry: 854560157
- Sigstore integration time:
-
Permalink:
b17z/crucible@90b5b4086927291c60f05183e5eb17d7d298df60 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/b17z
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@90b5b4086927291c60f05183e5eb17d7d298df60 -
Trigger Event:
release
-
Statement type:
File details
Details for the file crucible_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: crucible_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 17.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da58f16b170ec0ff3fa6998f4892fdc5b4564ab4988595aae22e19bfb3b94bb5
|
|
| MD5 |
c335f70b0ed51159633317650c2f7ffe
|
|
| BLAKE2b-256 |
ac7802460bc8bf26f1a0cfd949dfdb6a995920f9592071b066ed12303078fe10
|
Provenance
The following attestation bundles were made for crucible_mcp-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on b17z/crucible
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
crucible_mcp-0.1.0-py3-none-any.whl -
Subject digest:
da58f16b170ec0ff3fa6998f4892fdc5b4564ab4988595aae22e19bfb3b94bb5 - Sigstore transparency entry: 854560170
- Sigstore integration time:
-
Permalink:
b17z/crucible@90b5b4086927291c60f05183e5eb17d7d298df60 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/b17z
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@90b5b4086927291c60f05183e5eb17d7d298df60 -
Trigger Event:
release
-
Statement type: