
शैक्षिक उद्देश्यों के लिए नहीं: एक MCP सर्वर जो पेशेवर पेनिट्रेशन टेस्टरों के लिए है, जिसमें STDIO/HTTP/SSE समर्थन, nmap, go/dirbuster, nikto, JtR, hashcat, वर्डलिस्ट निर्माण, और अधिक शामिल है।
आधुनिक ट्रांसपोर्ट/प्रमाणीकरण समर्थन और विस्तारित रिकॉन टूलिंग के साथ पेशेवर पेनिट्रेशन-टेस्टिंग MCP सर्वर।
@modelcontextprotocol/sdk@^1.26.0 में अपग्रेड किया गया@modelcontextprotocol/inspector@^0.20.0) पर बनाए रखा गया, बंडल लॉन्चर के साथMCP_TRANSPORT=http)subfinderEnum, httpxProbe, ffufScan, nucleiScan, trafficCapture, hydraBruteforce, privEscAudit, extractionSweeplistEngagementRecords, getEngagementRecordscopeMode=ask) का उपयोग करके रिपोर्टों के लिए SoW कैप्चर फ़्लो जोड़ा गयाhttpx-toolkit (पसंदीदा) या मान्य ProjectDiscovery httpx का उपयोग करे, Python httpx CLI टकरावों से बचने के लिएpentest-mcp inspector)nmapScanrunJohnTheRipperrunHashcatgobusterniktosubfinderEnumhttpxProbeffufScannucleiScantrafficCapturehydraBruteforceprivEscAuditextractionSweepgenerateWordlistnpm install -g pentest-mcp
pentest-mcp
pentest-mcp inspector
आप सीधे Inspector फ़्लैग्स अग्रेषित कर सकते हैं:
pentest-mcp inspector --help
MCP_TRANSPORT=http MCP_SERVER_HOST=0.0.0.0 MCP_SERVER_PORT=8000 pentest-mcp
MCP_TRANSPORT=sse MCP_SERVER_PORT=8001 pentest-mcp
stdio: स्थानीय MCP क्लाइंट के लिए डिफ़ॉल्ट।http: आधुनिक नेटवर्क ट्रांसपोर्ट। अनुशंसित।sse: केवल संगतता। अप्रचलित और भविष्य के प्रमुख रिलीज़ में हटा दिया जाएगा।pentest-mcp inspector बंडल @modelcontextprotocol/inspector CLI लॉन्च करता है।node <this-package-entrypoint> stdioMCP_TRANSPORT=http (या यदि आवश्यक हो तो sse) का उपयोग करते समय ये env वेरिएबल सेट करें:
MCP_AUTH_ENABLED=true
MCP_AUTH_MODE=bearer
MCP_AUTH_SCOPES=read,write
MCP_AUTH_AUDIENCE=
MCP_OIDC_ISSUER=https://issuer.example.com
MCP_OIDC_JWKS_URL=https://issuer.example.com/.well-known/jwks.json
# वैकल्पिक/बैकअप सत्यापन मोड:
MCP_OIDC_INTROSPECTION_URL=https://issuer.example.com/oauth/introspect
MCP_OAUTH_CLIENT_ID=...
MCP_OAUTH_CLIENT_SECRET=...
लीगेसी उपनाम अभी भी अस्थायी रूप से स्वीकार किए जाते हैं:
MCP_OAUTH_ENABLEDMCP_OAUTH_PROVIDER_URLMCP_OAUTH_SCOPEScreateClientReport अब SoW हैंडलिंग मोड का समर्थन करता है:
scopeMode=ask: MCP एलिसिटेशन के माध्यम से उपयोगकर्ता को संकेत दें (अनुशंसित)scopeMode=provided: सीधे scopeOfWork मान का उपयोग करेंscopeMode=template: अंतर्निहित सामान्य अधिकृत-परीक्षण टेम्पलेट का उपयोग करेंयदि एलिसिटेशन स्वीकार/उपलब्ध नहीं है, तो रिपोर्ट स्वचालित रूप से टेम्पलेट पर वापस आ जाती है।
अभी तक कोई अलग फ़ाइल-अपलोड API नहीं है। वर्तमान विकल्प हैं:
{
"tool": "createClientReport",
"arguments": {
"title": "Q1 External Pentest",
"assessmentType": "external-network",
"scopeMode": "ask"
}
}
scopeOfWork में पेस्ट करें{
"tool": "createClientReport",
"arguments": {
"title": "Q1 External Pentest",
"assessmentType": "external-network",
"scopeMode": "provided",
"scopeOfWork": "Authorized targets: ...\nOut-of-scope: ...\nTesting window: ...\nRules of engagement: ..."
}
}
{
"tool": "createClientReport",
"arguments": {
"title": "Q1 External Pentest",
"assessmentType": "external-network",
"scopeMode": "template"
}
}
recordId=...) संग्रहीत करता है।listEngagementRecords का उपयोग करें।recordIds (या डिफ़ॉल्ट रूप से नवीनतम रिकॉर्ड) से रिपोर्ट तैयार करें।ask)provided)template)ये विशेष रूप से पेंटेस्ट प्रशासनिक ओवरहेड को कम करने के लिए नियोजित हैं।
scopeFilePath इन्जेशन (MCP होस्ट पर स्थानीय फ़ाइल पथ से SoW लोड करें)scopeDocument चंक्ड अपलोड फ़्लो (रिमोट क्लाइंट के लिए MCP के माध्यम से सीधे SoW सामग्री भेजें)recordId) से निष्कर्षों और रिपोर्ट अनुभागों में साक्ष्य ऑटो-लिंकिंगnuclei, nikto, आदि) में निष्कर्ष डीडुप/मर्जअपनाने पर ध्यान दें:
scopeFilePath और scopeDocument के लिए मजबूत उपयोग की उम्मीद है क्योंकि अधिकांश टीमें पहले से ही SoW को दस्तावेज़ों/PDF में बनाए रखती हैं और बार-बार पेस्ट-एंड-रिफ़ॉर्मेट चरणों से बचना चाहती हैं।{
"tool": "subfinderEnum",
"arguments": {
"domain": "example.com",
"recursive": true,
"allSources": true
}
}
{
"tool": "httpxProbe",
"arguments": {
"targets": ["example.com", "api.example.com"],
"includeTitle": true,
"includeStatusCode": true
}
}
{
"tool": "ffufScan",
"arguments": {
"targetUrl": "https://example.com/FUZZ",
"wordlist": "/usr/share/seclists/Discovery/Web-Content/common.txt",
"threads": 40
}
}
{
"tool": "nucleiScan",
"arguments": {
"targets": ["https://example.com"],
"severities": ["medium", "high", "critical"]
}
}
{
"tool": "trafficCapture",
"arguments": {
"networkInterface": "eth0",
"packetCount": 200,
"bpfFilter": "tcp port 80"
}
}
{
"tool": "hydraBruteforce",
"arguments": {
"target": "10.10.10.20",
"service": "ssh",
"usernameList": "/usr/share/seclists/Usernames/top-usernames-shortlist.txt",
"passwordList": "/usr/share/seclists/Passwords/Common-Credentials/10k-most-common.txt"
}
}
{
"tool": "extractionSweep",
"arguments": {
"targetUrl": "https://target.local/item.php?id=1",
"risk": 2,
"level": 3
}
}
docker-compose --profile http up
docker-compose --profile stdio up
docker-compose --profile sse up
डॉकर इमेज इंस्टॉल करता है:
nmap, john, hashcat, gobuster, nikto, ffuf, hydra, sqlmap, tcpdumpsubfinder, httpx + httpx-toolkit alias, nucleiसुनिश्चित करें कि बाइनरी PATH में हैं:
which nmap john hashcat gobuster nikto subfinder httpx-toolkit ffuf nuclei hydra sqlmap tcpdump
यदि httpx-toolkit इंस्टॉल नहीं है, तो एक मान्य ProjectDiscovery httpx बाइनरी को फ़ॉलबैक के रूप में स्वीकार किया जाता है।
केवल अधिकृत उपयोग। केवल उन सिस्टम/नेटवर्क पर चलाएँ जहाँ आपके पास स्पष्ट लिखित अनुमति हो।
अंतिम अद्यतन: 2026-03-23
Model Context Protocol (MCP) अभी भी उपकरणों और एजेंटों के लिए सबसे उपयोगी इंटरऑपरेबिलिटी परतों में से एक है। व्यापार-बंद यह है कि बड़े MCP सर्वर कई उपकरणों को उजागर कर सकते हैं, और भोले-भाले टूल-कॉलिंग से स्कीमा, टूल चैटर और अप्रासंगिक कॉल ट्रेस के साथ संदर्भ विंडो भर सकती है।
व्यवहार में, "अधिक उपकरण" हमेशा "बेहतर परिणाम" नहीं होते हैं। उपकरण सतह क्षेत्र को निष्पादन पैटर्न के साथ जोड़ा जाना चाहिए जो टोकन उपयोग को सीमित और व्यवहार को पूर्वानुमेय रखते हैं।
हाल के वर्कफ़्लो तेजी से जटिल ऑर्केस्ट्रेशन को चैट संदर्भ से बाहर और कोड निष्पादन लूप में ले जा रहे हैं। यह दोहराए जाने वाले स्कीमा टोकन को कम करता है और टूल उपयोग को ऑडिट करने योग्य और परीक्षण योग्य बनाता है।
मुख्य पठन:
उन उपयोगकर्ताओं के लिए जो प्रतिलिपि प्रस्तुत करने योग्य और कम-शोर MCP उपयोग चाहते हैं, कोडमोड-उन्मुख सेटअप से शुरू करें:
व्यावहारिक चेतावनी: मजबूत सेटअप के साथ भी, मॉडल व्यवहार प्रदाताओं और संस्करणों में अभी भी असंगत हो सकता है। पुनर्प्रयास, गार्ड्रेल और नियतात्मक फ़ॉलबैक को जगह पर रखें।
एक उच्च-लाभ पैटर्न हर कच्चे उपकरण को हर समय मॉडल को उजागर करने के बजाय MCP सर्वरों को कॉल करने योग्य कोड इंटरफ़ेस और कार्य-केंद्रित CLI में लपेटना है।
संदर्भ टूलिंग:
यह क्षेत्र तेज़ी से बदलता है। यदि आप अब यह पढ़ रहे हैं, तो इस मार्गदर्शन के कुछ हिस्से पहले से ही पुराने हो सकते हैं।
प्रॉम्प्ट इंजेक्शन टूल-उपयोग करने वाले एजेंटों के लिए एक खुली सुरक्षा समस्या बनी हुई है। यह प्रबंधनीय है, लेकिन "हल" नहीं है।
प्राथमिक जोखिम:
परिणाम:
शमन आधार रेखा:
प्रत्येक टूल आउटपुट को अविश्वसनीय इनपुट मानें जब तक कि स्पष्ट रूप से सत्यापित न हो।
यह सर्वर MCP प्रोटोकॉल संस्करण 2025-11-25 और SDK @modelcontextprotocol/sdk@^1.27.1 को लक्षित करता है।
listEngagementRecordsgetEngagementRecordcreateClientReportcancelScan| सुविधा | स्थिति |
|---|
| stdio ट्रांसपोर्ट | समर्थित (डिफ़ॉल्ट) |
| स्ट्रीमेबल HTTP ट्रांसपोर्ट | समर्थित (MCP_TRANSPORT=http) |
| SSE ट्रांसपोर्ट (लीगेसी) | अप्रचलित संगतता मोड |
| उपकरण एनोटेशन | सभी उपकरण शीर्षक, readOnlyHint, destructiveHint, idempotentHint, openWorldHint के साथ एनोटेट किए गए |
| बियरर प्रमाणीकरण (OIDC/JWKS) | समर्थित |
| ओरिजिन सत्यापन (HTTP) | MCP_ALLOWED_ORIGINS सेट होने पर अमान्य Origin पर 403 |
| JSON स्कीमा 2020-12 | Zod-जनरेटेड स्कीमा |
| संरचित उपकरण त्रुटियाँ | मॉडल स्व-सुधार के लिए वर्णनात्मक संदेशों के साथ isError फ़्लैग |
| एलिसिटेशन | रिपोर्ट जनरेशन में SoW कैप्चर के लिए उपयोग किया जाता है |