Semgrep MCP Server
resmiYapay zeka ajanlarının Semgrep ile kodu güvence altına almasını sağlar.
Dokümantasyon
⚠️ Semgrep MCP sunucusu bağımsız bir depodan ana semgrep deposuna! taşındı ⚠️
Bu depo kullanımdan kaldırılmıştır ve Semgrep MCP sunucusuna yönelik diğer güncellemeler resmi semgrep ikili dosyası aracılığıyla yapılacaktır.
Semgrep MCP Sunucusu
Kodu güvenlik açıklarına karşı taramak için Semgrep kullanan bir Model Bağlam Protokolü (MCP) sunucusu. Vibe coding işleminizi güvence altına alın! 😅
Model Bağlam Protokolü (MCP), LLM'ler, Ajanlar ve Cursor, VS Code, Windsurf gibi IDE'ler veya MCP'yi destekleyen herhangi bir şey için özel yardım almak, bağlam edinmek ve araçların gücünden yararlanmak üzere standartlaştırılmış bir API'dir. Semgrep, birçok dili anlamsal olarak anlayan ve 5.000'den fazla kuralla gelen hızlı, deterministik bir statik analiz aracıdır. 🛠️
[!NOTE] Bu beta projesi aktif olarak geliştirilmektedir. Geri bildirimlerinizi, hata raporlarınızı, özellik isteklerinizi ve kodlarınızı bekliyoruz.
#mcptopluluk Slack kanalına katılın!
İçindekiler
- Semgrep MCP Sunucusu
Başlarken
Python paketini uv kullanarak bir CLI komutu olarak çalıştırın:
uvx semgrep-mcp # see --help for more options
Veya bir Docker konteyneri 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 kullanmak için .cursor/rules dosyanıza bir talimat ekleyin:
Always scan code generated using Semgrep for security vulnerabilities
ChatGPT
- Connector Settings sayfasına gidin (doğrudan bağlantı)
- Bağlantıyı
Semgrepolarak adlandırın - MCP Server URL'sini
https://mcp.semgrep.ai/sseolarak ayarlayın - Authentication'ı
No authenticationolarak ayarlayın - I trust this application onay kutusunu işaretleyin
- Create düğmesine tıklayın
Daha fazla ayrıntı için resmi belgelere bakın.
Barındırılan Sunucu
[!WARNING] mcp.semgrep.ai beklenmedik şekilde bozulabilecek deneysel bir sunucudur. Hızla yeni işlevler kazanacaktır.🚀
Cursor
- Cursor Ayarlarını açmak için Cmd + Shift + J tuşlarına basın
- MCP Tools'u seçin
- New MCP Server'a tıklayın.
{
"mcpServers": {
"semgrep": {
"type": "streamable-http",
"url": "https://mcp.semgrep.ai/mcp"
}
}
}
Demo
API
Araçlar
LLM'lerin eylemler gerçekleştirmesini, deterministik hesaplamalar yapmasını ve harici hizmetlerle etkileşime girmesini sağlar.
Kodu Tara
security_check: Kodu güvenlik açıklarına karşı tarasemgrep_scan: Belirli bir yapılandırma dizesiyle kod dosyalarını güvenlik açıklarına karşı tarasemgrep_scan_with_custom_rule: Özel bir Semgrep kuralı kullanarak kod dosyalarını tara
Kodu Anla
get_abstract_syntax_tree: Kodun Soyut Sözdizimi Ağacı (AST) çıktısını ver
Bulut Platformu (oturum açma ve Semgrep jetonu gereklidir)
semgrep_findings: Semgrep AppSec Platform API'sinden Semgrep bulgularını getir
Meta
supported_languages: Semgrep'in desteklediği dillerin listesini döndürsemgrep_rule_schema: En son semgrep kuralı JSON Şemasını getir
İstemler
Yaygın LLM etkileşimlerini standartlaştırmak için yeniden kullanılabilir istemler.
write_custom_semgrep_rule: Bir Semgrep kuralı yazmaya yardımcı olacak bir istem döndür
Kaynaklar
LLM'lere veri ve içerik sunar
semgrep://rule/schema: JSON şeması kullanarak Semgrep kuralı YAML sözdiziminin belirtimisemgrep://rule/{rule_id}/yaml: Semgrep kayıt defterinden YAML formatında tam Semgrep kuralı
Kullanım
Bu Python paketi PyPI'de semgrep-mcp olarak yayınlanır ve pip, pipx, uv, poetry veya herhangi bir Python paket yöneticisi ile kurulup çalıştırılabilir.
$ pipx install semgrep-mcp
$ semgrep-mcp --help
Usage: semgrep-mcp [OPTIONS]
Entry point for the MCP server
Supports both stdio and sse transports. For stdio, it will read from stdin
and write to stdout. For sse, it will start an HTTP server on port 8000.
Options:
-v, --version Show version and exit.
-t, --transport [stdio|sse] Transport protocol to use (stdio or sse)
-h, --help Show this message and exit.
Standart Giriş/Çıkış (stdio)
stdio aktarımı, standart giriş ve çıkış akışları aracılığıyla iletişimi sağlar. Bu, özellikle yerel entegrasyonlar ve komut satırı araçları için kullanışlıdır. Daha fazla ayrıntı için belirtime bakın.
Python
semgrep-mcp
Varsayılan olarak, Python paketi stdio modunda çalışır. Standart giriş ve çıkış akışlarını kullandığından, araç herhangi bir çıktı olmadan asılı kalmış gibi görünecektir, ancak bu beklenen bir durumdur.
Docker
Bu sunucu Github'ın Konteyner Kayıt Defterinde (ghcr.io/semgrep/mcp) yayınlanır
docker run -i --rm ghcr.io/semgrep/mcp -t stdio
Varsayılan olarak, Docker konteyneri SSE modundadır, bu nedenle görüntü adından sonra -t stdio eklemeniz ve etkileşimli modda çalıştırmak için -i ile çalıştırmanız gerekir.
Akışkan HTTP
Akışkan HTTP, HTTP POST istekleri aracılığıyla JSON RPC üzerinden akış yanıtlarını etkinleştirir. Daha fazla ayrıntı için belirtime bakın.
Varsayılan olarak, sunucu istemci bağlantıları için 127.0.0.1:8000/mcp adresini dinler. Bunlardan herhangi birini değiştirmek için FASTMCP_* ortam değişkenlerini ayarlayın. İstemcilerin bağlanabilmesi için sunucunun çalışıyor olması gerekir.
Python
semgrep-mcp -t streamable-http
Varsayılan olarak, Python paketi stdio modunda çalışır, bu nedenle -t streamable-http eklemeniz gerekir.
Docker
docker run -p 8000:0000 ghcr.io/semgrep/mcp
Sunucu Tarafından Gönderilen Olaylar (SSE)
[!WARNING] MCP topluluğu bunu eski bir aktarım protokolü olarak kabul eder ve gerçekten geriye dönük uyumluluk için tasarlanmıştır. Akışkan HTTP önerilen alternatiftir.
SSE aktarımı, istemciden sunucuya ve sunucudan istemciye iletişim için Sunucu Tarafından Gönderilen Olaylar ile sunucudan istemciye akışı etkinleştirir. Daha fazla ayrıntı için belirtime bakın.
Varsayılan olarak, sunucu istemci bağlantıları için 127.0.0.1:8000/sse adresini dinler. Bunlardan herhangi birini değiştirmek için FASTMCP_* ortam değişkenlerini ayarlayın. İstemcilerin bağlanabilmesi için sunucunun çalışıyor olması gerekir.
Python
semgrep-mcp -t sse
Varsayılan olarak, Python paketi stdio modunda çalışır, bu nedenle -t sse eklemeniz gerekir.
Docker
docker run -p 8000:0000 ghcr.io/semgrep/mcp -t sse
Semgrep AppSec Platformu
İsteğe bağlı olarak, Semgrep AppSec Platformuna bağlanmak için:
- Oturum açın veya kaydolun
- Ayarlar bölümünden bir jeton oluşturun
- Jetonu ortam değişkenlerinize ekleyin:
-
CLI (
export SEMGREP_APP_TOKEN=<token>) -
Docker (
docker run -e SEMGREP_APP_TOKEN=<token>) -
MCP yapılandırma JSON'u
-
"env": {
"SEMGREP_APP_TOKEN": "<token>"
}
[!TIP] Gerekirse destek için ulaşın. ☎️
Entegrasyonlar
Cursor IDE
Aşağıdaki JSON bloğunu ~/.cursor/mcp.json genel veya .cursor/mcp.json projeye özel yapılandırma dosyanıza ekleyin:
{
"mcpServers": {
"semgrep": {
"command": "uvx",
"args": ["semgrep-mcp"]
}
}
}

