Skip to main content
Glama
Chrome Course MCP

Chrome Course MCP

by CrispyW0nton

Chrome Course MCP

Chrome Course MCP is a local Model Context Protocol server that lets Codex inspect a Chrome tab through the Chrome DevTools Protocol. The initial target workflow is collecting authorized Brightspace course material into local course folders: module page HTML/PDF snapshots, manifests of content links, and direct downloadable media/document URLs.

It does not bypass access controls, DRM, or streaming restrictions. Use it only with course materials and sites you are authorized to access.

Install

npm install

Related MCP server: paparazzi

Start Chrome For MCP Access

Use a dedicated Chrome profile so the debugging port is available without disturbing your normal browser session:

& "C:\Program Files\Google\Chrome\Application\chrome.exe" `
  --remote-debugging-port=9222 `
  --user-data-dir="$env:LOCALAPPDATA\ChromeMCPProfile"

Log in to Brightspace in that Chrome window and open the course page, for example:

https://online.academyart.edu/d2l/home/90511

You can also run:

.\scripts\launch-chrome-mcp.ps1

Or open a target site directly in that debuggable profile:

.\scripts\launch-chrome-mcp.ps1 "https://www.tripo3d.ai/"

Add To Codex

Add this MCP server to your Codex MCP config, adjusting the path if needed:

[mcp_servers.chrome_course_mcp]
command = "node"
args = ["C:\\Users\\NewAdmin\\Documents\\GDeveloper\\Workspaces\\ChromeMCP\\src\\index.js"]

Restart Codex after editing the config.

Tools

chrome_tabs

Lists Chrome tabs exposed on http://127.0.0.1:9222.

chrome_launch

Launches Chrome with --remote-debugging-port=9222 and the dedicated ChromeMCPProfile, or opens a new tab if the endpoint is already running.

Example:

{
  "url": "https://www.tripo3d.ai/"
}

chrome_open_tab

Opens a new tab through an existing Chrome DevTools Protocol endpoint.

Control Panel Automation Tools

These tools are useful for authenticated control panels such as Host Havoc when Chrome is launched with the debug profile:

  • chrome_navigate: navigate the selected tab to a URL.

  • chrome_snapshot: summarize visible text, links, buttons, inputs, selects, and forms.

  • chrome_click: click by CSS selector or visible text.

  • chrome_type: type into an input by selector or label/placeholder/name/id/aria-label.

  • chrome_select: set a dropdown by selector or label.

  • chrome_press: send a keyboard key.

  • chrome_screenshot: save a PNG screenshot.

  • chrome_eval: run a small explicit JavaScript inspection/action.

Suggested game panel workflow:

.\scripts\launch-chrome-mcp.ps1

Then log in through the Chrome window and use chrome_snapshot before each destructive or high-impact action.

chrome_extract_media

Extracts candidate media URLs, document links, iframe URLs, and Brightspace content links from the selected tab.

Useful arguments:

{
  "urlContains": "online.academyart.edu"
}

brightspace_collect_current

Builds a module folder with manifest.json and optionally HTML/PDF snapshots.

Example arguments for your GAM_623 folder:

{
  "urlContains": "online.academyart.edu",
  "outputDir": "C:\\Users\\NewAdmin\\Documents\\Academy of Art University\\2026\\Gam623",
  "courseCode": "Gam_623",
  "saveHtml": true,
  "savePdf": true
}

Navigates through Brightspace links found on the current page, or through a provided URL list, and saves each page into a categorized folder. This tool moves the selected Chrome tab as it works.

Example:

{
  "urlContains": "online.academyart.edu",
  "outputDir": "C:\\Users\\NewAdmin\\Documents\\Academy of Art University\\2026\\Gam623",
  "courseCode": "Gam_623",
  "maxPages": 20,
  "saveHtml": true,
  "savePdf": true
}

chrome_save_page

Saves the selected tab as HTML and/or PDF.

chrome_download_urls

Downloads direct authorized URLs using cookies from the selected Chrome tab. This is intended for direct links to files such as .mp4, .pdf, .zip, .pptx, and similar resources. HLS manifests (.m3u8) and DRM-backed players are reported by chrome_extract_media, but this server does not convert or bypass them.

Suggested Brightspace Workflow

For the normal authenticated Person 1 profile, use the local extension bridge. Once Chrome has loaded the extension, future collection jobs can be started by Codex through the local collector:

node .\scripts\extension-collector.mjs "C:\Users\NewAdmin\Documents\Academy of Art University\2026\Gam623"
.\scripts\start-gam623-collection.ps1

If Chrome is fully closed first, this helper opens the Person 1 profile with the collector extension preloaded:

.\scripts\launch-person1-collector.ps1

The extension polls the local collector from Brightspace pages and will navigate through discovered course content links after Codex starts a job.

The older CDP tools are still useful when Chrome is launched with a separate debug profile:

  1. Launch Chrome with --remote-debugging-port=9222.

  2. Log in to Brightspace and open a module page.

  3. Ask Codex to run brightspace_collect_current into the relevant course folder.

  4. Review manifest.json for media and document candidates.

  5. Ask Codex to download the direct URLs you want with chrome_download_urls.

  6. For bulk page snapshots, ask Codex to run brightspace_archive_links from a content/module index page.

Development

npm run check
npm start

Available Tools

16 tools
brightspace_collect_currentC

Create a Brightspace-oriented manifest from the selected course/module page.

Inputs: outputDir (required), tabId, savePdf, debugUrl, +4 more.

chrome_clickB

Click an element by CSS selector or visible text. Useful for control panels and file-manager buttons.

Inputs: text, exact, tabId, waitMs, +4 more.

chrome_download_urlsC

Download authorized direct URLs using cookies from the selected Chrome tab.

