This page shows how to connect the S4E MCP server to the most popular AI tools. Every client follows the same pattern: point it at the server's /mcp endpoint and pass your token in the S4E-API-Token header.


Prerequisites

  1. An S4E Public API Token. Generate one at app.s4e.io/api-token, then copy it. In the examples below, replace <YOUR_TOKEN> with this value.
  2. A reachable MCP endpoint: https://mcp.s4e.io/mcp (hosted, no setup required).

Keep your token secret

Treat the API token like a password. Do not commit it to a repository, paste it in shared screens, or store it in plaintext config that is checked into version control.


Cursor

Add the server to ~/.cursor/mcp.json (global) or .cursor/mcp.json (per-project):

{
  "mcpServers": {
    "s4e": {
      "type": "http",
      "url": "https://mcp.s4e.io/mcp",
      "headers": {
        "S4E-API-Token": "<YOUR_TOKEN>"
      }
    }
  }
}

Then open Settings → MCP and confirm s4e shows a green/active status. If it does not appear, restart Cursor or click Reload next to the server.


Claude Desktop

Edit the config file for your OS:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "s4e": {
      "type": "http",
      "url": "https://mcp.s4e.io/mcp",
      "headers": {
        "S4E-API-Token": "<YOUR_TOKEN>"
      }
    }
  }
}

After saving, reload Claude Desktop:

  • Quick reload: Ctrl+R — reloads the config and restarts MCP servers.
  • Full restart: Cmd+Q (macOS) to fully quit, then reopen. Use this if Ctrl+R does not pick up the server (closing the window alone is not enough).

Claude Code

The fastest way is the CLI:

claude mcp add --transport http s4e https://mcp.s4e.io/mcp \
  --header "S4E-API-Token: <YOUR_TOKEN>"

Or configure it manually in ~/.claude.json (global) or .mcp.json (project):

{
  "mcpServers": {
    "s4e": {
      "type": "http",
      "url": "https://mcp.s4e.io/mcp",
      "headers": {
        "S4E-API-Token": "<YOUR_TOKEN>"
      }
    }
  }
}

Note

"type": "http" is required in Claude Code — it does not infer the transport from the URL.


VS Code (GitHub Copilot)

VS Code supports MCP servers for Copilot agent mode. Add the server to .vscode/mcp.json in your workspace (or via Command Palette → MCP: Add Server):

{
  "servers": {
    "s4e": {
      "type": "http",
      "url": "https://mcp.s4e.io/mcp",
      "headers": {
        "S4E-API-Token": "<YOUR_TOKEN>"
      }
    }
  }
}

Open the Copilot Chat Agent mode and the S4E tools become available to the model.


Windsurf

Add the server to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "s4e": {
      "serverUrl": "https://mcp.s4e.io/mcp",
      "headers": {
        "S4E-API-Token": "<YOUR_TOKEN>"
      }
    }
  }
}

Then open Settings → Cascade → MCP Servers and click Refresh.


Any Other MCP Client

The server speaks standard Streamable HTTP MCP. For any compliant client, supply:

Setting Value
Transport HTTP (Streamable)
URL https://mcp.s4e.io/mcp (or your self-hosted URL)
Header S4E-API-Token: <YOUR_TOKEN>

Verify the Connection

Once the client is connected, try a few simple prompts:

  • "Verify my S4E token."
  • "Show my asset list."
  • "Start a full scan on example.com."

If the first request fails, check the table below.


Troubleshooting

Symptom Cause Fix
401 token required S4E-API-Token header missing Confirm the headers object exists in your config and the token is valid.
Tool list is empty Server not reachable Confirm the hosted endpoint is reachable and your client config points to https://mcp.s4e.io/mcp.
Cannot find module dist/stdio.js Leftover old stdio config Remove any old command: node ... stdio.js entry; keep only the HTTP entry.
Changes not picked up (Claude Desktop) Config not reloaded Press Ctrl+R; if that fails, Cmd+Q and reopen.
Not showing in Cursor Cache Restart Cursor or Settings → MCP → s4e → Reload.

Next Steps