operagx-connector-plus
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OPERAGX_CDP_URL | Yes | The URL of the Chrome DevTools Protocol endpoint for Opera GX (e.g., http://localhost:9222). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| operagx_list_tabsA | Lists every open tab with a stable tabId usable by every other tool in this server. This complements the read-only Args: none. Returns: { "tabs": [ { "tabId": string, "url": string, "title": string, "index": number } ] } Examples:
|
| operagx_map_elementsA | Scans the page for clickable/fillable elements (links, buttons, inputs, selects, ARIA widgets) and returns each with a small integer id, role, text, CSS selector, and viewport coordinates. By default it also draws numbered badges on the live page — call the base connector's
Args:
Returns: { "count": number, // elements actually returned (<= limit) "totalFound": number, // elements matched before truncation "truncated": boolean, // true if totalFound > count "elements": [ { "id": number, // pass this as elementId to other tools "tag": string, // e.g. "input", "button", "a" "role": string | null, // ARIA role, if set "text": string, // visible text / placeholder / aria-label, truncated to 120 chars "selector": string, // CSS selector (fallback addressing) "rect": { "x": number, "y": number, "width": number, "height": number }, "center": { "x": number, "y": number }, "attributes": { [name: string]: string } // id/class/name/type/role/placeholder/aria-label/value/href } ] } Examples:
Error Handling:
|
| operagx_clear_annotationsA | Removes the numbered overlay badges left behind by operagx_map_elements. Args:
Returns: { "ok": true } Examples:
|
| operagx_clickA | Clicks a real point in the browser via CDP mouse input (Input.dispatchMouseEvent), not a JS-level element.click(), so native behaviors (custom canvas controls, drag handles, popups, focus/blur listeners) fire exactly as they would for a human click. Args:
Exactly one of elementId, selector, or x+y must be given. Returns: { "ok": true, "clickedAt": { "x": number, "y": number, "selector"?: string } } Examples:
Error Handling:
|
| operagx_hoverA | Moves the mouse over an element or point without clicking, e.g. to reveal a hover-triggered menu or tooltip before interacting with it. Args:
Returns: { "ok": true, "hoveredAt": { "x": number, "y": number, "selector"?: string } } Examples:
|
| operagx_type_textA | Focuses an element (by clicking it) and types text using real per-character key events (CDP Input.dispatchKeyEvent), so JS keydown/input listeners, IME composition, and masked inputs behave like real typing rather than a value assignment. Args:
Returns: { "ok": true, "typedInto": { "x": number, "y": number, "selector"?: string } } Examples:
|
| operagx_press_keyA | Sends a key or chord to the focused element or page, e.g. "Enter", "Escape", "Tab", "Control+A", "Control+Shift+ArrowLeft". If a target is given, it is clicked/focused first. Args:
Returns: { "ok": true } Examples:
|
| operagx_fill_formA | Fills multiple fields in one call and optionally submits at the end. Each field targets an element the same way as operagx_click (elementId/selector/x+y). Args:
Returns: { "ok": true, "fields": [ { "filledAt": { "x": number, "y": number, "selector"?: string }, "value": string } ] } Examples:
|
| operagx_select_optionA | Chooses an option in a native dropdown by value, label, or index. Args:
Returns: { "ok": true, "selected": string[] } // the value(s) selected, per the DOM API Examples:
Error Handling:
|
| operagx_drag_and_dropA | Performs a real mouse-down / move / mouse-up drag between two points or elements, so drag handlers relying on genuine mousemove events (sortable lists, sliders, canvas handles) receive the motion they expect. Args:
Returns: { "ok": true, "from": { "x": number, "y": number, "selector"?: string }, "to": { "x": number, "y": number, "selector"?: string } } Examples:
|
| operagx_scrollA | Scrolls the page with a real mouse-wheel event, or scrolls a specific element into view. Args:
Returns: Either { "ok": true, "scrolledTo": { "x": number, "y": number, "selector"?: string } } or { "ok": true, "delta": { "x": number, "y": number } } Examples:
|
| operagx_wait_forA | Waits until a selector reaches a given state, or times out. Args:
Returns: { "ok": true } Examples:
Error Handling:
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Zindaar/operagx-connector-plus'
If you have feedback or need assistance with the MCP directory API, please join our Discord server