Security Python ★ 672

semgrep/mcp

AI ajanlarının Semgrep kullanarak kodda güvenlik açıklarını taramasına izin verir.

Claude Desktop config.json'a ekle

{
  "mcpServers": {
    "semgrep-mcp": {
      "command": "python",
      "args": [
        "-m",
        "mcp"
      ]
    }
  }
}

⚠️ Semgrep MCP sunucusu bağımsız bir depodan ana semgrep deposuna taşınmıştır! ⚠️

Bu depo kullanım dışı bırakılmıştır ve Semgrep MCP sunucusuna yönelik daha sonraki güncellemeler resmi semgrep binary'si aracılığıyla yapılacaktır.

</picture>

Semgrep MCP Sunucusu

Add MCP Server semgrep to LM Studio Install in Cursor Install in VS Code UV Install in VS Code Docker Install in VS Code semgrep.ai PyPI Docker Install in VS Code Insiders Install in VS Code Insiders

Kodu güvenlik açıkları için taramak üzere Semgrep kullanmak için bir Model Context Protocol (MCP) sunucusu. Vibe coding güvenliğini sağlayın! 😅

Model Context Protocol (MCP), LLM'ler, Agentlar ve Cursor, VS Code, Windsurf gibi IDE'ler veya MCP'yi destekleyen başka herhangi bir araç için, uzmanlaşmış yardım almak, bağlam elde etmek ve araçların gücünden yararlanmak amacıyla standartlaştırılmış bir API'dir. Semgrep, birçok dili semantik olarak anlayan hızlı, deterministik bir statik analiz aracıdır ve 5.000'den fazla kuralı içerir. 🛠️

[!NOTE] Bu beta projesi aktif geliştirme altındadır. Geri bildiriminiz, hata raporlarınız, özellik istekleriniz ve kodunuz çok hoş gelecektir. #mcp community Slack kanalına katılın!

İçindekiler

Başlangıç

Python paketini uv kullanarak CLI komutu olarak çalıştırın:

uvx semgrep-mcp # daha fazla seçenek için --help bölümüne bakın

Veya Docker konteyner olarak çalıştırın:

docker run -i --rm ghcr.io/semgrep/mcp -t stdio

Cursor

Örnek mcp.json

{
  "mcpServers": {
    "semgrep": {
      "command": "uvx",
      "args": ["semgrep-mcp"],
      "env": {
        "SEMGREP_APP_TOKEN": "<token>"
      }
    }
  }
}

Otomatik olarak kullanılması için .cursor/rules öğesine bir talimat ekleyin:

Her zaman Semgrep kullanarak oluşturulan kodu güvenlik açıkları için tarayın

ChatGPT

  1. Connector Settings sayfasına gidin (doğrudan bağlantı)
  2. Bağlantıyı Semgrep olarak adlandırın
  3. MCP Server URL'sini https://mcp.semgrep.ai/sse olarak ayarlayın
  4. Authentication'u No authentication olarak ayarlayın
  5. I trust this application (Bu uygulamaya güveniyorum) onay kutusunu işaretleyin
  6. Create (Oluştur) öğesine tıklayın

Resmi doçlarda daha fazla ayrıntı görebilirsiniz.

Barındırılan Sunucu

[!WARNING] mcp.semgrep.ai beklenmedik şekilde kırılabilecek deneysel bir sunucudur. Hızla yeni işlevsellik kazanacaktır.🚀

Cursor

  1. Cursor Settings'i açmak için Cmd + Shift + J tuşlarına basın
  2. MCP Tools'u seçin
  3. New MCP Server'a tıklayın.
{
  "mcpServers": {
    "semgrep": {
      "type": "streamable-http",
      "url": "https://mcp.semgrep.ai/mcp"
    }
  }
}

Demo

API

Araçlar

LLM'lerin eylemleri gerçekleştirmesini, deterministik hesaplamalar yapmasını ve harici hizmetlerle etkileşime girmesini sağlayın.

