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). |
Capabilities
Features and capabilities supported by this server
| 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