Sandbox
@google/mcp-security

MCP servers for Google security tools

This repo exposes Google security products through MCP so an agent can search alerts, inspect threat intel, and drive SOAR actions from a client. Each server can be enabled separately, and the repo includes setup docs, client config examples, and an optional Google ADK autonomous SOC agent.

524 stars138 forksPythonUpdated 8d ago
Who it's for

Builders who want their agent to investigate alerts, hunt threats, or trigger security workflows in Google tools.

What it delivers

You can connect an MCP client to Google SecOps, GTI, SCC, or SOAR instead of switching into those consoles by hand.

What it does

SecOps MCP server

Connects an MCP client to Google Security Operations for threat detection, investigation, and hunting.

Threat intelligence server

Exposes Google Threat Intelligence data through its own MCP server.

Security Command Center server

Lets an agent work with cloud security and risk management data from SCC.

SecOps SOAR server

Provides MCP access to orchestration, automation, and response workflows, with optional integrations.

ADK SOC agent

Includes a prebuilt autonomous SOC agent in `run-with-google-adk` that can run in a REPL or as a FastAPI service.

Client setup docs

Documents how to wire the servers into Claude Desktop, Claude Code, Cursor, Gemini CLI, and Cline.

How to get it

  1. 1You can install the packages using uv tool install (recommended)
    # Install packages
    uv tool install google-secops-mcp
    uv tool install gti-mcp
    uv tool install scc-mcp
    uv tool install secops-soar-mcp
  2. 2Alternatively, you can use pip
    pip install google-secops-mcp
    pip install gti-mcp
    pip install scc-mcp
    pip install secops-soar-mcp
  3. 3With environment variables
    CHRONICLE_PROJECT_ID="your-project-id" \
    CHRONICLE_CUSTOMER_ID="01234567-abcd-4321-1234-0123456789ab" \
    CHRONICLE_REGION="us" \
    uvx secops_mcp

README

Google Security Operations and Threat Intelligence MCP Server

This repository contains Model Context Protocol (MCP) servers that enable MCP clients (like Claude Desktop or the cline.bot VS Code extension) to access Google's security products and services:

  1. Remote MCP Server for Google SecOps - Fully managed, enterprise-ready MCP server (Recommended)
  2. Google Security Operations (Chronicle) - For threat detection, investigation, and hunting
  3. Google Security Operations SOAR - For security orchestration, automation, and response
  4. Google Threat Intelligence (GTI) - For access to Google's threat intelligence data
  5. Security Command Center (SCC) - For cloud security and risk management

For the new Remote MCP Server, please see the launch announcement and the setup guide.

Each server can be enabled and run separately, allowing flexibility for environments that don't require all capabilities.

Documentation

Comprehensive documentation is available in the docs folder. You can:

  1. Read the markdown files directly in the repository
  2. View the documentation website at https://google.github.io/mcp-security/
  3. Generate HTML documentation locally using Sphinx (see instructions in the docs folder)

The documentation covers:

  • Detailed information about each MCP server
  • Configuration options and requirements
  • Usage examples and best practices

To get started with the documentation, see docs/index.md.

Authentication

The server uses Google's authentication. Make sure you have either:

  1. Set up Application Default Credentials (ADC)
  2. Set a GOOGLE_APPLICATION_CREDENTIALS environment variable
  3. Used gcloud auth application-default login

Standalone Usage

Each MCP server can be installed and used as a standalone package.

Installation

You can install the packages using uv tool install (recommended):

# Install packages
uv tool install google-secops-mcp
uv tool install gti-mcp
uv tool install scc-mcp
uv tool install secops-soar-mcp

Alternatively, you can use pip:

pip install google-secops-mcp
pip install gti-mcp
pip install scc-mcp
pip install secops-soar-mcp

Running Standalone

After installation, you can run the servers directly using uvx:

# Run SecOps MCP server
uvx --from google-secops-mcp secops_mcp

# Run GTI MCP server
uvx gti_mcp

# Run SCC MCP server
uvx scc_mcp

# Run SecOps SOAR MCP server (with optional integrations)
uvx secops_soar_mcp --integrations CSV,OKTA

With environment variables:

CHRONICLE_PROJECT_ID="your-project-id" \
CHRONICLE_CUSTOMER_ID="01234567-abcd-4321-1234-0123456789ab" \
CHRONICLE_REGION="us" \
uvx secops_mcp

Using with MCP Clients (Recommended)

You can configure MCP clients to use the installed packages with uvx. Here's an example configuration:

