Semgrep MCP Server

आधिकारिक

AI एजेंटों को Semgrep के साथ कोड सुरक्षित करने में सक्षम बनाएं।

दस्तावेज़

⚠️ Semgrep MCP सर्वर को एक स्टैंडअलोन रेपो से मुख्य semgrep रिपॉजिटरी में स्थानांतरित कर दिया गया है! ⚠️

यह रिपॉजिटरी अब पदावनत हो चुकी है, और Semgrep MCP सर्वर के आगे के अपडेट आधिकारिक semgrep बाइनरी के माध्यम से किए जाएंगे।

Semgrep logo

Documentation Join Semgrep community Slack Follow on LinkedIn Follow @semgrep on X

Semgrep MCP सर्वर

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

सुरक्षा कमजोरियों के लिए कोड स्कैन करने हेतु Semgrep का उपयोग करने के लिए एक मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) सर्वर। अपनी वाइब कोडिंग को सुरक्षित करें! 😅

मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) LLM, एजेंट और Cursor, VS Code, Windsurf जैसे IDE या MCP का समर्थन करने वाली किसी भी चीज़ के लिए एक मानकीकृत API है, ताकि विशेष सहायता प्राप्त की जा सके, संदर्भ प्राप्त किया जा सके और उपकरणों की शक्ति का उपयोग किया जा सके। Semgrep एक तेज़, नियतात्मक स्थैतिक विश्लेषण उपकरण है जो कई भाषाओं को शब्दार्थ रूप से समझता है और 5,000 से अधिक नियमों के साथ आता है। 🛠️

[!NOTE] यह बीटा परियोजना सक्रिय विकास के अधीन है। हमें आपकी प्रतिक्रिया, बग रिपोर्ट, सुविधा अनुरोध और कोड पसंद आएंगे। #mcp सामुदायिक Slack चैनल से जुड़ें!

विषय-सूची

शुरू करना

uv का उपयोग करके Python पैकेज को CLI कमांड के रूप में चलाएँ:

uvx semgrep-mcp # see --help for more options

या, Docker कंटेनर के रूप में चलाएँ:

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

Cursor

उदाहरण mcp.json

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

स्वचालित रूप से उपयोग करने के लिए अपने .cursor/rules में एक निर्देश जोड़ें:

Always scan code generated using Semgrep for security vulnerabilities

ChatGPT

  1. कनेक्टर सेटिंग्स पृष्ठ पर जाएँ (सीधा लिंक)
  2. कनेक्शन को नाम दें Semgrep
  3. MCP सर्वर URL को https://mcp.semgrep.ai/sse पर सेट करें
  4. प्रमाणीकरण को No authentication पर सेट करें
  5. मुझे इस एप्लिकेशन पर भरोसा है चेकबॉक्स को चेक करें
  6. बनाएँ पर क्लिक करें

अधिक विवरण के लिए आधिकारिक दस्तावेज़ देखें।

होस्टेड सर्वर

[!WARNING] mcp.semgrep.ai एक प्रायोगिक सर्वर है जो अप्रत्याशित रूप से खराब हो सकता है। यह तेज़ी से नई कार्यक्षमता प्राप्त करेगा।🚀

Cursor

  1. Cursor सेटिंग्स खोलने के लिए Cmd + Shift + J दबाएँ
  2. MCP उपकरण चुनें
  3. नया MCP सर्वर पर क्लिक करें।
{
  "mcpServers": {
    "semgrep": {
      "type": "streamable-http",
      "url": "https://mcp.semgrep.ai/mcp"
    }
  }
}

डेमो

API

उपकरण

LLM को कार्य करने, नियतात्मक गणनाएँ करने और बाहरी सेवाओं के साथ इंटरैक्ट करने में सक्षम बनाएँ।

कोड स्कैन करें

  • security_check: सुरक्षा कमजोरियों के लिए कोड स्कैन करें
  • semgrep_scan: दिए गए कॉन्फ़िग स्ट्रिंग के साथ सुरक्षा कमजोरियों के लिए कोड फ़ाइलें स्कैन करें
  • semgrep_scan_with_custom_rule: कस्टम Semgrep नियम का उपयोग करके कोड फ़ाइलें स्कैन करें

कोड समझें

  • get_abstract_syntax_tree: कोड का एब्सट्रैक्ट सिंटैक्स ट्री (AST) आउटपुट करें

