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:
- Google Security Operations (Chronicle) - For threat detection, investigation, and hunting
- Google Security Operations SOAR - For security orchestration, automation, and response
- Google Threat Intelligence (GTI) - For access to Google's threat intelligence data
- Security Command Center (SCC) - For cloud security and risk management
Each server can be enabled and run separately, allowing flexibility for environments that don't require all capabilities.
Comprehensive documentation is available in the docs
folder. You can:
- Read the markdown files directly in the repository
- View the documentation website at https://google.github.io/mcp-security/
- 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.
The server uses Google's authentication. Make sure you have either:
- Set up Application Default Credentials (ADC)
- Set a GOOGLE_APPLICATION_CREDENTIALS environment variable
- Used
gcloud auth application-default login
The MCP servers from this repo can be used with the following clients
- Cline, Claude Desktop, and other MCP supported clients
- Google ADK(Agent Development Kit) Agents (a prebuilt agent is provided, details below)
The configuration for Claude Desktop and Cline is the same (provided below for uv and pip). We use the stdio transport.
Please refer to the README file for both - locally running the prebuilt agent and Cloud Run deployment.
{
"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"
},
"disabled": false,
"autoApprove": []
},
"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"
},
"disabled": false,
"autoApprove": []
},
"gti": {
"command": "uv",
"args": [
"--directory",
"/path/to/the/repo/server/gti/gti_mcp",
"run",
"server.py"
],
"env": {
"VT_APIKEY": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
},
"disabled": false,
"autoApprove": []
},
"scc-mcp": {
"command": "uv",
"args": [
"--directory",
"/path/to/the/repo/server/scc",
"run",
"scc_mcp.py"
],
"env": {
},
"disabled": false,
"autoApprove": []
}
}
}
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
You can also use pip instead of uv to install and run the MCP servers. This approach uses a bash command to:
- Change to the server directory
- Install the package in development mode
- 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"
},
"disabled": false,
"autoApprove": [
],
"alwaysAllow": [
]
},
"gti": {
"command": "/bin/bash",
"args": [
"-c",
"cd /path/to/the/repo/server/gti && pip install -e . && gti_mcp"
],
"env": {
"VT_APIKEY": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
},
"disabled": false,
"autoApprove": [
],
"alwaysAllow": [
]
},
"scc-mcp": {
"command": "/bin/bash",
"args": [
"-c",
"cd /path/to/the/repo/server/scc && pip install -e . && scc_mcp"
],
"env": {
},
"disabled": false,
"autoApprove": [],
"alwaysAllow": []
},
"secops-soar": {
"autoApprove": [
],
"disabled": false,
"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"
}
}
}
- 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.
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.
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
To use the MCP servers with Claude Desktop:
- Install Claude Desktop
- Open Claude Desktop and select "Settings" from the Claude menu
- Click on "Developer" in the lefthand bar, then click "Edit Config"
- Update your
claude_desktop_config.json
with the configuration (replace paths with your actual paths) - Save the file and restart Claude Desktop
- You should now see the hammer icon in the Claude Desktop interface, indicating the MCP server is active
- Install cline.bot extension in VSCode
- Update your
cline_mcp_settings.json
with the configuration (replace paths with your actual paths) - Save the file and restart VS Code
Apache 2.0