{
  "mcpServers": {
    "secops": {
      "command": "uvx",
      "args": [
        "--from",
        "google-secops-mcp",
        "secops_mcp"
      ],
      "env": {
        "CHRONICLE_PROJECT_ID": "your-project-id",
        "CHRONICLE_CUSTOMER_ID": "01234567-abcd-4321-1234-0123456789ab",
        "CHRONICLE_REGION": "us"
      }
    },
    "gti": {
      "command": "uvx",
      "args": [
        "gti_mcp"
      ],
      "env": {
        "VT_APIKEY": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
      }
    },
    "scc-mcp": {
      "command": "uvx",
      "args": [
        "scc_mcp"
      ],
      "env": {}
    },
    "secops-soar": {
      "command": "uvx",
      "args": [
        "secops_soar_mcp",
        "--integrations",
        "CSV,OKTA"
      ],
      "env": {
        "SOAR_URL": "https://yours-here.siemplify-soar.com:443",
        "SOAR_APP_KEY": "01234567-abcd-4321-1234-0123456789ab"
      }
    }
  }
}

You can also use environment files with uvx:

{
  "mcpServers": {
    "secops": {
      "command": "uvx",
      "args": [
        "--env-file",
        "/path/to/.env",
        "secops_mcp"
      ]
    }
  }
}

Client Configurations

The MCP servers from this repo can be used with the following clients

  1. Cline, Claude Desktop, and other MCP supported clients
  2. Google ADK(Agent Development Kit) Agents (a prebuilt agent is provided, details below)
  3. Google SecOps Extension - Install our example extension for Gemini CLI to get specialized security skills (Triage, Investigate, Hunt).

The configuration for Claude Desktop and Cline is the same (provided below for uv and pip). We use the stdio transport.

Using the Google ADK Autonomous SOC Agent

The repository includes a prebuilt Autonomous Security Operations Center (SOC) Agent powered by Google ADK v2 and the Model Context Protocol in run-with-google-adk.

It can be run locally via an interactive CLI REPL or launched as a FastAPI service for Google Cloud Run:

cd run-with-google-adk
cp sample.env .env

# Interactive terminal investigation REPL
uv run mcp-security-agent chat

# Web UI and Cloud Run REST API server
uv run mcp-security-agent serve --port 8080

For full setup, architecture details, and Cloud Run deployment guides, see the ADK Agent Guide.

MCP Client Config Locations

MCP clients all use the same JSON configuration format (see the MCP Server Configuration Reference), but they expect the file in different locations.

Client ApplicationScopemacOS / Linux LocationWindows LocationNotes
Gemini CLIGlobal~/.gemini/settings.json%USERPROFILE%\.gemini\settings.jsonFile must include mcpServers. Confirmed in Google Security Ops post.
Claude DesktopGlobal~/Claude/claude_desktop_config.json%USERPROFILE%\Claude\claude_desktop_config.jsonConfig accessible via Claude > Settings > Developer > Edit Config.
Claude CodeGlobal~/.claude.json%USERPROFILE%\.claude.jsonPrimary config file for Claude Code CLI and extensions.
Cursor IDE (Global)Global~/.cursor/mcp.json%USERPROFILE%\.cursor\mcp.jsonEnables MCP servers globally across all projects.
Cursor IDE (Project)Project<project-root>/.cursor/mcp.json<project-root>/.cursor/mcp.jsonWorkspace/project-specific config file.
VS Code (Workspace)Workspace<project-root>/.vscode/mcp.json<project-root>/.vscode/mcp.jsonWorkspace-level config used when an MCP extension (like Cline) is installed. Overrides global config if present.
Cline (VS Code Ext.)GlobalInside VS Code extension data%APPDATA%\Code\User\globalStorage\<extension-id>\settings\cline_mcp_settings.jsonExact path varies by VS Code variant and platform. <extension-id> corresponds to the installed extension folder (e.g., saoudrizwan.claude-dev).

Additional Notes for Windows

  • %USERPROFILE%C:\Users\<username>
  • %APPDATA%C:\Users\<username>\AppData\Roaming
  • <project-root> → folder opened in VS Code or IDE for the project
  • <extension-id> → name of the installed extension folder (e.g., saoudrizwan.claude-dev for Claude/Cline)

Tip: Single Config with Symlinks

If you use multiple MCP clients, you can maintain a single config file and symlink it into each expected location. This avoids drift and keeps your server definitions consistent.

Using uv (Recommended)

{
  "mcpServers": {
    "secops": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/the/repo/server/secops/secops_mcp",
        "run",
        "server.py"
      ],
      "env": {
        "CHRONICLE_PROJECT_ID": "your-project-id",
        "CHRONICLE_CUSTOMER_ID": "01234567-abcd-4321-1234-0123456789ab",
        "CHRONICLE_REGION": "us"
      }
    },
    "secops-soar": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/the/repo/server/secops-soar/secops_soar_mcp",
        "run",
        "server.py",
        "--integrations",
        "CSV,OKTA"
      ],
      "env": {
        "SOAR_URL": "https://yours-here.siemplify-soar.com:443",
        "SOAR_APP_KEY": "01234567-abcd-4321-1234-0123456789ab"
      }
    },
    "gti": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/the/repo/server/gti/gti_mcp",
        "run",
        "server.py"
      ],
      "env": {
        "VT_APIKEY": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
      }
    },
    "scc-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/the/repo/server/scc",
        "run",
        "scc_mcp.py"
      ],
      "env": {
      }
    }
  }
}