Daha fazla bilgi için cursor belgelerine bakın.
VS Code / Copilot
En hızlı kurulum için bu README'nin üst kısmındaki yükleme düğmelerine tıklayın.
Manuel Yapılandırma
Aşağıdaki JSON bloğunu VS Code'daki Kullanıcı Ayarları (JSON) dosyanıza ekleyin. Bunu Ctrl + Shift + P tuşlarına basıp 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 belgelerine bakın.
Windsurf
Aşağıdaki JSON bloğunu ~/.codeium/windsurf/mcp_config.json dosyanıza ekleyin:
{
"mcpServers": {
"semgrep": {
"command": "uvx",
"args": ["semgrep-mcp"]
}
}
}
Daha fazla bilgi için Windsurf belgelerine bakın.
Claude Desktop
İşte Claude Desktop'ın özel bir kural yazmak için bu sunucuyu kullandığını gösteren kısa bir video.
Aşağıdaki JSON bloğunu claude_desktop_config.json dosyanıza ekleyin:
{
"mcpServers": {
"semgrep": {
"command": "uvx",
"args": ["semgrep-mcp"]
}
}
}
Daha fazla bilgi için Anthropic belgelerine bakın.
Claude Code
claude mcp add semgrep uvx semgrep-mcp
Daha fazla bilgi için Claude Code belgelerine bakın.
OpenAI
Resmi belgelere 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 belgelerine bakın.
Özel istemciler
Örnek Python SSE istemcisi
examples/sse_client.py dosyasında tam bir örneğe bakın
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 kütüphaneleri
URL: http://localhost:8000/sse ister ve diğerleri yalnızcaHOST:localhost:8000ister. Sunucunun çalıştığını ve ağ sorunu olmadığını doğrulamak içinURLadresini bir web tarayıcısında deneyin.
Daha fazla bilgi için resmi SDK belgelerine bakın.
Katkıda bulunma, topluluk ve kaynaktan çalıştırma
[!NOTE] Geri bildirimlerinizi, hata raporlarınızı, özellik isteklerinizi ve kodlarınızı seviyoruz.
#mcptopluluk Slack kanalına katılın!
MCP sunucusunu kaynak kodundan nasıl çalıştıracağınıza dair daha fazla bilgi ve ayrıntı için CONTRIBUTING.md dosyasına bakın.
Benzer araçlar 🔍
- semgrep-vscode - Resmi VS Code uzantısı
- semgrep-intellij - IntelliJ eklentisi
Topluluk projeleri 🌟
- semgrep-rules - Resmi Semgrep kuralları koleksiyonu
- mcp-server-semgrep - Szowesgad ve stefanskiasan tarafından yazılan orijinal ilham kaynağı
MCP sunucu kayıtları
Semgrep Ekibi tarafından ❤️ ile yapıldı