Skip to main content
Glama
Fastly NGWAF MCP Server

Fastly NGWAF MCP Server

by purpleax

Fastly NGWAF MCP Server

A comprehensive Model Context Protocol (MCP) server that provides seamless integration with the Fastly NGWAF (Next-Gen Web Application Firewall) API. This server enables AI assistants like Claude to manage web application security through natural language interactions.

Features

šŸ›”ļø Complete WAF Management

  • Create, read, update, and delete security rules

  • Manage IP allow/block lists

  • Configure rate limiting and alerts

  • Monitor security events and analytics

šŸ¢ Multi-tenancy Support

  • Corporation and site-level management

  • Context-aware operations

  • Bulk operations across multiple sites

šŸ¤– AI-Friendly Interface

  • Natural language rule creation

  • Intelligent threat pattern detection

  • Automated security policy suggestions

Related MCP server: @fastly/mcp

Installation

Prerequisites

  • Node.js 18+

  • Fastly NGWAF account with API access

  • MCP-compatible AI assistant (Claude Desktop, etc.)

Setup

  1. Clone the repository

git clone https://github.com/yourusername/FastlyMCP.git
cd FastlyMCP
  1. Install dependencies

npm install
  1. Configure environment variables (optional)

# Create .env file
FASTLY_NGWAF_EMAIL=your-email@example.com
FASTLY_NGWAF_TOKEN=your-api-token
FASTLY_NGWAF_DEFAULT_CORP=your-corp-name
FASTLY_NGWAF_DEFAULT_SITE=your-site-name
  1. Start the server

npm start

Configuration

Claude Desktop Integration

Add this to your Claude Desktop configuration file:

Windows: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "fastly-ngwaf": {
      "command": "node",
      "args": ["path/to/FastlyMCP/server.js"],
      "env": {
        "FASTLY_NGWAF_EMAIL": "your-email@example.com",
        "FASTLY_NGWAF_TOKEN": "your-api-token"
      }
    }
  }
}

AI-Powered Interactions

Natural Language: "Create a rule to block SQL injection attacks on my website"

AI Response: The assistant will automatically:

  1. Detect the intent (create security rule)

  2. Identify the threat type (SQL injection)

  3. Generate appropriate rule conditions

  4. Apply the rule to your configured site

Available Tools

Authentication & Setup

  • set_credentials - Configure API credentials

  • test_connection - Validate API connectivity

  • set_context - Set default corp/site context

  • discover_environment - Explore available resources

Rule Management

  • list_corp_rules / list_site_rules - List security rules

  • create_corp_rule / create_site_rule - Create new rules

  • delete_corp_rule / delete_site_rule - Remove rules

Security Monitoring

  • list_events - View security events

  • search_requests - Search request logs

  • get_suspicious_ips - Identify threat sources

  • expire_event - Manually unblock IPs

IP List Management

  • manage_whitelist - Allow/block IP addresses

  • manage_blacklist - Block malicious IPs

  • manage_lists - Custom IP/country/string lists

Analytics & Reporting

  • get_analytics - Security metrics and trends

  • get_corp_overview - High-level attack summary

  • manage_alerts - Configure monitoring alerts

Advanced Features

  • manage_cloudwaf - CloudWAF instance management

  • manage_users - User access control

Common Use Cases

🚨 Incident Response

"An IP address 1.2.3.4 is attacking my site, block it immediately"

  • AI automatically identifies the threat

  • Adds IP to blacklist with appropriate duration

  • Confirms blocking is active

šŸ›”ļø Proactive Security

"Set up protection against the latest OWASP top 10 vulnerabilities"

  • Creates comprehensive rule sets

  • Configures appropriate thresholds

  • Sets up monitoring alerts

šŸ“Š Security Analytics

"Show me attack trends from the past month and suggest improvements"

  • Analyzes historical attack data

  • Identifies patterns and threat sources

  • Recommends rule optimizations

šŸ”§ Bulk Management

"Apply the same security rules from site A to sites B, C, and D"

  • Exports existing rule configurations

  • Adapts rules for different sites

  • Bulk applies with verification

API Reference

The server exposes the complete Fastly NGWAF API through intuitive MCP tools. Each tool maps to specific API endpoints while handling authentication, context resolution, and error management automatically.

Rate Limiting

The server respects Fastly API rate limits and implements appropriate retry logic.

Development

Project Structure

FastlyMCP/
ā”œā”€ā”€ server.js          # Main MCP server implementation
ā”œā”€ā”€ package.json       # Dependencies and scripts  
ā”œā”€ā”€ README.md          # This documentation
└── .env.example       # Environment variable template

Testing

# Test API connectivity
npm start
# In another terminal/AI session:
# test_connection()

Troubleshooting

Common Issues

Authentication Failed

  • Verify email and API token are correct

  • Ensure token has appropriate permissions

  • Check Fastly account status

Context Errors

  • Set default corporation: set_context({ corpName: "your-corp" })

  • Verify corp/site names exist: discover_environment()

Permission Denied

  • Check user role has necessary permissions

  • Verify site access in Fastly dashboard

Debug Mode

Enable verbose logging by setting environment variable:

DEBUG=fastly-ngwaf npm start

Security Considerations

  • Store API credentials securely (environment variables or secure credential managers)

  • Use principle of least privilege for API tokens

  • Regularly rotate API credentials

  • Monitor for unauthorized API usage

  • Keep dependencies updated