Inputs: urls (required), outputDir (required), tabId, debugUrl, +3 more.

chrome_evalB

Evaluate JavaScript in the selected tab. Use for small, explicit inspection or panel automation snippets.

Inputs: expression (required), tabId, waitMs, debugUrl, +2 more.

chrome_extract_mediaC

Extract media, document, iframe, and link candidates from a selected Chrome tab.

Inputs: tabId, debugUrl, urlContains, titleContains.

chrome_launchB

Launch a Chrome window with the DevTools Protocol enabled, or open a new tab if it is already running.

Inputs: url, waitMs, debugUrl, extraArgs, +2 more.

chrome_navigateB

Navigate the selected Chrome tab to a URL and wait briefly for the page to load.

Inputs: url (required), tabId, waitMs, debugUrl, +2 more.

chrome_open_tabA

Open a new tab through an existing Chrome DevTools Protocol endpoint.

Inputs: url, debugUrl.

chrome_pressB

Send a keyboard key to the selected page, optionally after focusing an element.

Inputs: key (required), tabId, waitMs, debugUrl, +3 more.

chrome_save_pageC

Save the selected Chrome tab as HTML and/or PDF.

Inputs: outputDir (required), pdf, html, tabId, +5 more.

chrome_screenshotC

Capture a PNG screenshot of the selected page.

Inputs: outputPath (required), tabId, debugUrl, fullPage, +2 more.

chrome_selectA

Set a select dropdown by CSS selector or label text, matching option value or visible text.

Inputs: value (required), label, tabId, waitMs, +4 more.

chrome_snapshotB

Summarize the selected page with visible text, links, buttons, inputs, selects, and forms for automation planning.

Inputs: tabId, debugUrl, maxElements, urlContains, +2 more.

chrome_tabsA

List Chrome tabs exposed by the local Chrome DevTools Protocol endpoint.

Inputs: debugUrl.

chrome_typeC

Type into an input or textarea by CSS selector, label text, placeholder, name, id, or aria-label.

Inputs: value (required), clear, label, tabId, +6 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 16 tools

    Disambiguation4/5

    Most tools target distinct actions (open, navigate, click, type, screenshot, etc.), and the two Brightspace tools are clearly separate. Slight overlap exists between chrome_open_tab and chrome_launch, and between chrome_snapshot and chrome_extract_media, but descriptions resolve ambiguity.

    Naming Consistency5/5

    All tools follow a consistent pattern: domain_verb_noun (chrome_*, brightspace_*). Every name uses lowercase with underscores and a clear action verb, making the naming predictable and easy to learn.

    Tool Count4/5

    With 16 tools, the set is slightly above the ideal 3-15 range but still well-scoped for Chrome automation plus Brightspace-specific archiving. Each tool has a specific role, and the count feels justified rather than bloated.

    Completeness4/5

    The Chrome automation covers a full interaction lifecycle: tab management, navigation, reading, clicking, typing, selecting, pressing, evaluating, saving, downloading, and media extraction. Brightspace coverage is limited to collecting/archiving pages, which fits the apparent purpose but lacks other potential course-management operations.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    • Discord MCP server for ChatGPT, Claude and any AI agent: list servers and channels, read channel messages, search messages, send message, reply to message, send DM, read mentions and assign role in your own Discord account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Discord yourself; Cotlet does not store your password and you need no Discord API key. About the official Discord API: Yes, Discord has an official API for bots and OAuth2 apps, but it acts as a bot that a server manager adds, not as you, and Discord has no official MCP server for it (checked 5 Nov 2026). The MCP server on Discord's docs site only searches documentation. Setup and FAQ: https://cotlet.dev/integrations/discord-api-mcp-server

      https://cotlet.dev/mcp/v1/discord
    • LearnWorlds MCP server for ChatGPT, Claude and any AI agent: list users, list course learners, enroll users, unenroll users, update tags, send message, suspend user and grade assessment in your own LearnWorlds account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to LearnWorlds yourself; Cotlet does not store your password and you need no LearnWorlds API key. About the official LearnWorlds API: LearnWorlds has a REST API (v2) for courses, users, bundles, subscriptions, promotions, payments and certifications, but it comes with the Learning Center plan and higher, and you need your own code to use it (checked 5 Nov 2026). LearnWorlds has no official MCP server. Setup and FAQ: https://cotlet.dev/integrations/learnworlds-api-mcp-server

    • Dubsado MCP server for ChatGPT, Claude and any AI agent: create project, send form, send invoice, record payment and list unpaid invoices in your own Dubsado account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Dubsado yourself; Cotlet does not store your password and you need no Dubsado API key. About the official Dubsado API: Dubsado has no public API (checked 11 Oct 2026). Its only official connection is Zapier, on the Premier plan: five triggers and one action, Create Project. Setup and FAQ: https://cotlet.dev/integrations/dubsado-api-mcp-server

      https://cotlet.dev/mcp/v1/dubsado
    • Overleaf MCP server for ChatGPT, Claude and any AI agent: list projects, read file, edit file, compile project, add comment, reply to comment, accept tracked change and invite collaborator in your own Overleaf account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Overleaf yourself; Cotlet does not store your password and you need no Overleaf API key. About the official Overleaf API: Overleaf has no public API to read or change existing projects (checked 5 Nov 2026). Its only API, Open in Overleaf, sends LaTeX in one direction to create a new project. Setup and FAQ: https://cotlet.dev/integrations/overleaf-api-mcp-server

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server that connects to your browser to capture screenshots, inspect console logs, network requests, and more via Chrome DevTools Protocol.
      16 npm
      2
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      Local MCP server for Codex that provides on-demand, read-only access to Edge tabs and bookmarks, plus controlled interaction with agent-owned tabs. Requires manual activation via the browser extension and enforces a fail-closed security model.
      -