Kodu Tara

  • security_check: Kodu güvenlik açıkları için tarayın
  • semgrep_scan: Kod dosyalarını belirli bir config string'i ile güvenlik açıkları için tarayın
  • semgrep_scan_with_custom_rule: Kod dosyalarını özel bir Semgrep kuralı kullanarak tarayın

Kodu Anla

  • get_abstract_syntax_tree: Kodun Abstract Syntax Tree (AST)'sini çıkara

Bulut Platformu (giriş ve Semgrep token'ı gerekli)

  • semgrep_findings: Semgrep AppSec Platform API'sinden Semgrep bulgularını getirin

Meta

  • supported_languages: Semgrep'in desteklediği dillerin listesini döndürün
  • semgrep_rule_schema: En son semgrep kuralı JSON Schema'sını getirin

İstemler

Yaygın LLM etkileşimlerini standartlaştırmak için yeniden kullanılabilir istemler.

  • write_custom_semgrep_rule: Semgrep kuralı yazmaya yardımcı olması için bir istem döndürün

Kaynaklar

Verileri ve içeriği LLM'lere gösterin

  • semgrep://rule/schema: JSON schema kullanarak Semgrep kuralı YAML sözdiziminin tanımı
  • semgrep://rule/{rule_id}/yaml: Semgrep registry'sinden tam Semgrep kuralı YAML formatında

Kullanım

Bu Python paketi PyPI'ye semgrep-mcp olarak yayımlanır ve pip, pipx, uv, poetry veya başka bir Python paket yöneticisi ile kurulup çalıştırılabilir.

$ pipx install semgrep-mcp
$ semgrep-mcp --help

Usage: semgrep-mcp [OPTIONS]

  MCP sunucusunun giriş noktası

  Hem stdio hem de sse taşımalarını destekler. Stdio için stdin'den okur
  ve stdout'a yazacaktır. SSE için, port 8000'de bir HTTP sunucusu başlatacaktır.

Options:
  -v, --version                Sürümü göster ve çık.
  -t, --transport [stdio|sse]  Kullanılacak taşıma protokolü (stdio veya sse)
  -h, --help                   Bu yardım mesajını göster.

Standart Girdi/Çıktı (stdio)

Stdio taşıması, standart girdi ve çıktı akışları aracılığıyla iletişimi sağlar. Bu, yerel entegrasyonlar ve komut satırı araçları için özellikle kullanışlıdır. Daha fazla ayrıntı için belirtilime bakın.

Python

semgrep-mcp

Varsayılan olarak, Python paketi stdio modunda çalışacaktır. Standart girdi ve çıktı akışlarını kullandığı için, hiçbir çıktı olmadan aracın asılı kaldığı görülecektir, ancak bu beklenen bir davranıştır.

Docker

Bu sunucu Github's Container Registry'ye yayımlanır (ghcr.io/semgrep/mcp)

docker run -i --rm ghcr.io/semgrep/mcp -t stdio

Varsayılan olarak, Docker konteyner SSE modundadır, bu nedenle görüntü adından sonra -t stdio eklemek ve stdio modunda çalıştırmak için -i ile çalıştırmak zorunda kalacaksınız.

Akışlandırılabilir HTTP

Akışlandırılabilir HTTP, HTTP POST istekleri aracılığıyla JSON RPC üzerinden akış yanıtlarını etkinleştirir. Daha fazla ayrıntı için belirtilime bakın.

Varsayılan olarak, sunucu istemci bağlantıları için 127.0.0.1:8000/mcp adresinde dinleme yapar. Bunlardan herhangi birini değiştirmek için FASTMCP_* ortam değişkenlerini ayarlayın. Sunucu, istemcilerin bağlanabilmesi için çalışıyor olmalıdır.

Python

semgrep-mcp -t streamable-http

Varsayılan olarak, Python paketi stdio modunda çalışacaktır, bu nedenle -t streamable-http eklemek zorunda kalacaksınız.

Docker

docker run -p 8000:0000 ghcr.io/semgrep/mcp

Sunucu tarafından gönderilen etkinlikler (SSE)

[!WARNING] MCP topluluğu bunu eski bir taşıma protokolü olarak değerlendirir ve gerçekten geriye dönük uyumluluk için tasarlanmıştır. Akışlandırılabilir HTTP önerilen değiştirmedir.

SSE taşıması, Server-Send Events ile sunucudan istemciye akışı sunucu-istemci ve istemci-sunucu iletişimi için etkinleştirir. Daha fazla ayrıntı için belirtilime bakın.

Varsayılan olarak, sunucu istemci bağlantıları için 127.0.0.1:8000/sse adresinde dinleme yapar. Bunlardan herhangi birini değiştirmek için FASTMCP_* ortam değişkenlerini ayarlayın. Sunucu, istemcilerin bağlanabilmesi için çalışıyor olmalıdır.

Python

semgrep-mcp -t sse

Varsayılan olarak, Python paketi stdio modunda çalışacaktır, bu nedenle -t sse eklemek zorunda kalacaksınız.

Docker

docker run -p 8000:0000 ghcr.io/semgrep/mcp -t sse

Semgrep AppSec Platformu

İsteğe bağlı olarak, Semgrep AppSec Platformu'na bağlanmak için:

  1. Giriş yapın veya kaydolun
  2. Ayarlardan bir token oluşturun
  3. Token'ı ortam değişkenlerinize ekleyin:
    • CLI (export SEMGREP_APP_TOKEN=<token>)

    • Docker (docker run -e SEMGREP_APP_TOKEN=<token>)

    • MCP config JSON

    "env": {
      "SEMGREP_APP_TOKEN": "<token>"
    }

[!TIP] Gerekirse lütfen destek için iletişime geçin. ☎️

Entegrasyonlar

Cursor IDE

Aşağıdaki JSON bloğunu global ~/.cursor/mcp.json veya proje özgü .cursor/mcp.json yapılandırma dosyasına ekleyin:

{
  "mcpServers": {
    "semgrep": {
      "command": "uvx",
      "args": ["semgrep-mcp"]
    }
  }
}

cursor MCP settings

Daha fazla bilgi için cursor doçlarına bakın.

VS Code / Copilot

Bu README'nin en üstündeki kurulum düğmelerine tıklayın en hızlı kurulum için.

Manuel Yapılandırma

VS Code'da Kullanıcı Ayarları (JSON) dosyanıza aşağıdaki JSON bloğunu ekleyin. Bunu Ctrl + Shift + P tuşlarına basarak ve Preferences: Open User Settings (JSON) yazarak yapabilirsiniz.

{
  "mcp": {
    "servers": {
      "semgrep": {
        "command": "uvx",
        "args": ["semgrep-mcp"]
      }
    }
  }
}

İsteğe bağlı olarak, çalışma alanınızda .vscode/mcp.json adlı bir dosyaya ekleyebilirsiniz:

{
  "servers": {
    "semgrep": {
      "command": "uvx",
        "args": ["semgrep-mcp"]
    }
  }
}

Docker Kullanımı

{
  "mcp": {
    "servers": {
      "semgrep": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "ghcr.io/semgrep/mcp",
          "-t",
          "stdio"
        ]
      }
    }
  }
}

