{
  "markdown": "# Chrome Enterprise Premium MCP Server\n\nA [Model Context Protocol](https://modelcontextprotocol.io/) (MCP) server for\n[Chrome Enterprise Premium](https://docs.cloud.google.com/chrome-enterprise-premium/docs/overview)\n(CEP). CEP extends Chrome's built-in security with Data Loss Prevention (DLP),\nreal-time threat protection (phishing and malware scanning), and Context-Aware\nAccess controls. This server exposes CEP's DLP rules, content detectors,\nconnector policies, browser telemetry, and license management as MCP tools,\nso any MCP-compatible AI agent can inspect and configure a Chrome Enterprise\nenvironment.\n\n<img width=\"1280\" height=\"640\" alt=\"c7b0d696-8488-48f9-8a11-bf8bbc72ee7e\" src=\"https://github.com/user-attachments/assets/2665d05d-3f02-4577-8183-2972e74b02e6\" />\n\n## Prerequisites\n\nBefore setting up the MCP server, ensure you have the following:\n\n1.  **Node.js & npm:** Node.js version `20.0.0` or higher installed locally.\n2.  **Google Workspace Account:**\n    - Any Workspace edition with a [Chrome Enterprise Premium](https://docs.cloud.google.com/chrome-enterprise-premium/docs/overview) license.\n    - An administrator role in the [Admin Console](https://admin.google.com/) (Super Admin or delegated with **Chrome Management** and **DLP** permissions). Standard Workspace accounts (or Google Cloud IAM permissions alone) do not grant access and will return `403 Permission Denied` errors with no indication that a Workspace role is missing.\n3.  **OAuth App Trust (if required):** If your organization restricts third-party app access, a Super Admin must [trust the OAuth client](docs/troubleshooting.md#configure-oauth-app-for-sensitive-scopes) in the Admin Console before you can authenticate.\n4.  **MCP Client:** A compatible MCP host application (such as Gemini CLI, Claude Desktop, Cursor, Windsurf, or VS Code).\n\n---\n\n### Quick start\n\nGet up and running in less than 2 minutes using the bundled Google-managed OAuth client. No repository cloning required!\n\n### 1. Connect your MCP client\n\nThe server uses **stdio** transport; your MCP client launches it as a child process. Depending on your client, connect the server using one of the following methods:\n\n**If you are using the Gemini CLI**, you can install this repository directly as an extension with a single command. This automatically configures the MCP connection and loads the built-in AI guidance rules:\n\n```bash\ngemini extensions install https://github.com/google/chrome-enterprise-premium-mcp\n```\n\n**For all other MCP-compatible clients** (such as Claude Desktop, Cursor, Windsurf, or VSCode), add this configuration block to your client's settings file (e.g., `claude_desktop_config.json` or `~/.gemini/settings.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"cep\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@google/chrome-enterprise-premium-mcp@latest\"],\n      \"env\": { \"GCP_STDIO\": \"true\" }\n    }\n  }\n}\n```\n\n### 2. Query the agent\n\nRestart your MCP client, then ask the agent to perform a check, for example:\n\n> \"How can you help me use Chrome Enterprise Premium?\"\n\n> \"How do I set up a rule to block uploads of credit card numbers?\"\n\n> \"List my Chrome Enterprise Premium DLP rules.\"\n\n> [!NOTE]\n> **Authentication:** The first time you run a query that calls a tool requiring authentication, the agent will prompt you to sign in.\n>\n> - **Desktop:** A browser tab will open automatically on Google's consent screen.\n> - **Headless/Remote:** If you are on SSH, Cloud Shell, or a container, the agent will provide a consent URL. Open it locally, sign in, and paste the redirect URL back to the agent in the chat.\n> - **CLI Fallback:** If you prefer to authenticate via the terminal, you can run:\n>   ```bash\n>   npx @google/chrome-enterprise-premium-mcp auth login\n>   ```\n\n---\n\n## Security & Blast Radius Warning\n\n> [!CAUTION]\n> **This server is an administrator-level interface to Chrome Enterprise Premium.**\n> When you connect it to an MCP client, you can use natural-language prompts to:\n>\n> - **Create and modify DLP rules and content detectors.**\n> - Change connector policies.\n> - Force-install browser extensions onto every managed Chrome browser.\n> - Enable Google Cloud APIs on your project.\n>\n> An attacker who plants hidden instructions in untrusted inputs—mail,\n> documents, scraped pages, ticket bodies—can hijack the connected MCP\n> client through [indirect prompt injection](https://en.wikipedia.org/wiki/Prompt_injection).\n> The attacker can then run those tools without your consent.\n>\n> To reduce the blast radius:\n>\n> - Connect this server only to MCP clients you trust, on data sources you trust.\n> - Treat every document, message, and webpage you put in front of the agent as untrusted. It might contain hidden instructions.\n> - Pay extra attention to mutating tools (`create_*`, `update_*`, `enable_*`); they have tenant-wide security impact.\n> - Use a dedicated, least-privilege admin account when experimenting.\n\n## Workspace Scopes & Permissions\n\nThe scope set requested during the \"Sign in\" consent flow maps directly to the underlying Google APIs needed for the server's tools:\n\n| Scope                                 | API                                                                             | Used for                                             |\n| :------------------------------------ | :------------------------------------------------------------------------------ | :--------------------------------------------------- |\n| `openid`, `userinfo.email`            | OpenID Connect                                                                  | Identifies the logged-in admin in startup output     |\n| `chrome.management.policy`            | [Chrome Policy](https://developers.google.com/chrome/policy)                    | Reading and writing connector and extension policies |\n| `chrome.management.reports.readonly`  | [Chrome Management](https://developers.google.com/chrome/management)            | Telemetry version counts                             |\n| `chrome.management.profiles.readonly` | [Chrome Management](https://developers.google.com/chrome/management)            | Listing managed browser profiles                     |\n| `admin.reports.audit.readonly`        | [Admin SDK Reports](https://developers.google.com/admin-sdk/reports)            | Fetching Chrome activity logs                        |\n| `admin.directory.orgunit.readonly`    | [Admin SDK Directory](https://developers.google.com/admin-sdk/directory)        | Organizational Unit hierarchy                        |\n| `admin.directory.customer.readonly`   | [Admin SDK Directory](https://developers.google.com/admin-sdk/directory)        | Customer ID resolution                               |\n| `apps.licensing`                      | [Enterprise License Manager](https://developers.google.com/admin-sdk/licensing) | CEP subscription and per-user license checks         |\n| `cloud-identity.policies`             | [Cloud Identity](https://cloud.google.com/identity/docs)                        | Managing DLP rules and content detectors (CRUD)      |\n| `service.management`                  | [Service Usage](https://cloud.google.com/service-usage/docs)                    | Verifying and enabling required Google Cloud APIs    |\n\n> [!NOTE]\n> **OAuth App Trust Required:** If your organization restricts third-party app access, a Super Admin must [trust the OAuth client](docs/troubleshooting.md#configure-oauth-app-for-sensitive-scopes) in the Admin Console before you can authenticate.\n\n## Advanced Authentication Options\n\nFor production environments, headless systems, or customized configurations, the server supports alternative auth pathways:\n\n- **Custom OAuth Client:** To run under your own Google Cloud project instead of the default managed one (enabling you to manage your own consent screen and credentials), see [Use a Custom OAuth Client](docs/auth-bring-your-own-oauth-client.md).\n- **Headless / SSH Sessions:** To authenticate on remote hosts or CI runners without a web browser, see [Sign In from a Host Without a Browser](docs/auth-bring-your-own-oauth-client.md#sign-in-from-a-host-without-a-browser).\n- **Hosted Deployments:** For Cloud Run, Vertex AI Agent Engine, or service-account automation, see the [Authentication Setup Matrix](docs/configuration.md#authenticate-to-google-apis).\n\n---\n\n## Configuration\n\nFor environment variables and stdio vs. HTTP transport, see\n[`docs/configuration.md`](docs/configuration.md).\n\n## Available tools and prompts\n\n### Prompts\n\n| Prompt         | Description                                                                            |\n| :------------- | :------------------------------------------------------------------------------------- |\n| `cep:health`   | Health check of the Chrome Enterprise environment (APIs, DLP, connectors, extensions). |\n| `cep:optimize` | Rule-by-rule review with tuning, enforcement, and cleanup recommendations.             |\n| `cep:expert`   | Manually re-injects the expert persona and rules (useful if the agent loses context).  |\n\n### Tools\n\nThe server exposes tools for reading and managing Chrome Enterprise resources:\n\n- **Discovery:** get customer ID, list org units, count browser versions, list\n  customer profiles\n- **Licensing:** check CEP subscription status, check per-user license\n  assignment\n- **DLP:** list/create DLP rules, list/create detectors (regex,\n  word list, URL list), create default rule sets\n- **Connectors:** get connector policy status, enable Chrome Enterprise\n  connectors\n- **Extensions:** check SEB extension status, install SEB extension\n- **Security:** get Chrome activity logs, check and enable required APIs\n- **Knowledge:** retrieve documentation from the built-in Chrome Enterprise Premium knowledge base\n\n## Architecture\n\nThe codebase has three layers: API clients in `lib/api/` (one interface +\nreal implementation per Google API), MCP tools and prompts in `tools/` and\n`prompts/`, and the server entry point in `mcp-server.js`. Integration tests\nredirect the real API clients at an in-process Express fake under\n`test/helpers/`. For the directory layout, design patterns, and how the test\nbackends are wired, see [`docs/architecture.md`](docs/architecture.md).\n\n## Troubleshooting\n\nFor known issues with auth, permissions, Node.js setup, and MCP client\nintegration (including the `/mcp` reload tip when CEP tools do not show up\nright after restart), see\n[`docs/troubleshooting.md`](docs/troubleshooting.md).\n\n## FAQ\n\nFor license requirements, Workspace edition, service-account auth,\nexperimental features, and other recurring questions, see\n[`docs/faq.md`](docs/faq.md).\n\n## Reporting bugs\n\nIf something isn't working:\n\n1. In Gemini CLI, run `/bug` to capture session diagnostics. Attach the\n   generated file to your issue.\n2. Run `npm run presubmit` and paste the output; this lets maintainers tell\n   environmental problems from real code bugs.\n3. Describe what you expected vs. what actually happened, including the exact\n   error message.\n\n## Contributing\n\nContributions are welcome! For local development setup, building, testing, and contributor guidelines, please see [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## Legal\n\nThis repository is provided as a reference implementation that customers can explore and adapt under the Apache 2.0 license. It is not an officially supported Google product.\n\n- **License:** [Apache License 2.0](LICENSE)\n- **Terms of Service:** [Terms of Service](https://policies.google.com/terms)\n- **Privacy Policy:** [Privacy Policy](https://policies.google.com/privacy)\n- **Security:** [Security Policy](SECURITY.md)\n",
  "bytes": 11598,
  "sha": "9ba8b0bffe1fb98f2b56dbb9a80cd57e362e030a5a7b8c649aad1135f243ebeb",
  "repo_slug": "google/chrome-enterprise-premium-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_google_chrome_enterprise_premium_mcp_8f1b867f/readme"
}