Arcjet MCP server
Arcjet is the runtime security platform that ships with your code. Enforce budgets, stop prompt injection, detect bots, and protect personal information with Arcjet’s AI security building blocks.
The Arcjet MCP server is one of two transports that connect Arcjet skills to the Arcjet API. The other is the Arcjet CLI. Use the MCP server with AI coding tools that have no shell access, such as ChatGPT and Claude Desktop. It also works with editors that have built-in MCP support, such as VS Code Copilot, Windsurf, and Cursor. Use the CLI when you are working in a terminal session.
Both transports expose the same management-plane surface – teams, sites, keys, requests, decisions, traffic analysis, anomaly detection, IP investigation, security briefings, and remote rule management. For the full reference, see Available tools.
The MCP server is available at:
https://api.arcjet.com/mcpIt implements the 2025-06-18 revision of the MCP Authorization and Streamable HTTP specifications, with OAuth-based authentication.
Supported clients
Section titled “Supported clients”Any client that supports the 2025-06-18 MCP specification with Streamable HTTP transport and OAuth authorization is supported. This includes:
- ChatGPT
- Claude Code
- Codex CLI
- Claude Desktop
- Cursor
- VS Code with Copilot
- Windsurf
- Many others that implement the MCP specification.
ChatGPT
Section titled “ChatGPT”- In ChatGPT, go to Settings.
- Navigate to Connectors and select Add connection.
- Enter
https://api.arcjet.com/mcpas the server URL. - Select OAuth for authentication.
- Click Create.
ChatGPT handles the OAuth flow automatically.
Claude Code
Section titled “Claude Code”claude mcp add arcjet --transport http https://api.arcjet.com/mcpClaude Code opens a browser for OAuth authentication on first connection. Once
authenticated, you can use the /mcp command to verify the connection.
Codex CLI
Section titled “Codex CLI”codex mcp add arcjet --url https://api.arcjet.com/mcpCodex prompts you to authenticate with Arcjet when it first connects to the server.
Claude Desktop
Section titled “Claude Desktop”- Open Settings in the sidebar.
- Navigate to Connectors and select Add custom connector.
- Configure the connector:
- Name:
Arcjet - URL:
https://api.arcjet.com/mcp
- Name:
Cursor
Section titled “Cursor”Add to .cursor/mcp.json in your project:
{ "mcpServers": { "arcjet": { "type": "streamable-http", "url": "https://api.arcjet.com/mcp" } }}After you add the server, Cursor shows a Needs login prompt. Click it to authorize Cursor to access your Arcjet account.
VS Code with Copilot
Section titled “VS Code with Copilot”Add to your .vscode/mcp.json in your project or user settings:
{ "servers": { "arcjet": { "type": "http", "url": "https://api.arcjet.com/mcp" } }}Or add it from the command palette:
- Open the Command Palette (Ctrl+Shift+P on Windows/Linux or Cmd+Shift+P on macOS).
- Run MCP: Add Server.
- Select HTTP.
- Enter the URL:
https://api.arcjet.com/mcp - Enter the name:
Arcjet - Select Workspace or User depending on your preference.
VS Code prompts you to authenticate with OAuth on first use.
Windsurf
Section titled “Windsurf”Add to your mcp_config.json file:
{ "mcpServers": { "arcjet": { "serverUrl": "https://api.arcjet.com/mcp" } }}For more details, see the Windsurf MCP documentation.
Available tools
Section titled “Available tools”Once connected, the following tools are available to your AI assistant:
list-teams– Lists teams the authenticated user belongs to.list-sites– Lists sites within a specified team.create-site– Creates a new site within a specified team.get-site-key– Returns the SDK key (ARCJET_KEY) for a specific site.list-requests– Lists recent requests for a site. Supports filtering by conclusion (ALLOW,DENY,ERROR) and pagination.get-request-details– Returns full details for a specific request including headers, rules executed, and decision information.explain-decision– Explains why Arcjet allowed or denied a specific request. Returns a natural language summary, per-rule breakdown, and suggested next steps.get-site-quota– Returns quota usage and limits for a site in the current billing window.analyze-traffic– Analyzes request traffic over a time period. Returns total requests, denials, denial rate, top paths, top IPs, top denial reasons, and trend compared with the previous period.get-anomalies– Detects unusual security patterns by comparing current traffic to the previous period. Identifies traffic spikes, geographic shifts, new threat activities, new bot signatures, risk escalation, and suspicious IP patterns.investigate-ip– Investigates an IP address in the context of a site. Returns geo location, threat intelligence (network type, threat activities, entity classification, risk level), and the IP’s recent request activity (conclusion breakdown, denial reasons, targeted paths, daily timeline).get-dry-run-impact– Analyzes what would happen if dry-run rules were promoted to live. Shows how many currently-allowed requests would have been blocked by each rule type, which IPs would be most affected, and a false-positive estimate.get-security-briefing– Returns a comprehensive security briefing: active rules summary, traffic analysis, threat intelligence, anomaly detection, dry-run promotion readiness, quota status, and prioritized actionable recommendations. Designed for daily consumption.list-rules– Lists all remote rules configured for a site with their ID, type, mode, and configuration summary.create-rule– Creates a new remote rule for a site. Supports rate limit, bot, shield, and filter rule types.update-rule– Replaces an existing remote rule configuration. All fields must be provided (full replacement).delete-rule– Deletes a remote rule, immediately stopping it from being evaluated.promote-rule– Promotes a remote rule fromDRY_RUNtoLIVEmode after verification.
Remote rules
Section titled “Remote rules”Remote rules are managed through the MCP server or the Arcjet dashboard – no
code changes or redeployment needed. They apply globally to all requests for a
site. Only rate_limit, bot, shield, and filter rule types are supported
as remote rules. Rules that need parsed request body content (email,
sensitive_info, prompt_injection) require the SDK.
See the remote rules documentation for the full reference, including how remote rules are evaluated alongside SDK rules and when to use each.
The most common use case for remote rules is responding to an active attack. For example, if you notice suspicious traffic from a specific country, VPN, or IP address, you can create a filter rule to block it immediately without deploying new code:
- Use
list-requeststo investigate the suspicious traffic and identify patterns (for example, a specific country, IP range, or VPN usage). - Use
create-ruleto add a filter rule inDRY_RUNmode to verify it matches the right traffic. For example, block a specific country:ip.src.country == "XX"(ISO 3166-1 alpha-2 country code, such asUS,CN, orRU), block VPN traffic:ip.src.vpn, or block an IP range:ip.src in { 1.2.3.0/24 }. - Use
list-requestsagain to confirm the rule is matching the expected traffic without blocking legitimate users. - Use
promote-ruleto switch the rule fromDRY_RUNtoLIVE, immediately blocking the attack traffic. - Once the attack subsides, use
delete-ruleto remove the block.
Security monitoring
Section titled “Security monitoring”Use the analysis tools to maintain ongoing security awareness:
- Daily briefing: Call
get-security-briefingperiodically for a comprehensive overview of your site’s security posture in a single call. It covers traffic trends, threat landscape, anomalies, dry-run readiness, quota status, and prioritized recommendations. - Traffic analysis: Use
analyze-trafficto understand request patterns, denial rates, top paths, and top IPs. This provides the same data as the Arcjet dashboard analytics. - Anomaly detection: Use
get-anomaliesto detect unusual patterns by comparing current traffic to the previous period – traffic spikes, geographic shifts, new threat activities, or suspicious IP behavior. - IP investigation: When you identify a suspicious IP (from
analyze-trafficorlist-requests), useinvestigate-ipto get full context: geo location, threat intelligence, and the IP’s complete request activity on your site. - Dry-run validation: Before promoting a rule from
DRY_RUNtoLIVE, useget-dry-run-impactto see exactly how many currently-allowed requests would be blocked, which IPs are most affected, and a false-positive risk estimate.
Usage examples
Section titled “Usage examples”Investigate and block suspicious traffic
Section titled “Investigate and block suspicious traffic”“I’m seeing a spike in denied requests on my site. Can you investigate what’s happening and help me block the source?”
The assistant calls analyze-traffic to identify the spike, then
list-requests filtered to DENY to surface the top offending IPs. It uses
investigate-ip to pull threat intelligence for each IP, then suggests a filter
rule. Using create-rule, it creates the rule in DRY_RUN mode so you can
verify the match before calling promote-rule to go live.
Get a daily security briefing
Section titled “Get a daily security briefing”“Give me a security briefing for my production site.”
The assistant calls list-teams and list-sites to locate your production
site, then calls get-security-briefing. It returns a summary covering active
rules, traffic trends compared with the previous period, anomaly detection, threat
intelligence highlights, dry-run promotion readiness, quota status, and
prioritized recommendations you can act on immediately.
Set up bot protection without redeploying
Section titled “Set up bot protection without redeploying”“Add bot protection to my marketing site – start in dry-run mode so I can check it’s not blocking real users.”
The assistant calls list-teams and list-sites to find the site, then
create-rule to add a bot rule with mode: DRY_RUN configured to block
automated traffic. After traffic flows through, ask the assistant to call
get-dry-run-impact to see how many requests would have been blocked and to
estimate false-positive risk. When you’re satisfied, ask it to call
promote-rule to switch the rule to LIVE.
Authentication
Section titled “Authentication”The MCP server uses OAuth for authentication. When you first connect from any supported client, Arcjet redirects you to sign in with your Arcjet account. Once authenticated, your AI assistant can securely access your account resources.
Security
Section titled “Security”- Verify the endpoint – always confirm you are connecting to
https://api.arcjet.com/mcp. - Review tool calls – enable confirmation prompts in your AI client so you can review actions before they execute.
- Trusted clients only – only connect from AI clients you trust. Connecting grants the AI tool the same access as your Arcjet account.
See also
Section titled “See also”- Agent get started – canonical entry point for setting up Arcjet in an agentic workflow.
- Arcjet CLI – sibling support transport for terminal-based workflows.
- Arcjet Plugin – bundled experience for Claude Code and Cursor users that wires up MCP, skills, and coding rules together.
Privacy and support
Section titled “Privacy and support”- Privacy policy: arcjet.com/privacy.
- Support: support@arcjet.com or join our Discord. For more information, see the support page.