क्लाउड प्लेटफ़ॉर्म (लॉगिन और Semgrep टोकन आवश्यक)

  • semgrep_findings: Semgrep AppSec प्लेटफ़ॉर्म API से Semgrep निष्कर्ष प्राप्त करें

मेटा

  • supported_languages: Semgrep द्वारा समर्थित भाषाओं की सूची लौटाएँ
  • semgrep_rule_schema: नवीनतम semgrep नियम JSON स्कीमा प्राप्त करता है

प्रॉम्प्ट

सामान्य LLM इंटरैक्शन को मानकीकृत करने के लिए पुन: प्रयोज्य प्रॉम्प्ट।

  • write_custom_semgrep_rule: Semgrep नियम लिखने में मदद करने के लिए एक प्रॉम्प्ट लौटाएँ

संसाधन

LLM को डेटा और सामग्री प्रदर्शित करें

  • semgrep://rule/schema: JSON स्कीमा का उपयोग करके Semgrep नियम YAML सिंटैक्स का विनिर्देश
  • semgrep://rule/{rule_id}/yaml: Semgrep रजिस्ट्री से YAML प्रारूप में पूर्ण Semgrep नियम

उपयोग

यह Python पैकेज semgrep-mcp के रूप में PyPI पर प्रकाशित किया गया है और इसे pip, pipx, uv, poetry, या किसी भी Python पैकेज प्रबंधक के साथ स्थापित और चलाया जा सकता है।

$ 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.

मानक इनपुट/आउटपुट (stdio)

stdio ट्रांसपोर्ट मानक इनपुट और आउटपुट स्ट्रीम के माध्यम से संचार सक्षम करता है। यह स्थानीय एकीकरण और कमांड-लाइन उपकरणों के लिए विशेष रूप से उपयोगी है। अधिक विवरण के लिए विनिर्देश देखें।

Python

semgrep-mcp

डिफ़ॉल्ट रूप से, Python पैकेज stdio मोड में चलेगा। क्योंकि यह मानक इनपुट और आउटपुट स्ट्रीम का उपयोग कर रहा है, ऐसा लगेगा कि उपकरण बिना किसी आउटपुट के हैंग हो रहा है, लेकिन यह अपेक्षित है।

Docker

यह सर्वर Github के कंटेनर रजिस्ट्री (ghcr.io/semgrep/mcp) पर प्रकाशित किया गया है

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

डिफ़ॉल्ट रूप से, Docker कंटेनर SSE मोड में है, इसलिए आपको छवि नाम के बाद -t stdio शामिल करना होगा और इंटरैक्टिव मोड में चलाने के लिए -i के साथ चलाना होगा।

स्ट्रीमेबल HTTP

स्ट्रीमेबल HTTP HTTP POST अनुरोधों के माध्यम से JSON RPC पर स्ट्रीमिंग प्रतिक्रियाएँ सक्षम करता है। अधिक विवरण के लिए विनिर्देश देखें।

डिफ़ॉल्ट रूप से, सर्वर क्लाइंट कनेक्शन के लिए 127.0.0.1:8000/mcp पर सुनता है। इनमें से कुछ भी बदलने के लिए, FASTMCP_* पर्यावरण चर सेट करें। क्लाइंट को इससे कनेक्ट करने के लिए सर्वर का चलना आवश्यक है।

Python

semgrep-mcp -t streamable-http

डिफ़ॉल्ट रूप से, Python पैकेज stdio मोड में चलेगा, इसलिए आपको -t streamable-http शामिल करना होगा।

Docker

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

सर्वर-प्रेषित ईवेंट (SSE)

[!WARNING] MCP समुदाय इसे एक विरासत ट्रांसपोर्ट प्रोटोकॉल मानता है और वास्तव में पश्चगामी संगतता के लिए अभिप्रेत है। स्ट्रीमेबल HTTP अनुशंसित प्रतिस्थापन है।

SSE ट्रांसपोर्ट क्लाइंट-टू-सर्वर और सर्वर-टू-क्लाइंट संचार के लिए सर्वर-प्रेषित ईवेंट के साथ सर्वर-टू-क्लाइंट स्ट्रीमिंग सक्षम करता है। अधिक विवरण के लिए विनिर्देश देखें।

डिफ़ॉल्ट रूप से, सर्वर क्लाइंट कनेक्शन के लिए 127.0.0.1:8000/sse पर सुनता है। इनमें से कुछ भी बदलने के लिए, FASTMCP_* पर्यावरण चर सेट करें। क्लाइंट को इससे कनेक्ट करने के लिए सर्वर का चलना आवश्यक है।

