MCP Server Semgrep

by VetCoders

MCP Server Semgrep integrates the Semgrep static analysis tool with AI assistants for advanced code analysis, security vulnerability detection, and code quality improvements via a conversational interface. Requires Semgrep installation which can be managed via environment variables like MCP_SERVER_SEMGREP_ALLOWED_ROOTS to configure allowed workspace roots.

Developer toolsstdio or Streamable HTTPCommunity

Repository-wide counts · Cached 2026-04-22

Overview

The MCP Server Semgrep MCP server is a publicly available project. Review the upstream repository for installation instructions, supported tools, compatibility, permissions, and current maintenance status.

Configuration

Configuration, transport, authentication, and runtime requirements vary by project. Open the repository before connecting and use the smallest set of credentials and permissions required.

Open the MCP Server Semgrep repository to read the latest documentation.

KEEP EXPLORING

Compare source, connection, and authentication details before choosing an implementation.

View the complete category

模型上下文协议服务器

modelcontextprotocol

Community

一组用于模型上下文协议(MCP)的参考实现,展示了对大型语言模型(LLM)工具和数据源的安全且受控的访问方式。

Context7 Platform - Up-to-date Code Docs For Any Prompt

upstash

Community

Context7 MCP server providing up-to-date, version-specific documentation and code examples for libraries, enabling coding agents to fetch accurate docs and code snippets. Requires an API key for higher rate limits, passed via CONTEXT7_API_KEY header.

Playwright MCP

Microsoft Corporation

Community

A Model Context Protocol (MCP) server that provides browser automation capabilities using Playwright. Enables LLMs to interact with web pages through structured accessibility snapshots, bypassing the need for screenshots or visually-tuned models.

AIHawk

feder-cr

Community

AIHawk is an anti detect browser and web browsing agent, open source, with an MCP server for coding agents: undetected, no captchas, no blocks. It requires an OpenRouter API key for the standalone web UI mode, which can be provided via the --openrouter-key flag or the OPENROUTER_API_KEY environment variable or a .env file in the running directory.

FROM THE SOURCE

Repository README

Build-time snapshot · Retrieved 2026-10-05

View original

MCP Server Semgrep

smithery badge mcp-server-semgrep MCP server

POWERED BY:

POWERED BY

About the Project

MCP Server Semgrep Logo 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

  • Direct integration with the official MCP SDK
  • Simplified architecture with consolidated handlers
  • Clean ES Modules implementation
  • Efficient error handling and path validation for security
  • Interface and documentation in both English and Polish
  • Comprehensive unit tests
  • Extensive documentation
  • Cross-platform compatibility (Windows, macOS, Linux)
  • Flexible Semgrep installation detection and management

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)

The easiest way to install and use MCP Server Semgrep is through Smithery.ai:

  1. Visit MCP Server Semgrep on Smithery.ai
  2. Follow the installation instructions to add it to your MCP-compatible clients
  3. Configure any optional settings like the Semgrep API token and allowed workspace roots

This is the recommended method for Claude Desktop and other MCP clients as it handles all dependencies and configuration automatically.

Option 2: Install from NPM Registry

# Using npm
npm install -g mcp-server-semgrep

# Using pnpm
pnpm add -g mcp-server-semgrep

# Using yarn
yarn global add mcp-server-semgrep

The package is also available on other registries:

Option 3: Install from GitHub

# Using npm
npm install -g git+https://github.com/vetcoders/mcp-server-semgrep.git

# Using pnpm
pnpm add -g git+https://github.com/vetcoders/mcp-server-semgrep.git

# Using yarn
yarn global add git+https://github.com/vetcoders/mcp-server-semgrep.git

Option 4: Local Development Setup

  1. Clone the repository:
git clone https://github.com/vetcoders/mcp-server-semgrep.git
cd mcp-server-semgrep
  1. Install dependencies (supports all major package managers):
# Using pnpm (recommended)
pnpm install

# Using npm
npm install

# Using yarn
yarn install
  1. Build the project:
# Using pnpm
pnpm run build

# Using npm
npm run build

# Using yarn
yarn build

