{"workflow":{"id":13443,"name":"Test WAF security interactively with an AI agent and WAFtester MCP","views":23,"recentViews":0,"totalViews":23,"createdAt":"2026-02-16T20:35:52.906Z","description":"## What it does\n\nA conversational AI agent that connects to [WAFtester](https://waftester.com) via MCP (Model Context Protocol) for interactive Web Application Firewall security testing. Type natural language requests — the agent picks the right tools, runs the tests, and explains the results.\n\n## About WAFtester\n\n[WAFtester](https://waftester.com) is an open-source CLI for testing Web Application Firewalls. It ships 27 MCP tools, 2,800+ attack payloads across 18 categories (SQLi, XSS, SSRF, SSTI, command injection, XXE, and more), detection signatures for 26 WAF vendors and 9 CDNs, and enterprise-grade assessment with F1/MCC scoring and letter grades (A+ through F).\n\n- GitHub: [github.com/waftester/waftester](https://github.com/waftester/waftester)\n- Docs: [Installation](https://github.com/waftester/waftester/blob/main/docs/INSTALLATION.md) | [Examples](https://github.com/waftester/waftester/blob/main/docs/EXAMPLES.md) | [Commands](https://github.com/waftester/waftester/blob/main/docs/COMMANDS.md)\n\n## Who it's for\n\n- **Security engineers** running ad-hoc WAF assessments\n- **Penetration testers** who want AI-assisted reconnaissance and bypass discovery\n- **DevSecOps teams** validating WAF coverage before and after deployments\n- **API security teams** testing OpenAPI/Swagger specs against WAF rules\n\n## How it works\n\nThe workflow has four nodes:\n\n1. **Chat Trigger** — Opens an n8n chat interface where you type requests in plain English\n2. **AI Agent** — Receives your message, reasons about which tools to call, and orchestrates the testing workflow\n3. **OpenAI Chat Model** — Provides the LLM reasoning layer (GPT-4o recommended; swappable for Anthropic, Ollama, etc.)\n4. **WAFtester MCP** — Connects to the WAFtester server via SSE and exposes all 27 tools to the agent\n\nThe agent follows a standard WAF testing workflow:\n\n1. **detect_waf** — Fingerprint the WAF vendor and CDN protecting the target\n2. **discover** — Map the attack surface (endpoints, parameters, technologies) from robots.txt, sitemaps, JavaScript, and Wayback Machine\n3. **learn** — Generate a prioritized test plan based on discovery results\n4. **scan** — Fire 2,800+ attack payloads and measure detection vs. bypass rates\n5. **bypass** — Systematic mutation matrix testing to find WAF evasion techniques\n6. **assess** — Generate a formal security grade with F1, precision, MCC, and false positive rate\n\nLong-running operations (scan, assess, bypass, discover, discover_bypasses, event_crawl, scan_spec) run asynchronously — the agent polls for results automatically.\n\n## Key capabilities\n\n| Capability | Details |\n|---|---|\n| WAF detection | Fingerprint 26 WAF vendors and 9 CDNs from response headers, cookies, and error pages |\n| Payload scanning | 2,800+ payloads across 18 attack categories |\n| Bypass discovery | Mutation matrix with 40+ tamper techniques to find WAF evasions |\n| Enterprise assessment | F1 score, precision, MCC, false positive rate, and A+ through F grading |\n| API spec testing | Validate, plan, and scan OpenAPI/Swagger/Postman specs |\n| Headless crawling | Click-driven DOM crawling via headless browser for JS-rendered endpoints |\n| Knowledge resources | 12 built-in resources covering WAF signatures, evasion techniques, OWASP mappings, and config defaults |\n\n## Example prompts\n\n- \"What WAF is protecting https://example.com?\"\n- \"Scan https://example.com for SQLi and XSS\"\n- \"Find WAF bypasses for https://example.com\"\n- \"Run a full security assessment of https://example.com\"\n- \"Validate my API spec at https://example.com/openapi.json\"\n- \"Discover the attack surface of https://example.com\"\n\n## How to set up\n\n1. **Start WAFtester MCP server:**\n   `docker run -p 8080:8080 ghcr.io/waftester/waftester:latest mcp --http :8080`\n2. **Add OpenAI credentials** in n8n: Settings → Credentials → New → OpenAI API\n3. **Select the credential** in the OpenAI Chat Model node\n4. **Activate** the workflow and open the chat interface\n\nAlternatively, use the included `docker-compose.yml` to run both n8n and WAFtester together with `docker compose up -d`.\n\n## Requirements\n\n| Requirement | Details |\n|---|---|\n| WAFtester MCP server | Docker image (`ghcr.io/waftester/waftester:latest`) or [binary install](https://github.com/waftester/waftester/blob/main/docs/INSTALLATION.md) for macOS, Linux, Windows |\n| LLM API key | OpenAI (default), or swap the model node for Anthropic, Ollama, Azure OpenAI, or any LangChain-compatible provider |\n| Authorization | Only test targets you have explicit written permission to test |\n\n## Links\n\n- [WAFtester website](https://waftester.com)\n- [GitHub repository](https://github.com/waftester/waftester)\n- [Installation guide](https://github.com/waftester/waftester/blob/main/docs/INSTALLATION.md)\n- [Full examples](https://github.com/waftester/waftester/blob/main/docs/EXAMPLES.md)\n- [Docker Hub](https://hub.docker.com/r/waftester/waftester)","workflow":{"meta":{"templateCredsSetupCompleted":false},"name":"Test WAF security interactively with AI agent and WAFtester MCP","tags":[],"nodes":[{"id":"f22a0b1c-3c36-4ca0-87b7-a2eb1b08ed91","name":"Chat Trigger","type":"@n8n/n8n-nodes-langchain.chatTrigger","notes":"Opens the n8n chat interface. Type your security testing requests here.","position":[-192,288],"parameters":{},"typeVersion":1.1},{"id":"fe0e963b-e2f8-44ef-9047-a658abe23a49","name":"AI Agent","type":"@n8n/n8n-nodes-langchain.agent","notes":"Routes chat messages to WAFtester tools. The system prompt guides the agent through the standard testing workflow.","position":[48,288],"parameters":{"options":{"systemMessage":"You are a WAF security testing assistant powered by WAFtester. You help users test their Web Application Firewalls by running scans, detecting WAF vendors, discovering attack surfaces, finding bypasses, and generating security assessments.\n\nYour typical workflow:\n1. detect_waf - Identify the WAF vendor protecting the target\n2. discover - Map the attack surface (endpoints, parameters, technologies)\n3. learn - Generate a targeted test plan based on discovery\n4. scan - Fire attack payloads and measure detection rate\n5. bypass - Find WAF evasion techniques using the mutation matrix\n6. assess - Generate a formal WAF grade with F1/MCC metrics\n\nAlways start with detect_waf when given a new target. Be explicit about what each tool does and what the results mean. When scans find bypasses, explain the security impact clearly.\n\nAsync tools (scan, assess, bypass, discover, discover_bypasses, event_crawl) return a task_id. Use get_task_status to poll for results.\n\nAvailable attack categories: sqli, xss, traversal, auth, ssrf, ssti, cmdi, xxe, nosqli, graphql, cors, crlf, redirect, upload, jwt, oauth, prototype, deserialize."}},"typeVersion":2},{"id":"87146f4d-a2ba-4cfc-98ac-5e83612fbde1","name":"WAFtester MCP","type":"@n8n/n8n-nodes-langchain.mcpClientTool","notes":"Connects to WAFtester MCP server via SSE. All 18 WAFtester tools are auto-discovered.","position":[192,496],"parameters":{"sseEndpoint":"={{ $env.WAFTESTER_SSE_URL || 'http://waftester:8080/sse' }}"},"typeVersion":1},{"id":"4d2d9f26-1870-4ea1-82b6-1b45d070d0f1","name":"OpenAI Chat Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","notes":"Configure your OpenAI API credentials here. GPT-4o recommended for best results.","position":[48,496],"parameters":{"options":{}},"credentials":{"openAiApi":{"id":"credential-id","name":"OpenAI account"}},"typeVersion":1.2},{"id":"60117f92-b6c4-4de6-a8d8-3304545f5725","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-960,0],"parameters":{"width":640,"height":780,"content":"### How it works\n\nChat with an AI agent that has access to WAFtester's 18 security testing tools via MCP (Model Context Protocol).\n\n**Chat Trigger** receives your message, **AI Agent** decides which tools to call, **WAFtester MCP** executes the tests and returns results.\n\nThe agent follows a standard testing workflow:\n1. Detect the WAF vendor protecting the target\n2. Discover endpoints and parameters\n3. Run attack payload scans across 18 categories\n4. Find WAF bypass techniques\n5. Generate a formal security assessment with grading\n\nAsync operations (scans, assessments) are automatically polled.\n\n### Setup steps\n\n1. Start WAFtester MCP server:\n```\ndocker run -p 8080:8080 ghcr.io/waftester/waftester:latest mcp --http :8080\n```\n2. Add OpenAI credentials: **Settings → Credentials → New → OpenAI API**\n3. Click the OpenAI Chat Model node and select your credential\n4. If WAFtester runs on a different host, set `WAFTESTER_SSE_URL` env variable\n5. Activate the workflow and open the chat interface\n\n### Customization tips\n\n- Try: \"Scan https://example.com for SQLi and XSS\"\n- Try: \"Find WAF bypasses for https://example.com\"\n- Customize the system prompt in the AI Agent node"},"typeVersion":1},{"id":"236b3768-06a3-4b28-8968-bf1fea98c548","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-288,0],"parameters":{"width":720,"height":144,"content":"## AI Agent chain\n\nChat Trigger sends messages to the AI Agent, which calls WAFtester MCP tools with OpenAI as the reasoning layer."},"typeVersion":1}],"active":false,"pinData":{},"settings":{"executionOrder":"v1"},"connections":{"Chat Trigger":{"main":[[{"node":"AI Agent","type":"main","index":0}]]},"WAFtester MCP":{"ai_tool":[[{"node":"AI Agent","type":"ai_tool","index":0}]]},"OpenAI Chat Model":{"ai_languageModel":[[{"node":"AI Agent","type":"ai_languageModel","index":0}]]}},"description":"## What it does\n\nA conversational AI agent that connects to WAFtester via MCP (Model Context Protocol) for interactive WAF security testing. Ask the agent to scan targets, detect WAF vendors, discover attack surfaces, find bypasses, and generate security assessments through natural language.\n\n## Who it's for\n\n- Security engineers running ad-hoc WAF assessments\n- Penetration testers who want AI-assisted reconnaissance\n- DevSecOps teams exploring WAF coverage interactively\n\n## How it works\n\n1. Open the n8n chat interface\n2. Type a request like \"Scan https://example.com for SQLi\"\n3. The AI Agent calls WAFtester MCP tools to execute tests\n4. Results are returned in chat with explanations\n\nThe agent has access to 18 WAFtester tools covering WAF detection, attack surface discovery, scanning across 18 categories (SQLi, XSS, SSRF, etc.), bypass discovery, and formal security grading.\n\n## How to set up\n\n1. Start WAFtester: `docker run -p 8080:8080 ghcr.io/waftester/waftester:latest mcp --http :8080`\n2. Add OpenAI credentials in Settings → Credentials → New → OpenAI API\n3. Activate the workflow and start chatting\n\n## Requirements\n\n- WAFtester MCP server (Docker)\n- OpenAI API key\n\nOnly test targets you have authorization to test."},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":6,"nodeTypes":{"n8n-nodes-base.stickyNote":{"count":2},"@n8n/n8n-nodes-langchain.agent":{"count":1},"@n8n/n8n-nodes-langchain.chatTrigger":{"count":1},"@n8n/n8n-nodes-langchain.lmChatOpenAi":{"count":1},"@n8n/n8n-nodes-langchain.mcpClientTool":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Qandil","username":"qandil","bio":"","verified":true,"links":[],"avatar":"https://gravatar.com/avatar/d0430f309d529ea46aa3ad5f0f6698373cf72c69dfd7801616742d644259afba?r=pg&d=retro&size=200"},"nodes":[{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1119,"icon":"fa:robot","name":"@n8n/n8n-nodes-langchain.agent","codex":{"data":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Agents","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"AI Agent","color":"#404040"},"iconData":{"icon":"robot","type":"icon"},"displayName":"AI Agent","typeVersion":3,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1153,"icon":"file:openAiLight.svg","name":"@n8n/n8n-nodes-langchain.lmChatOpenAi","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"OpenAI Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2Ljg2NzEgMTYuMzcxOEMzNy43NzQ2IDEzLjY0OCAzNy40NjIxIDEwLjY2NDIgMzYuMDEwOCA4LjE4NjYxQzMzLjgyODIgNC4zODY1MyAyOS40NDA3IDIuNDMxNDkgMjUuMTU1NiAzLjM1MTUxQzIzLjI0OTMgMS4yMDM5NiAyMC41MTA1IC0wLjAxNzMxNDggMTcuNjM5MiAwLjAwMDE4NTUzM0MxMy4yNTkxIC0wLjAwOTgxNDY4IDkuMzcyNzMgMi44MTAyNSA4LjAyNTIgNi45Nzc4M0M1LjIxMTM5IDcuNTU0MSAyLjc4MjU4IDkuMzE1MzggMS4zNjEzIDExLjgxMTdDLTAuODM3NDkzIDE1LjYwMTggLTAuMzM2MjMyIDIwLjM3OTQgMi42MDEzMyAyMy42Mjk0QzEuNjkzODEgMjYuMzUzMiAyLjAwNjMyIDI5LjMzNzEgMy40NTc2IDMxLjgxNDZDNS42NDAxNSAzNS42MTQ3IDEwLjAyNzcgMzcuNTY5NyAxNC4zMTI4IDM2LjY0OTdDMTYuMjE3OSAzOC43OTczIDE4Ljk1NzkgNDAuMDE4NSAyMS44MjkyIDM5Ljk5OThDMjYuMjExOCA0MC4wMTEgMzAuMDk5NCAzNy4xODg1IDMxLjQ0NjkgMzMuMDE3MUMzNC4yNjA4IDMyLjQ0MDkgMzYuNjg5NiAzMC42Nzk2IDM4LjExMDggMjguMTgzM0M0MC4zMDcxIDI0LjM5MzIgMzkuODA0NiAxOS42MTk0IDM2Ljg2ODMgMTYuMzY5M0wzNi44NjcxIDE2LjM3MThaTTIxLjgzMTcgMzcuMzg2QzIwLjA3OCAzNy4zODg1IDE4LjM3OTIgMzYuNzc0NyAxNy4wMzI5IDM1LjY1MDlDMTcuMDk0MSAzNS42MTg0IDE3LjIwMDQgMzUuNTU5NyAxNy4yNjkxIDM1LjUxNzJMMjUuMjM0MyAzMC45MTcxQzI1LjY0MTggMzAuNjg1OCAyNS44OTE4IDMwLjI1MjEgMjUuODg5MyAyOS43ODMzVjE4LjU1NDNMMjkuMjU1NyAyMC40OTgxQzI5LjI5MTkgMjAuNTE1NiAyOS4zMTU3IDIwLjU1MDYgMjkuMzIwNyAyMC41OTA2VjI5Ljg4OTZDMjkuMzE1NyAzNC4wMjQ3IDI1Ljk2NjggMzcuMzc3MiAyMS44MzE3IDM3LjM4NlpNNS43MjY0IDMwLjUwNzFDNC44NDc2MyAyOC45ODk2IDQuNTMxMzcgMjcuMjEwOCA0LjgzMjYzIDI1LjQ4NDVDNC44OTEzOCAyNS41MTk1IDQuOTk1MTMgMjUuNTgzMiA1LjA2ODg4IDI1LjYyNTdMMTMuMDM0MSAzMC4yMjU4QzEzLjQzNzggMzAuNDYyMSAxMy45Mzc4IDMwLjQ2MjEgMTQuMzQyOCAzMC4yMjU4TDI0LjA2NjggMjQuNjEwN1YyOC40OTgzQzI0LjA2OTMgMjguNTM4MyAyNC4wNTA1IDI4LjU3NyAyNC4wMTkzIDI4LjYwMkwxNS45Njc5IDMzLjI1MDlDMTIuMzgxNSAzNS4zMTU5IDcuODAxNDQgMzQuMDg4NCA1LjcyNzY1IDMwLjUwNzFINS43MjY0Wk0zLjYzMDEgMTMuMTIwNUM0LjUwNTEyIDExLjYwMDQgNS44ODY0IDEwLjQzNzkgNy41MzE0NCA5LjgzNDE1QzcuNTMxNDQgOS45MDI5IDcuNTI3NjkgMTAuMDI0MiA3LjUyNzY5IDEwLjEwOTJWMTkuMzEwNkM3LjUyNTE5IDE5Ljc3ODEgNy43NzUxOSAyMC4yMTE5IDguMTgxNDUgMjAuNDQzMUwxNy45MDU0IDI2LjA1N0wxNC41MzkxIDI4LjAwMDhDMTQuNTA1MyAyOC4wMjMzIDE0LjQ2MjggMjguMDI3IDE0LjQyNTMgMjguMDEwOEw2LjM3MjY2IDIzLjM1ODJDMi43OTM4MyAyMS4yODU2IDEuNTY2MzEgMTYuNzA2OCAzLjYyODg1IDEzLjEyMTdMMy42MzAxIDEzLjEyMDVaTTMxLjI4ODIgMTkuNTU2OUwyMS41NjQyIDEzLjk0MTdMMjQuOTMwNiAxMS45OTkyQzI0Ljk2NDMgMTEuOTc2NyAyNS4wMDY4IDExLjk3MjkgMjUuMDQ0MyAxMS45ODkyTDMzLjA5NyAxNi42MzhDMzYuNjgyMSAxOC43MDkzIDM3LjkxMDggMjMuMjk1NyAzNS44Mzk1IDI2Ljg4MDhDMzQuOTYzMyAyOC4zOTgzIDMzLjU4MzIgMjkuNTYwOCAzMS45Mzk1IDMwLjE2NThWMjAuNjg5NEMzMS45NDMyIDIwLjIyMTkgMzEuNjk0NSAxOS43ODk0IDMxLjI4OTQgMTkuNTU2OUgzMS4yODgyWk0zNC42MzgzIDE0LjUxNDJDMzQuNTc5NSAxNC40NzggMzQuNDc1OCAxNC40MTU1IDM0LjQwMiAxNC4zNzNMMjYuNDM2OCA5Ljc3Mjg5QzI2LjAzMzEgOS41MzY2NCAyNS41MzMxIDkuNTM2NjQgMjUuMTI4MSA5Ljc3Mjg5TDE1LjQwNDEgMTUuMzg4VjExLjUwMDRDMTUuNDAxNiAxMS40NjA0IDE1LjQyMDQgMTEuNDIxNyAxNS40NTE2IDExLjM5NjdMMjMuNTAzIDYuNzUxNThDMjcuMDg5NCA0LjY4Mjc5IDMxLjY3NDUgNS45MTQwNiAzMy43NDIgOS41MDE2NEMzNC42MTU4IDExLjAxNjcgMzQuOTMyIDEyLjc5MDUgMzQuNjM1OCAxNC41MTQySDM0LjYzODNaTTEzLjU3NDEgMjEuNDQzMUwxMC4yMDY1IDE5LjQ5OTRDMTAuMTcwMiAxOS40ODE5IDEwLjE0NjUgMTkuNDQ2OCAxMC4xNDE1IDE5LjQwNjhWMTAuMTA3OUMxMC4xNDQgNS45Njc4MSAxMy41MDI4IDIuNjEyNzQgMTcuNjQyOSAyLjYxNTI0QzE5LjM5NDIgMi42MTUyNCAyMS4wODkyIDMuMjMwMjUgMjIuNDM1NSA0LjM1MDI4QzIyLjM3NDMgNC4zODI3OCAyMi4yNjkzIDQuNDQxNTMgMjIuMTk5MiA0LjQ4NDAzTDE0LjIzNDEgOS4wODQxM0MxMy44MjY2IDkuMzE1MzggMTMuNTc2NiA5Ljc0Nzg5IDEzLjU3OTEgMTAuMjE2N0wxMy41NzQxIDIxLjQ0MDZWMjEuNDQzMVpNMTUuNDAyOSAxNy41MDA2TDE5LjczNDIgMTQuOTk5M0wyNC4wNjU1IDE3LjQ5OTNWMjIuNTAwN0wxOS43MzQyIDI1LjAwMDdMMTUuNDAyOSAyMi41MDA3VjE3LjUwMDZaIiBmaWxsPSIjN0Q3RDg3Ii8+Cjwvc3ZnPgo="},"displayName":"OpenAI Chat Model","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1247,"icon":"fa:comments","name":"@n8n/n8n-nodes-langchain.chatTrigger","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.chattrigger/"}]},"categories":["Core Nodes","Langchain"]}},"group":"[\"trigger\"]","defaults":{"name":"When chat message received"},"iconData":{"icon":"comments","type":"icon"},"displayName":"Chat Trigger","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"},{"id":26,"name":"Langchain"}]},{"id":1292,"icon":"file:../mcp.svg","name":"@n8n/n8n-nodes-langchain.mcpClientTool","codex":{"data":{"alias":["Model Context Protocol","MCP Client"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolmcp/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Tools"],"Tools":["Recommended Tools"]}}},"group":"[\"output\"]","defaults":{"name":"MCP Client"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgwIiBoZWlnaHQ9IjE4MCIgdmlld0JveD0iMCAwIDE5NSAxOTUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+Cgk8ZyBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMTIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+CgkJPHBhdGggZD0iTTI1IDk3Ljg1MjhMOTIuODgyMyAyOS45NzA2QzEwMi4yNTUgMjAuNTk4IDExNy40NTEgMjAuNTk4IDEyNi44MjMgMjkuOTcwNlYyOS45NzA2QzEzNi4xOTYgMzkuMzQzMSAxMzYuMTk2IDU0LjUzOTEgMTI2LjgyMyA2My45MTE3TDc1LjU1ODEgMTE1LjE3NyIvPgoJCTxwYXRoIGQ9Ik03Ni4yNjUzIDExNC40N0wxMjYuODIzIDYzLjkxMTdDMTM2LjE5NiA1NC41MzkxIDE1MS4zOTIgNTQuNTM5MSAxNjAuNzY1IDYzLjkxMTdMMTYxLjExOCA2NC4yNjUyQzE3MC40OTEgNzMuNjM3OCAxNzAuNDkxIDg4LjgzMzggMTYxLjExOCA5OC4yMDYzTDk5LjcyNDggMTU5LjZDOTYuNjAwNiAxNjIuNzI0IDk2LjYwMDYgMTY3Ljc4OSA5OS43MjQ4IDE3MC45MTNMMTEyLjMzMSAxODMuNTIiLz4KCQk8cGF0aCBkPSJNMTA5Ljg1MyA0Ni45NDExTDU5LjY0ODIgOTcuMTQ1N0M1MC4yNzU3IDEwNi41MTggNTAuMjc1NyAxMjEuNzE0IDU5LjY0ODIgMTMxLjA4N1YxMzEuMDg3QzY5LjAyMDggMTQwLjQ1OSA4NC4yMTY4IDE0MC40NTkgOTMuNTg5NCAxMzEuMDg3TDE0My43OTQgODAuODgyMiIvPgoJPC9nPgo8L3N2Zz4K"},"displayName":"MCP Client Tool","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":29,"name":"SecOps"},{"id":47,"name":"AI Chatbot"}],"image":[]}}