NOTE: uv also supports passing an .env file like so:

      "command": "uv",
      "args": [
        "--directory",
        "/path/to/the/repo/server/...",
        "run",
        "--env-file",
        "/path/to/the/repo/server/.env",
        "server.py"
      ]

SOAR_APP_KEY and VT_APIKEY are good candidates for .env

Using pip

You can also use pip instead of uv to install and run the MCP servers. This approach uses a bash command to:

  1. Change to the server directory
  2. Install the package in development mode
  3. Run the server binary
{
  "mcpServers": {
    "secops": {
      "command": "/bin/bash",
      "args": [
        "-c",
        "cd /path/to/the/repo/server/secops && pip install -e . && secops_mcp"
      ],
      "env": {
        "CHRONICLE_PROJECT_ID": "your-project-id",
        "CHRONICLE_CUSTOMER_ID": "01234567-abcd-4321-1234-0123456789ab",
        "CHRONICLE_REGION": "us"
      },
      "alwaysAllow": [
      ]
    },
    "gti": {
      "command": "/bin/bash",
      "args": [
        "-c",
        "cd /path/to/the/repo/server/gti && pip install -e . && gti_mcp"
      ],
      "env": {
        "VT_APIKEY": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
      },
      "alwaysAllow": [
      ]
    },
    "scc-mcp": {
      "command": "/bin/bash",
      "args": [
        "-c",
        "cd /path/to/the/repo/server/scc && pip install -e . && scc_mcp"
      ],
      "env": {
      },
      "alwaysAllow": []
    },
    "secops-soar": {
      "timeout": 60,
      "command": "/bin/bash",
      "args": [
        "-c",
        "cd /path/to/the/repo/server/secops-soar && pip install -e . && python secops_soar_mcp/server.py"
      ],
      "env": {
        "SOAR_URL": "https://yours-here.siemplify-soar.com:443",
        "SOAR_APP_KEY": "01234567-abcd-4321-1234-0123456789ab"
      },
      "transportType": "stdio"
    }
  }
}

When to use uv vs pip

  • uv: Recommended for most users because it offers faster package installation, better dependency resolution, and isolated environments. It also supports loading environment variables from a file.
  • pip: Use when you prefer the standard Python package manager or when you have specific environment setup requirements.

UV_ENV_FILE

The --env-file option allows uv to use a .env file for environment variables. You can create this file or use system environment variables as described in the usage guide.

Alternatively, you can set UV_ENV_FILE to your .env file and omit the --env-file portion of the configuration.

Refer to the usage guide for detailed instructions on how to set up these environment variables.

Troubleshooting

Running the MCP Server from the CLI (and outside of your MCP client) can reveal issues:

uv --verbose \
  --directory "/Users/dandye/Projects/google-mcp-security/server/scc" \
  run \
  --env-file "/Users/dandye/Projects/google-mcp-security/.env" \
  scc_mcp.py

Check your PATH(s):

which uv # you may need to restart MCP Client after installing uv

which python || which python3

python --version || python3 --version

Installing in Claude Desktop

To use the MCP servers with Claude Desktop:

  1. Install Claude Desktop
  2. Open Claude Desktop and select "Settings" from the Claude menu
  3. Click on "Developer" in the lefthand bar, then click "Edit Config"
  4. Update your claude_desktop_config.json with the configuration (replace paths with your actual paths)
  5. Save the file and restart Claude Desktop
  6. You should now see the hammer icon in the Claude Desktop interface, indicating the MCP server is active

Installing in cline (vscode extension)

  1. Install cline.bot extension in VSCode
  2. Update your cline_mcp_settings.json with the configuration (replace paths with your actual paths)
  3. Save the file and restart VS Code

License

Apache 2.0

Files in the repo

Repository payload13 top-level entries
  • .github
  • docs
  • extensions
  • run-with-google-adk
  • server
  • .agent
  • .gitignore
  • .gitmodules
  • cline_mcp_settings.json.example
  • CONTRIBUTING
  • gemini-extension.json
  • LICENSE
  • README.md

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More connectors

Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface

86k

High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.

43k

Universal provider proxy for OpenAI Codex & Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code

14k
okf-memory/
okf-agent-memory

Git-native persistent memory for AI coding agents. Implements Google OKF v0.2 with sub-300µs in-memory BM25 search, embedded MCP server, and progressive disclosure. Slashes token bloat by 80% with zero external databases or dependencies. Built in pure Go.

547
2akouwu/
reverify

Stop your AI from making things up — it proposes, deterministic tools decide, every claim checked against ground truth with evidence. Grounded facts and context survive resets. Reverse engineering is the proving ground. MCP server + CLI.

1.1k

x64dbg-MCP Server is a native MCP (Model Context Protocol) plugin for x64dbg that exposes the debugger's full functionality over HTTP. Connect any MCP-compatible AI assistant and control x64dbg programmatically: set breakpoints, step through code, read memory, dump registers, and more. Built with Zig — zero dependencies, single-binary output, cros

1.9k