Remote MCP Server for Google SecOps
January 15, 2026 ยท View on GitHub
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
Authentication and Authorization
The remote server uses Application Default Credentials (ADC).
- Set up ADC: Follow the guide to Set up Application Default Credentials.
- Authenticate: Detailed instructions are in Authenticate to Google and Google Cloud MCP servers.
- Roles: The caller requires the
roles/mcp.toolUserrole. Administrators adding this role needroles/serviceusage.serviceUsageAdmin.
For production, see Agent identity recommendations in Manage MCP servers.
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.toolUser - The server respects existing granular entitlements assigned to the identity via the Chronicle REST API.
- MCP Access Control
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.