Daha fazla bilgi için VS Code doçlarına bakın.

Windsurf

Aşağıdaki JSON bloğunu ~/.codeium/windsurf/mcp_config.json dosyasına ekleyin:

{
  "mcpServers": {
    "semgrep": {
      "command": "uvx",
      "args": ["semgrep-mcp"]
    }
  }
}

Daha fazla bilgi için Windsurf doçlarına bakın.

Claude Desktop

Bu sunucuyu özel bir kural yazmak için kullanan Claude Desktop'ı gösteren kısa bir video bulunmaktadır.

Aşağıdaki JSON bloğunu claude_desktop_config.json dosyasına ekleyin:

{
  "mcpServers": {
    "semgrep": {
      "command": "uvx",
      "args": ["semgrep-mcp"]
    }
  }
}

Daha fazla bilgi için Anthropic doçlarına bakın.

Claude Code

claude mcp add semgrep uvx semgrep-mcp

Daha fazla bilgi için Claude Code doçlarına bakın.

OpenAI

Resmi doçlara bakın:

Agents SDK

async with MCPServerStdio(
    params={
        "command": "uvx",
        "args": ["semgrep-mcp"],
    }
) as server:
    tools = await server.list_tools()

Daha fazla bilgi için OpenAI Agents SDK doçlarına bakın.

