Remote MCP Server for Google SecOps¶
The Remote MCP server for Google SecOps simplifies the setup and usage of MCP by providing a fully-managed service. Instead of managing a local Python environment, you can point your AI agents or MCP clients to a globally-consistent and enterprise-ready endpoint.
This remote server inherits the rigorous scalability, security, and observability standards of the Google Cloud ecosystem.
Onboarding¶
Enable the Service¶
You must enable the MCP service in your Google Cloud project.
PROJECT_ID=<your-gcp-project-id>
gcloud components install beta
gcloud beta services mcp enable chronicle.googleapis.com/mcp --project=$PROJECT_ID
See Supported Products and the Enablement Guide for more details.
Environment Configuration¶
Remote MCP servers require specific environment context for every request. It is recommended to include these in a context file (e.g., GEMINI.md or system prompt) for your LLM:
When using the secops-hosted-mcp MCP Server, use these parameters for EVERY request:
Customer ID: <UUIDv4 for your tenant>
Region: <your-region>
Project ID: <your-gcp-project-id>
SOAR API Migration¶
The hosted MCP server uses the Chronicle REST APIs (OneMCP) instead of the legacy SOAR APIs.
SIEM tools: Available immediately without migration.
SOAR tools: Require migration to Chronicle API. See SOAR migration overview.
Governance¶
Model Armor¶
Optional protection to sanitize MCP tool calls and responses, mitigating prompt injection and sensitive data leakage.
Cloud Armor¶
Protect the endpoint itself using DDoS protection and WAF capabilities (IP allowlists, geo-blocking).
IAM¶
Access is managed via standard Google Cloud IAM.
Identity requires:
roles/mcp.toolUserThe server respects existing granular entitlements assigned to the identity via the Chronicle REST API.
Organization Policy¶
Restrict MCP usage across your organization. For example, to allow only the SecOps MCP server:
{
"name": "organizations/$ORG_ID/policies/gcp.managed.allowedMCPServices",
"spec": {
"rules": [
{
"enforce": true,
"parameters": {
"allowedServices": [
"chronicle.googleapis.com/mcp"
]
}
}
]
}
}
Observability¶
All administrative and access activities are recorded in Cloud Audit Logs.
Client Configuration¶
The remote server can be used with any MCP-compatible client. Since JSON configuration for MCP is not yet fully standardized across all clients, here are examples for common tools.
Automated Setup¶
For Gemini CLI and Antigravity, you can use the automated setup skills provided in the Google SecOps Extension:
Gemini CLI: Use the
secops-setup-gemini-cliskill.Antigravity: Use the
secops-setup-antigravityskill.
Gemini CLI¶
Using the google_credentials auth provider (native support):
{
"mcpServers": {
"secops-hosted-mcp": {
"httpUrl": "https://chronicle.us.rep.googleapis.com/mcp",
"authProviderType": "google_credentials",
"oauth": {
"scopes": ["https://www.googleapis.com/auth/cloud-platform"]
},
"timeout": 30000,
"headers": {
"x-goog-user-project": "<YOUR_PROJECT_ID>"
}
}
}
}
Testing with cURL¶
You can verify access directly without an MCP client:
curl --location 'https://chronicle.us.rep.googleapis.com/mcp' \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-H 'x-goog-user-project: <YOUR_PROJECT_ID>' \
-d '{
"method": "tools/call",
"params": {
"name": "list_rules",
"arguments": {
"project_id": "<YOUR_PROJECT_ID>",
"customer_id": "<YOUR_CUSTOMER_ID>",
"region": "<YOUR_REGION>"
}
},
"jsonrpc": "2.0",
"id": 1
}' -s
Agent Development Kit (ADK)¶
Example Python configuration using google-adk:
import google.auth
from google.auth.transport.requests import Request
from google.adk.tools.mcp_tool import McpToolset, StreamableHTTPConnectionParams
# 1. Setup scopes
SCOPES = ["https://www.googleapis.com/auth/chronicle"]
def get_access_token():
creds, _ = google.auth.default(scopes=SCOPES)
auth_req = Request()
creds.refresh(auth_req)
return creds.token
# 2. Configure Toolset
toolset = McpToolset(
connection_params=StreamableHTTPConnectionParams(
url="https://chronicle.us.rep.googleapis.com/mcp",
headers={
"Authorization": f"Bearer {get_access_token()}",
"Accept": "text/event-stream",
"x-goog-user-project": "<YOUR_PROJECT_ID>"
}
)
)
Available Tools¶
The remote MCP server exposes a strategic subset of Chronicle REST API methods as MCP tools. The list is extensive and includes tools for:
SIEM (Search, Rules, Alerts, Feeds)
SOAR (Cases, Playbooks, Connectors) - requires API migration
Use the list_tools MCP method or your client’s discovery command (e.g., /mcp desc in Gemini CLI) to see the full list dynamically.