Semgrep MCP Server
आधिकारिकAI एजेंटों को Semgrep के साथ कोड सुरक्षित करने में सक्षम बनाएं।
दस्तावेज़
⚠️ Semgrep MCP सर्वर को एक स्टैंडअलोन रेपो से मुख्य semgrep रिपॉजिटरी में स्थानांतरित कर दिया गया है! ⚠️
यह रिपॉजिटरी अब पदावनत हो चुकी है, और Semgrep MCP सर्वर के आगे के अपडेट आधिकारिक semgrep बाइनरी के माध्यम से किए जाएंगे।
Semgrep MCP सर्वर
सुरक्षा कमजोरियों के लिए कोड स्कैन करने हेतु Semgrep का उपयोग करने के लिए एक मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) सर्वर। अपनी वाइब कोडिंग को सुरक्षित करें! 😅
मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) LLM, एजेंट और Cursor, VS Code, Windsurf जैसे IDE या MCP का समर्थन करने वाली किसी भी चीज़ के लिए एक मानकीकृत API है, ताकि विशेष सहायता प्राप्त की जा सके, संदर्भ प्राप्त किया जा सके और उपकरणों की शक्ति का उपयोग किया जा सके। Semgrep एक तेज़, नियतात्मक स्थैतिक विश्लेषण उपकरण है जो कई भाषाओं को शब्दार्थ रूप से समझता है और 5,000 से अधिक नियमों के साथ आता है। 🛠️
[!NOTE] यह बीटा परियोजना सक्रिय विकास के अधीन है। हमें आपकी प्रतिक्रिया, बग रिपोर्ट, सुविधा अनुरोध और कोड पसंद आएंगे।
#mcpसामुदायिक Slack चैनल से जुड़ें!
विषय-सूची
- Semgrep MCP सर्वर
शुरू करना
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
- कनेक्टर सेटिंग्स पृष्ठ पर जाएँ (सीधा लिंक)
- कनेक्शन को नाम दें
Semgrep - MCP सर्वर URL को
https://mcp.semgrep.ai/sseपर सेट करें - प्रमाणीकरण को
No authenticationपर सेट करें - मुझे इस एप्लिकेशन पर भरोसा है चेकबॉक्स को चेक करें
- बनाएँ पर क्लिक करें
अधिक विवरण के लिए आधिकारिक दस्तावेज़ देखें।
होस्टेड सर्वर
[!WARNING] mcp.semgrep.ai एक प्रायोगिक सर्वर है जो अप्रत्याशित रूप से खराब हो सकता है। यह तेज़ी से नई कार्यक्षमता प्राप्त करेगा।🚀
Cursor
- Cursor सेटिंग्स खोलने के लिए Cmd + Shift + J दबाएँ
- MCP उपकरण चुनें
- नया 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 प्लेटफ़ॉर्म से कनेक्ट करने के लिए:
- लॉगिन करें या साइन अप करें
- सेटिंग्स से एक टोकन जनरेट करें
- टोकन को अपने पर्यावरण चर में जोड़ें:
-
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 दस्तावेज़ देखें।
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 देखें।
समान उपकरण 🔍
- semgrep-vscode - आधिकारिक VS Code एक्सटेंशन
- semgrep-intellij - IntelliJ प्लगइन
सामुदायिक परियोजनाएँ 🌟
- semgrep-rules - Semgrep नियमों का आधिकारिक संग्रह
- mcp-server-semgrep - Szowesgad और stefanskiasan द्वारा लिखित मूल प्रेरणा
MCP सर्वर रजिस्ट्रियाँ
Semgrep टीम द्वारा ❤️ के साथ बनाया गया