Özel istemciler

Örnek Python SSE istemcisi

examples/sse_client.py içinde tam bir örnek görebilirsiniz

from mcp.client.session import ClientSession
from mcp.client.sse import sse_client


async def main():
    async with sse_client("http://localhost:8000/sse") as (read_stream, write_stream):
        async with ClientSession(read_stream, write_stream) as session:
            await session.initialize()
            results = await session.call_tool(
                "semgrep_scan",
                {
                    "code_files": [
                        {
                            "path": "hello_world.py",
                            "content": "def hello(): print('Hello, World!')",
                        }
                    ]
                },
            )
            print(results)

[!TIP] Bazı istemci kitaplıkları URL'yi istemiştir: http://localhost:8000/sse ve diğerleri sadece HOST'u istemiştir: localhost:8000. Sunucunun çalıştığını ve ağ sorunları olmadığını doğrulamak için web tarayıcısında URL'yi deneyin.

Daha fazla bilgi için resmi SDK doçlarına bakın.

Katkı, Topluluk ve Kaynaktan Çalıştırma

[!NOTE] Geri bildiriminiz, hata raporlarınız, özellik istekleriniz ve kodunuz çok hoş gelecektir. #mcp community Slack kanalına katılın!

Daha fazla bilgi ve MCP sunucusunu kaynak koddan çalıştırmaya ilişkin ayrıntılar için CONTRIBUTING.md dosyasına bakın.

Benzer araçlar 🔍

Topluluk projeleri 🌟

MCP sunucu kayıtları


Semgrep Ekibi tarafından sevgiyle yapıldı ❤️

Benzer MCP sunucuları

mrexodia/ida-pro-mcp Security

IDA Pro için MCP sunucusu, AI asistanları ile binary analiz yapmanızı sağlar. Plugin decompilation, disassembly işlemlerini gerçekleştirir ve malware analiz raporlarını otomatik olarak oluşturmanıza imkan tanır.

mrexodia/ida-pro-mcp ★ 9,564
LaurieWired/GhidraMCP Security

Ghidra için bir Model Context Protocol sunucusu olup LLM'lerin uygulamaları özerk şekilde ters mühendislik yapmasını sağlar. Binary dosyaları derlemesini açma, metod ve veri adlandırma, metod/sınıf/import/export listeleme araçlarını sunar.

LaurieWired/GhidraMCP ★ 9,310
zinja-coder/jadx-ai-mcp Security

JADX-AI-MCP, JADX decompiler için bir plugin ve MCP Server olup Model Context Protocol (MCP) ile entegre edilerek Claude gibi LLM'lerle canlı reverse engineering desteği sağlar.

zinja-coder/jadx-ai-mcp ★ 2,350
beelzebub-labs/beelzebub Security

Beelzebub, MCP kullanarak honeypot araçları oluşturmanızı sağlayan bir framework'tür. Prompt injection ve kötü niyetli agent davranışlarını tespit etmek için tasarlanmıştır. Temel konsept, agente normal çalışmasında asla kullanmayacağı araçlar sunarak tehditli aktiviteleri yakalamaktır.

beelzebub-labs/beelzebub ★ 2,054
safedep/vet Security

vet-mcp, yapay zeka kodlama araçları tarafından önerilen npm ve PyPI paketleri gibi açık kaynak paketleri güvenlik açıkları ve kötü amaçlı kodlar açısından kontrol eder. Docker üzerinde veya bağımsız bir binary olarak yerel olarak çalışarak hızlı ve otomatik doğrulama sağlar.

safedep/vet ★ 1,080
symgraph/GhidrAssistMCP Security

Ghidra için native Model Context Protocol sunucusu. GUI konfigürasyon ve logging içerir, 31 güçlü tool ve harici bağımlılık yok.

symgraph/GhidrAssistMCP ★ 644
Daha fazla: Security →