License

MIT License - see LICENSE file for details.

Support

Changelog

v1.0.0

  • Initial release with complete NGWAF API coverage

  • MCP server implementation

  • Rule management (CRUD operations)

  • IP list management

  • Analytics and monitoring

  • CloudWAF support

  • User management features

Available Tools

29 tools
create_corp_ruleC

Create a corporation-level rule

Inputs: type (required), groupOperator (required), conditions (required), actions (required), +6 more.

create_siteC

Create a new site in a corporation

Inputs: siteName (required), corpName, displayName, agentLevel, +3 more.

create_site_ruleC

Create a site-level rule

Inputs: type (required), groupOperator (required), conditions (required), actions (required), +8 more.

delete_corp_ruleC

Delete a corporation-level rule

Inputs: ruleId (required), corpName.

delete_siteC

Delete a site

Inputs: corpName, siteName.

delete_site_ruleC

Delete a site-level rule

Inputs: ruleId (required), corpName, siteName.

discover_environmentC

Discover available corporations and sites for the authenticated user

Inputs: corpName.

expire_eventC

Manually expire an event (unblock IP)

Inputs: eventId (required), corpName, siteName.

get_analyticsC

Get analytics data (top attacks, timeseries, etc.)

Inputs: type (required), corpName, siteName, from, +5 more.

get_contextB

Get the current context (corp and site names)

Inputs: no named parameters.

get_corp_overviewC

Get attack overview for a corporation

Inputs: corpName, from, until.

get_siteC

Get details of a specific site

Inputs: corpName, siteName.

get_suspicious_ipsC

Get list of suspicious IP addresses

Inputs: corpName, siteName, limit.

list_corp_rulesC

List rules at corporation level

Inputs: corpName, type, page, limit.

list_corpsB

List all corporations accessible to the authenticated user

Inputs: no named parameters.

list_eventsC

List security events (attacks, blocks, etc.)

Inputs: corpName, siteName, from, until, +3 more.

list_site_rulesC

List rules for a specific site

Inputs: corpName, siteName, type, page, +1 more.

list_sitesC

List sites in a corporation

Inputs: corpName, query, page, limit.

manage_alertsC

Manage alerts for monitoring attack patterns

Inputs: action (required), corpName, siteName, alertId, +6 more.

manage_blacklistC

Manage IP blacklist (blocklist)

Inputs: action (required), corpName, siteName, ip, +3 more.

manage_cloudwafC

Manage CloudWAF instances

Inputs: action (required), corpName, deploymentId, name, +6 more.

manage_listsC

Manage custom lists (IP, country, string, etc.)

Inputs: action (required), corpName, siteName, listId, +6 more.

manage_usersC

Manage corporation users

Inputs: action (required), corpName, userEmail, role, +1 more.

manage_whitelistC

Manage IP whitelist (allowlist)

Inputs: action (required), corpName, siteName, ip, +3 more.

search_requestsC

Search requests with advanced filtering

Inputs: corpName, siteName, query, page, +1 more.

set_contextB

Set the default corporation and site context for subsequent operations

Inputs: corpName (required), siteName.

set_credentialsC

Set Fastly NGWAF API credentials (email and access token)

Inputs: email (required), token (required).

test_connectionA

Test the API connection and validate credentials

Inputs: no named parameters.

update_siteC

Update site configuration

Inputs: corpName, siteName, displayName, agentLevel, +3 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3/5.0

    Scored across 29 tools

    Disambiguation4/5

    Most tools have distinct purposes targeting specific resources (sites, rules, events, lists, etc.), but some overlap exists: manage_blacklist and manage_whitelist are clear opposites, but manage_lists (custom lists) could be confused with them. Tools like manage_alerts and manage_cloudwaf are distinct but their boundaries with other monitoring/configuration tools might require careful reading of descriptions.

    Naming Consistency5/5

    Tool names follow a highly consistent verb_noun pattern throughout (e.g., create_corp_rule, list_sites, get_analytics, manage_users). All use snake_case with clear action prefixes (create, delete, get, list, manage, set, etc.), making them predictable and easy to parse for an agent.

    Tool Count3/5

    With 29 tools, the count is borderline high for a WAF management server. While it covers many aspects (rules, sites, events, analytics, configuration), it risks being overwhelming. A typical well-scoped server might have 15-25 tools; this is slightly above that range but not extreme.

    Completeness5/5

    The toolset provides comprehensive coverage for WAF management: CRUD for sites and rules (create, get, list, update, delete), event handling (list, expire), analytics, context management, credential setup, and utilities like testing connections. No obvious gaps are present; agents can perform full lifecycle operations.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      Enables AI assistants to interact with Fastly's CDN API through the Model Context Protocol, allowing secure management of CDN services, caching, security settings, and performance monitoring without exposing API keys.
      2
      22 npm
      7
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables assistants to interact with the Fastly API, allowing them to manage services, domains, TLS settings, traffic, dictionaries, ACLs, purge content, and make configuration changes.
      327 npm
      39
      MIT
    • A
      license
      B
      quality
      C
      maintenance
      Enables AI assistants to query and analyze Imperva Cloud WAF configurations through natural language, supporting retrieval of sites, domains, policies, and rules.
      4
      8
      Apache 2.0

    Appeared in Searches