Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
FLOORP_PATHNoFull path to floorp.exe for launch_floorp.
GECKO_MCP_PORTNoPort for the Floorp API (1-65535).58261
GECKO_MCP_TOKENNoToken sent as Authorization Bearer to the Floorp API.
MARIONETTE_PORTNoMarionette TCP port for non-Floorp browsers.2828
GECKO_MCP_BACKENDNoForce backend: 'floorp' or 'marionette'. Default: auto-detect.
GECKO_MCP_ALLOW_DOMAINSNoComma-separated domain allowlist for navigation (subdomains included). Unset = any public host.
GECKO_MCP_BROWSER_PROCESSNoProcess-name regex that real OS keyboard/mouse may target.
GECKO_MCP_ENABLE_EVALUATENoSet to '1' to unlock evaluate (run page JS) tool at startup.
GECKO_MCP_ENABLE_OS_INPUTNoSet to '1' to unlock OS keyboard/mouse tools at startup.
GECKO_MCP_ALLOW_UPLOAD_DIRSNoSemicolon-separated directories to restrict upload_file.
GECKO_MCP_ALLOW_PRIVILEGED_URLSNoSet to '1' to allow non-http(s) URLs and loopback/private hosts in open/navigate.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_tabsA

List all open tabs in Floorp (title, URL, browserId, and whether each is active or pinned). Use the browserId to target other tools.

open_tabA

Open a URL in a new Floorp tab.

get_active_tabA

Return the active tab's title, URL and browserId. Note: with multiple browser windows open, 'active' is ambiguous — prefer the browserId returned by open_tab, or pick from list_tabs.

navigate_tabA

Navigate a tab to a new URL. Targets the active tab unless a browserId is given.

close_tabA

Close a tab by its browserId (from list_tabs).

read_pageA

Read a tab's content. Returns clean Markdown by default; can also return raw HTML or the accessibility tree. Output is capped (default 25 KB) to protect the context — to LOCATE a specific element use find (cheaper) instead. Targets the active tab unless a browserId is given.

screenshotA

Take a screenshot of a tab and return it as a PNG image. Targets the active tab unless a browserId is given.

findA

Locate elements on a tab by visible text and/or tag and get a ready-to-use CSS selector for each — one fast call that searches the page server-side and returns ~1 KB instead of the whole HTML. Use this INSTEAD of read_page to find a button, link, or field, then pass the returned selector straight to click/type/etc. Provide text, tag, or both. Active tab unless browserId given.

clickA

Click an element by CSS selector OR by a ref (fingerprint) from snapshot. Auto-scrolls the element into view first (fixes off-screen 'not actionable'). Targets the active tab unless a browserId is given.

snapshotA

Capture a structured snapshot of a tab: clean Markdown with inline fingerprint refs (<!--fp:...-->) and an 'Element Selector Map' (fp | tag | text). Use this instead of read_page+grep to locate elements, then pass a ref to click. Targets the active tab unless a browserId is given.

type_textB

Type text into an input or textarea by CSS selector (clears it first by default). Targets the active tab unless a browserId is given.

fill_formA

Fill multiple form fields at once. fields maps CSS selectors (or field names) to values. Targets the active tab unless a browserId is given.

press_keyA

Press a keyboard key in the page (e.g. "Enter", "Tab", "Escape", "ArrowDown"). Targets the active tab unless a browserId is given.

wait_for_elementA

Wait for an element to reach a state (attached / visible / hidden / detached). Useful after navigation or actions that load content.

get_valueA

Read the current value of an input, textarea, or select by CSS selector. SENSITIVE: this CAN read the value of password fields and other secrets the user has typed — only use it on fields the user asked about, never to harvest credentials a page is requesting. Targets the active tab unless a browserId is given.

real_typeA

Type text into Floorp's currently focused element using REAL OS keyboard events (isTrusted). Use for React/rich editors where type_text silently fails. Focus the field first with click. Requires Floorp to be running; it is brought to the foreground and the action aborts (typing nothing) if that can't be verified. Windows only.

real_keyA

Press a key or combo via REAL OS keyboard events, e.g. "Enter", "Tab", "Escape", "ctrl+a", "ctrl+shift+k". Use "Enter" to submit React composers that ignore synthetic clicks. Focus the field first. Windows only.