Note: The installation process will automatically check for Semgrep availability. If Semgrep is not found, you'll receive instructions on how to install it.

Workspace Root Contract

This server only reads and writes files inside explicitly allowed workspace roots.

  • By default, the allowed root is the process working directory (process.cwd()).
  • For Claude Desktop, Smithery, or any launcher that does not start the server inside your project root, set MCP_SERVER_SEMGREP_ALLOWED_ROOTS to one or more absolute directories.
  • Use your platform path delimiter for multiple roots: : on macOS/Linux, ; on Windows.

Authentication Modes

This server does not implement its own Semgrep account handling. It shells out to the installed semgrep CLI and relies on Semgrep's normal authentication behavior.

  • Local terminal and local development runs can often use an existing semgrep login session from the current OS account.
  • Managed launches such as Claude Desktop, Smithery, containers, or CI should prefer an explicit SEMGREP_APP_TOKEN for deterministic behavior.
  • SEMGREP_APP_TOKEN is still the safest option when you need portable configuration across machines or runners.

Semgrep Installation Options

Semgrep can be installed in several ways:

  • Via package managers:

    # Using pnpm
    pnpm add -g semgrep
    
    # Using npm
    npm install -g semgrep
    
    # Using yarn
    yarn global add semgrep
    
  • Python pip:

    pip install semgrep
    
  • Homebrew (macOS):

    brew install semgrep
    
  • Linux:

    sudo apt-get install semgrep
    # or
    curl -sSL https://install.semgrep.dev | sh
    
  • Windows:

    pip install semgrep
    

Integration with Claude Desktop

There are two ways to integrate MCP Server Semgrep with Claude Desktop:

  1. Visit MCP Server Semgrep on Smithery.ai
  2. Click "Install in Claude Desktop"
  3. Follow the on-screen instructions

Method 2: Manual Configuration

  1. Install Claude Desktop
  2. Update the Claude Desktop configuration file (claude_desktop_config.json) and add this to your servers section.

For local launches started under a user account that is already authenticated with semgrep login, the Semgrep CLI may be able to reuse that login. For desktop-managed or shared environments, we still recommend setting SEMGREP_APP_TOKEN explicitly:

{
  "mcpServers": {
    "semgrep": {
      "command": "node",
      "args": [
        "/your_path/mcp-server-semgrep/build/index.js"
      ],
      "env": {
        "SEMGREP_APP_TOKEN": "your_semgrep_app_token",
        "MCP_SERVER_SEMGREP_ALLOWED_ROOTS": "/Users/you/projects"
      }
    }
  }
}
  1. Launch Claude Desktop and start asking questions about code analysis.

If you want to scan more than one workspace, set MCP_SERVER_SEMGREP_ALLOWED_ROOTS to a platform-delimited list of absolute paths.

Usage Examples

Project Scanning

Could you scan my source code in the /projects/my-application directory for potential security issues? That directory is already included in MCP_SERVER_SEMGREP_ALLOWED_ROOTS.

Style Consistency Analysis

Analyze the z-index values in the project's CSS files and identify inconsistencies and potential layer conflicts.

Creating a Custom Rule

Create a Semgrep rule that detects improper use of input sanitization functions.

Filtering Results

Show me only scan results related to SQL injection vulnerabilities.

Identifying Problematic Patterns

Find all "magic numbers" in the code and suggest replacing them with named constants.

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:

rules:
  - id: inconsistent-z-index
    pattern: z-index: $Z
    message: "Z-index $Z may not comply with the project's layering system"
    languages: [css, scss]
    severity: WARNING

Rule to detect deprecated imports:

rules:
  - id: deprecated-import
    pattern: import $X from 'old-library'
    message: "You're using a deprecated library. Consider using 'new-library'"
    languages: [javascript, typescript]
    severity: WARNING

Development

Testing

pnpm test

Project Structure

├── src/
│   └── index.ts          # Main entry point and all handler implementations
├── scripts/
│   └── check-semgrep.js  # Semgrep detection and installation helper
├── build/                # Compiled JavaScript (after build)
└── tests/                # Unit tests

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

vetcoders

🤖 Developed with the help of Claude Code and MCP Tools

Acknowledgements