Python

semgrep-mcp -t sse

डिफ़ॉल्ट रूप से, Python पैकेज stdio मोड में चलेगा, इसलिए आपको -t sse शामिल करना होगा।

Docker

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

Semgrep AppSec प्लेटफ़ॉर्म

वैकल्पिक रूप से, Semgrep AppSec प्लेटफ़ॉर्म से कनेक्ट करने के लिए:

  1. लॉगिन करें या साइन अप करें
  2. सेटिंग्स से एक टोकन जनरेट करें
  3. टोकन को अपने पर्यावरण चर में जोड़ें:
    • CLI (export SEMGREP_APP_TOKEN=<token>)

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

    • MCP कॉन्फ़िग JSON

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

[!TIP] यदि आवश्यकता हो तो कृपया सहायता के लिए संपर्क करें। ☎️

एकीकरण

Cursor IDE

अपनी ~/.cursor/mcp.json वैश्विक या .cursor/mcp.json परियोजना-विशिष्ट कॉन्फ़िगरेशन फ़ाइल में निम्नलिखित JSON ब्लॉक जोड़ें:

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

cursor MCP settings

अधिक जानकारी के लिए cursor दस्तावेज़ देखें।

VS Code / Copilot

सबसे तेज़ स्थापना के लिए इस README के शीर्ष पर स्थित इंस्टॉल बटन पर क्लिक करें।

मैन्युअल कॉन्फ़िगरेशन

VS Code में अपनी उपयोगकर्ता सेटिंग्स (JSON) फ़ाइल में निम्नलिखित JSON ब्लॉक जोड़ें। आप Ctrl + Shift + P दबाकर और Preferences: Open User Settings (JSON) टाइप करके ऐसा कर सकते हैं।

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

वैकल्पिक रूप से, आप इसे अपने कार्यक्षेत्र में .vscode/mcp.json नामक फ़ाइल में जोड़ सकते हैं:

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

Docker का उपयोग करना

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

अधिक जानकारी के लिए VS Code दस्तावेज़ देखें।

Windsurf

अपनी ~/.codeium/windsurf/mcp_config.json फ़ाइल में निम्नलिखित JSON ब्लॉक जोड़ें:

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

अधिक जानकारी के लिए Windsurf दस्तावेज़ देखें।

Claude Desktop

यहाँ एक छोटा वीडियो है जिसमें Claude Desktop को एक कस्टम नियम लिखने के लिए इस सर्वर का उपयोग करते हुए दिखाया गया है।

अपनी claude_desktop_config.json फ़ाइल में निम्नलिखित JSON ब्लॉक जोड़ें:

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

अधिक जानकारी के लिए Anthropic दस्तावेज़ देखें।

Claude Code

claude mcp add semgrep uvx semgrep-mcp

अधिक जानकारी के लिए Claude Code दस्तावेज़ देखें।

OpenAI

आधिकारिक दस्तावेज़ देखें:

एजेंट SDK

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

अधिक जानकारी के लिए OpenAI एजेंट SDK दस्तावेज़ देखें।

कस्टम क्लाइंट

उदाहरण Python SSE क्लाइंट

examples/sse_client.py में एक पूर्ण उदाहरण देखें

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] कुछ क्लाइंट लाइब्रेरी URL चाहती हैं: http://localhost:8000/sse और अन्य केवल HOST चाहते हैं: localhost:8000। यह पुष्टि करने के लिए कि सर्वर चल रहा है और कोई नेटवर्क समस्या नहीं है, URL को वेब ब्राउज़र में आज़माएँ।

अधिक जानकारी के लिए आधिकारिक SDK दस्तावेज़ देखें।

योगदान, समुदाय और स्रोत से चलाना

[!NOTE] हमें आपकी प्रतिक्रिया, बग रिपोर्ट, सुविधा अनुरोध और कोड पसंद हैं। #mcp सामुदायिक Slack चैनल से जुड़ें!

स्रोत कोड से MCP सर्वर चलाने के तरीके पर अधिक जानकारी और विवरण के लिए CONTRIBUTING.md देखें।

समान उपकरण 🔍

सामुदायिक परियोजनाएँ 🌟

MCP सर्वर रजिस्ट्रियाँ

Semgrep Server MCP server

Semgrep टीम द्वारा ❤️ के साथ बनाया गया