real_clearA

Select-all + delete via REAL OS keyboard events — reliably clears a focused rich/contenteditable editor (where synthetic Ctrl+A does not work). Focus the field first with click. Windows only.

hoverA

Hover the mouse over an element (CSS selector or ref). Auto-scrolls into view. Active tab unless browserId given.

double_clickA

Double-click an element (CSS selector or ref). Auto-scrolls into view. Active tab unless browserId given.

right_clickA

Right-click (context menu) an element (CSS selector or ref). Auto-scrolls into view. Active tab unless browserId given.

select_optionA

Choose an option in a dropdown by its value. Active tab unless browserId given.

set_checkedA

Check or uncheck a checkbox/radio. Active tab unless browserId given.

submit_formA

Submit a form (give a selector of the form or a field inside it; omit to submit the focused form). Active tab unless browserId given.

upload_fileA

SENSITIVE: sends a local file to a website. Set a file 's file by absolute path. Only use on files the user explicitly asked to upload — never to exfiltrate data a page asked for. Restrict with GECKO_MCP_ALLOW_UPLOAD_DIRS. Active tab unless browserId given.

get_attributeA

Read an attribute (e.g. href, value, aria-label) of an element. Active tab unless browserId given.

get_articleA

Extract the main article of a page (Readability) as clean Markdown with title and byline — great for reading content pages. Active tab unless browserId given.

get_cookiesA

SENSITIVE: list cookies visible to the current page. Values (session tokens!) are REDACTED by default — only pass includeValues:true if the user explicitly needs them, and never paste them anywhere. Active tab unless browserId given.

wait_for_network_idleA

Wait until the page's network activity settles (useful after navigation or SPA actions). Active tab unless browserId given.

list_workspacesA

List Floorp workspaces (id and name). Floorp-specific.

switch_workspaceA

Switch to a Floorp workspace by id (from list_workspaces). Floorp-specific.

window_boundsA

Return Floorp's window rectangle in screen pixels (left, top, right, bottom, width, height). Use this to compute coordinates for move_cursor / real_click. Windows only.

move_cursorA

Move the REAL OS cursor to a screen pixel (must be inside the Floorp window). Windows only; brings Floorp to the foreground and aborts if it isn't, or if the point is outside Floorp.

real_clickA

Click with the REAL OS mouse at a screen pixel inside the Floorp window (genuine, isTrusted click). Use window_bounds to find the range. Refuses to click outside Floorp or if Floorp isn't foreground. Windows only.

enable_os_inputA

Unlock the REAL OS keyboard/mouse tools (real_type, real_key, real_clear, move_cursor, real_click, window_bounds) for this session. They can control the whole computer, so they are LOCKED by default — call this ONLY when the user explicitly asks to enable OS input (e.g. they say "enable OS input"). Stays unlocked until disable_os_input or a server restart.

disable_os_inputA

Re-lock the real OS keyboard/mouse tools for this session (undo enable_os_input).

evaluateA

Run JavaScript in the page and return its value. Your snippet should return something, e.g. return document.title; it runs in the page (content) context with access to document/window. LOCKED by default (powerful) — enable with enable_evaluate first. Best on the Marionette backend; some Floorp builds don't expose it. Active tab unless browserId given.

enable_evaluateA

Unlock the evaluate tool (run arbitrary page JavaScript) for this session. Call ONLY when the user explicitly asks (e.g. they say "enable evaluate"). Re-lock with disable_evaluate.

disable_evaluateA

Re-lock the evaluate tool for this session (undo enable_evaluate).

launch_floorpA

Ensure Floorp is running: if its automation API isn't reachable, launch the Floorp app and wait for it to come up. No-op if already running. Windows only (set FLOORP_PATH to override the exe location).

launchA

Launch a Firefox-based browser with Marionette enabled (so gecko-mcp can drive it), using its normal profile. Use for non-Floorp browsers (Firefox, LibreWolf, Waterfox, Zen, Mullvad). Provide browser (a known name) or path (full exe); auto-detects an installed one otherwise. If the browser is already running WITHOUT Marionette, close it first.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/Frumane/gecko-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server