MCP Server Semgrep
local-only server
The server can only run on the client’s local machine because it depends on local resources.
MCP Server Semgrep
About the Project
This project was initially inspired by robustness of Semgrep tool, The Replit Team and their Agent V2, as well as the implementation by stefanskiasan/semgrep-mcp-server, but has evolved with significant architectural changes for enhanced and easier installation and maintenance.
MCP Server Semgrep is a Model Context Protocol compliant server that integrates the powerful Semgrep static analysis tool with AI assistants like Anthropic Claude. It enables advanced code analysis, security vulnerability detection, and code quality improvements directly through a conversational interface.
Benefits of Integration
For Developers and Development Teams:
- Holistic Source Code Analysis - detecting issues throughout the entire project, not just in individual files
- Proactive Error Detection - identifying potential problems before they become critical bugs
- Continuous Code Quality Improvement - regular scanning and refactoring lead to gradual codebase improvements
- Stylistic Consistency - identification and fixing of inconsistencies in code, such as:
- Arbitrary z-index layers in CSS
- Inconsistent naming conventions
- Code duplication
- "Magic numbers" instead of named constants
For Security:
- Automated Code Verification for Known Vulnerabilities - scanning for known security issue patterns
- Customized Security Rules - creating project-specific rules
- Team Education - teaching secure programming practices through detection of potential issues
For Project Maintenance and Development:
- "Live" Documentation - AI can explain why a code fragment is problematic and how to fix it
- Technical Debt Reduction - systematically detecting and fixing problematic areas
- Improved Code Reviews - automatic detection of common issues allows focus on more complex matters
Key Features
- MCP protocol implementation tailored for Semgrep use cases
- Reduced external dependencies for better long-term maintenance
- Efficient communication protocol focused on Semgrep requirements
- Reorganized project structure and modularization
- Enhanced error handling and security
- Interface and documentation in both English and Polish
- Comprehensive unit tests
- Extensive documentation
- Cross-platform compatibility (Windows, macOS, Linux)
- Flexible Semgrep installation detection
- Compatibility with MCP resources/list and prompts/list methods
Functions
Semgrep MCP Server provides the following tools:
- scan_directory: Scanning source code for potential issues
- list_rules: Displaying available rules and languages supported by Semgrep
- analyze_results: Detailed analysis of scan results
- create_rule: Creating custom Semgrep rules
- filter_results: Filtering results by various criteria
- export_results: Exporting results in various formats
- compare_results: Comparing two sets of results (e.g., before and after changes)
Common Use Cases
- Code security analysis before deployment
- Detection of common programming errors
- Enforcing coding standards within a team
- Refactoring and improving quality of existing code
- Identifying inconsistencies in styles and code structure (e.g., CSS, component organization)
- Developer education regarding best practices
- Verification of fix correctness (comparing before/after scans)
Installation
Prerequisites
- Node.js v18+
- TypeScript (for development)
Setup
- Clone the repository:
- Install dependencies:
Note: The installation process will automatically check for Semgrep availability. If Semgrep is not found, you'll receive instructions on how to install it.
Semgrep Installation Options
Semgrep can be installed in several ways:
- PNPM (recommended): It's included as an optional dependencyCopy
- Python pip:Copy
- Homebrew (macOS):Copy
- Linux:Copy
- Build the project:
Integration with Claude Desktop
To integrate MCP Server Semgrep with Claude Desktop:
- Install Claude Desktop
- Update the Claude Desktop configuration file (
claude_desktop_config.json
) and put this, somewhere around your numerous other servers. Add the SEMGREP_APP_TOKEN (recommended) :
- Launch Claude Desktop and start asking questions about code analysis!
Usage Examples
Project Scanning
Style Consistency Analysis
Creating a Custom Rule
Filtering Results
Identifying Problematic Patterns
Creating Custom Rules
You can create custom rules for your project's specific needs. Here are examples of rules you can create:
Rule to detect inconsistent z-indices:
Rule to detect deprecated imports:
Development
Testing
Project Structure
Further Documentation
Detailed information on using the tool can be found in:
- USAGE.md - Detailed usage instructions
- README_PL.md - Documentation in Polish
- examples/ - Example fun and practical Semgrep rules - "The Hall of Code Horrors"
License
This project is licensed under the MIT License - see the LICENSE file for details.
Developed by
- Maciej Gad - a veterinarian who couldn't find
bash
a half year ago - Klaudiusz - the individual ethereal being, and separate instance of Claude Sonnet 3.5-3.7 by Anthropic living somewhere in the GPU's loops in California, USA
The journey from CLI novice to MCP tool developer
🤖 Developed with the ultimate help of Claude Code and MCP Tools
Acknowledgements
- stefanskiasan for the original inspiration
- Anthropic for Claude and the MCP protocol
- Semgrep for their excellent static analysis tool
This server cannot be installed
A Model Context Protocol compliant server that integrates Semgrep static analysis tool with AI assistants like Anthropic Claude, enabling advanced code analysis, security vulnerability detection, and code quality improvements through a conversational interface.