FortiAppSec MCP Server
Provides tools for managing Fortinet FortiAppSec (WAF as a Service), including listing, creating, deleting, and retrieving WAF applications, as well as listing available WAF templates.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@FortiAppSec MCP ServerList all WAF applications"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
FortiAppSec MCP Server
MCP server for managing Fortinet FortiAppSec (WAF as a Service) via AI agents. Built with FastMCP, deployed as a container.
Tools
Tool | Description |
| List all WAF applications |
| Get details of a specific WAF application |
| Create a new WAF application |
| Delete a WAF application |
| List available WAF templates |
Every tool accepts an optional appsec_api_key parameter. If not provided, the server reads from the FORTINET_APPSEC_API_KEY environment variable. Per-call parameter overrides the environment variable.
Related MCP server: FortiCNAPP MCP Server
Connect from Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"fortiappsec": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp-fortiappsec.fortidemoscloud.com/mcp"
]
}
}
}Connect from Gemini CLI
Add to your Gemini settings (~/.gemini/settings.json):
{
"mcpServers": {
"fortiappsec": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp-fortiappsec.fortidemoscloud.com/mcp"
]
}
}
}Connect from Kiro / VS Code
Add to .kiro/settings/mcp.json or equivalent:
{
"mcpServers": {
"fortiappsec": {
"url": "https://mcp-fortiappsec.fortidemoscloud.com/mcp"
}
}
}Test with curl
# 1. Initialize session and capture Mcp-Session-Id from headers
export SESSION_ID=$(curl -s -i -X POST https://mcp-fortiappsec.fortidemoscloud.com/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test-curl","version":"1.0"}}}' \
| grep -i "mcp-session-id" | awk '{print $2}' | tr -d '\r')
echo "Session ID: $SESSION_ID"
# 2. List tools using the captured Session ID
curl -s -X POST https://mcp-fortiappsec.fortidemoscloud.com/mcp \
-H "Content-Type: application/json" \
-H "Mcp-Session-Id: $SESSION_ID" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
# 3. Call a tool (list WAF applications)
curl -s -X POST https://mcp-fortiappsec.fortidemoscloud.com/mcp \
-H "Content-Type: application/json" \
-H "Mcp-Session-Id: $SESSION_ID" \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"waf_list_applications","arguments":{"appsec_api_key":"YOUR_API_KEY"}}}'Run locally
# Docker (with API key from environment)
export FORTINET_APPSEC_API_KEY="your_api_key_here"
docker-compose up --build -d
# Or directly
uv sync
FORTINET_APPSEC_API_KEY="your_api_key_here" uv run uvicorn app.server:app --host 0.0.0.0 --port 8000Server available at http://localhost:8000/mcp with health check at /health.
Deploy to Kubernetes
kubectl apply -f k8s-deployment.yamlExposes on NodePort 30082. Image: jviguerasfortinet/mcp-fortiappsec-server:v1.0.0
Tool Parameters
waf_create_application
Parameter | Required | Default | Description |
| Yes | — | Application name |
| Yes | — | Primary domain name |
| Yes | — | Backend server address |
| No | "" | FortiAppSec API key (uses env var if not provided) |
| No | 80 | Backend server port |
| No | "" | Additional domains (comma-separated) |
| No | 80 | HTTP listening port |
| No | 443 | HTTPS listening port |
| No | 0 | CDN status (0=disabled, 1=enabled) |
| No | eu-west-1 | Cloud region |
| No | AWS | Platform type |
| No | 1 | Block mode (0=monitor, 1=block) |
| No | http,https | Services (comma-separated) |
| No | http | Server type |
| No | Ireland | Server country |
| No | 355e3ce6-... | Template ID |
waf_list_applications / waf_list_templates
Parameter | Required | Description |
| No | FortiAppSec API key (uses |
waf_get_application / waf_delete_application
Parameter | Required | Description |
| Yes | Application ID |
| No | FortiAppSec API key (uses |
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
- ZapierOAuthcom.zapier
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA production-ready MCP server for managing FortiGate firewalls, enabling AI assistants to manage firewall policies, network objects, routing, and device configurations.35MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for managing Fortinet FortiCNAPP via AI agents, enabling vulnerability scanning, agent management, and compliance monitoring.MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables natural language management of FortiGate firewalls via the FortiOS REST API, offering 393 tools for system, policy, routing, VPN, and security configuration.MIT
- AlicenseNot gradedqualityCmaintenanceSecure MCP server that exposes WAFpass REST endpoints as tools for AI assistants, with role-based filtering and token validation.Apache 2.0