Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DOLPHIN_API_TOKENNoJWT for the remote APIs. Without it only Local API tools work.
DOLPHIN_TIMEOUT_MSNoPer-request timeout.60000
DOLPHIN_LOCAL_API_URLNoLocal API origin.http://localhost:3001

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_profilesA

List browser profiles with pagination, full-text search and filters. Each item carries a full fingerprint, so keep limit small (default 10) unless you really need the raw data.

list_profiles_cursorA

Cursor-paginated profile listing. Prefer this over list_profiles when walking a large workspace: pass the cursor from the previous response's next_page_url and keep every other parameter identical.

get_profileA

Fetch one browser profile by id, including its full fingerprint.

create_profileA

Create a NEW browser profile. If the user named a profile and asked you to open, run or 'spin up' it, that is start_profile with name — not this tool. Creating a lookalike loses every cookie, login and bit of history the real one holds. This tool refuses a name that already exists unless allowDuplicateName is set.

By default this pulls a real, internally coherent fingerprint from the Dolphin dataset and applies it — which is what you want, since Dolphin does NOT generate fingerprints server-side and an incoherent one defeats the point of an anti-detect browser. The fingerprint is flattened into the profile's own field shape (useragent/cpu/memory/webglInfo as {mode,value} objects); handing the API a nested fingerprint object as its docs suggest produces a profile that cannot be read or started. Pass fingerprint from get_fingerprint to choose one yourself, or set autoFingerprint: false to create a bare profile.

create_profiles_bulkA

Create many profiles in one call. Important: unlike create_profile, the backend IGNORES a nested fingerprint object here — fingerprint data must be supplied as flattened top-level keys (useragent, uaFullVersion, screenWidth, screenHeight, cpu, memory, connectionRtt, webglInfo, …). Use common for values shared by every item; per-item values win on conflict.

update_profileA

Patch an existing profile. Only the fields you pass change; everything else is left alone. Use extra for any field this tool does not model explicitly.

delete_profilesA

Delete one or more profiles. On paid plans they move to the Basket by default; forceDelete: true removes them permanently and is mandatory on Free plans. browserProfilePassword is only accepted when deleting exactly one password-protected profile.

transfer_profilesA

Move profiles to another Dolphin{anty} account by email. You must own the profiles or hold the share permission. Note the backend quirk: if the recipient email does not exist the call still reports success but nothing is transferred.

share_profile_accessA

Grant or revoke per-user permissions across one or more profiles. With action: 'remove' every permission flag you pass must be true — that is how the API expresses 'revoke this'.

start_profileA

Launch an EXISTING browser profile. This is the tool for 'open/run/spin up ' — identify it by name if that is what the user gave you, or by browserProfileId. Never route a named profile to create_profile: a new profile has none of the original's cookies, logins or history, so it is not the profile the user meant.

Pass automation: true to drive the page with the browser_* tools afterwards, then stop_profile to sync the data directory back to the cloud. Requires the Dolphin{anty} desktop app to be running.

start_temporary_profileA

Launch a throwaway profile with a fresh data directory and default fingerprint preferences. Returns the generated profileId. Useful for one-off sessions you do not want persisted in the workspace.

stop_profileA

Gracefully stop a running profile and sync its data directory back to the cloud. Safe to call when the browser has already exited — it still reports success.

local_api_loginA

Store the remote JWT inside the running Dolphin{anty} desktop app and validate it. Defaults to the token this server is configured with.

list_proxiesA

List proxies saved in the workspace, with optional search and pagination.

create_proxyA

Save a proxy in the workspace so it can be attached to profiles. The connection itself is made by the Dolphin app on the machine running the profile, not by this server.

update_proxyA

Change a saved proxy. Profiles already using it pick up the new settings on next launch.

delete_proxyA

Remove a saved proxy. Profiles referencing it are left without one.

list_foldersA

List the folders used to group browser profiles in the workspace.

create_folderA

Create a folder for grouping profiles.

update_folderA

Rename a folder, change its emoji, or pin/unpin it.

delete_folderA

Delete a folder. Profiles inside it are detached, not deleted.

get_folder_profile_idsA

Return the profile ids inside a folder plus whether any of them is password-protected.

move_profiles_to_folderA

Attach profiles to a folder, or detach them from whatever folder they are in. Omit folderId to detach.

reorder_foldersA

Reorder folders in the UI. Higher order values sort higher in the list.

list_statusesA

List the custom status labels available for tagging profiles.

create_statusA

Create a coloured status label for grouping and filtering profiles, optionally applying it to a profile straight away.

update_statusA

Rename a status or change its badge colour.

delete_statusesA

Delete status labels. Profiles carrying them are left with no status.

assign_statusA

Set the status of several profiles at once. Pass statusId for an existing status, or name + color to create one on the fly and apply it.

get_fingerprintA

Sample a real-world fingerprint from the Dolphin dataset. Pass the returned object verbatim as create_profile's fingerprint — the values are internally consistent and editing them piecemeal is what trips anti-fraud systems. Note: when nothing matches the filters the API returns HTTP 200 with an empty object.

get_useragentA

Sample a real user-agent matching a platform and major Chrome version. Keep it consistent with the rest of the profile's fingerprint.

list_webglA

List GPU adapter combinations available for a platform. When swapping these into a fingerprint, always copy the vendor/renderer pair together (and the webgl2Maximum block when withMaximum is set) so WebGL1 and WebGL2 data stay in sync.

list_fontsA

List font families that genuinely exist on the given OS. To use them in a profile, extract just the font property from each record into a string array, set that as fonts, and set fontsMode to manual.

export_cookiesA

Read a profile's cookies via the remote sync API — no desktop app required. The profile must have cloud sync enabled, and this is a paid-plan feature. Returns an empty array if the profile has never synced.

import_cookiesA

Write cookies into a profile via the remote sync API — no desktop app required. Existing cookies with the same domain/path/name are replaced. The profile must have cloud sync enabled, and this is a paid-plan feature.

export_cookies_localA

Export cookies for one or more profiles through the running desktop app. As a side effect this writes a dolphin-anty-cookies--.txt file per profile into the machine's Downloads folder. Prefer export_cookies unless you need that file or the profile is not cloud-synced.

import_cookies_localA

Write cookies into a profile's on-disk data directory through the running desktop app. Prefer import_cookies unless the profile has cloud sync disabled.

run_cookie_robotA

Warm up a profile by visiting a list of URLs in a short-lived browser and saving every resulting cookie to that profile. Runs sequentially through the URLs. Paid plans only, and requires the desktop app. Progress is reported over Socket.IO, which this server does not subscribe to — the call returns as soon as the robot has started.

stop_cookie_robotA

Stop a running cookie robot. No-op if it is not running.

export_local_storageA

Export a profile's local storage through the desktop app, grouped by origin. Keys and values are Base64-encoded and are normally treated as an opaque blob.

import_local_storageA

Write a local storage dump (as produced by export_local_storage) into a profile through the desktop app.

list_extensionsA

List the browser extensions available to attach to profiles.

add_extensionA

Add a public Chrome Web Store extension so it can be attached to profiles. The URL must start with https://chrome.google.com/webstore/detail/ or https://chromewebstore.google.com/detail/. Private or unpublished extensions are rejected. To add a packed .zip instead, use dolphin_request against /extensions/upload-zipped (multipart).

delete_extensionsA

Remove extensions from the workspace. Profiles using them lose them on next launch.

list_homepagesA

List the startup pages available to assign to profiles.

create_homepagesB

Create up to 10 startup pages in one call.

update_homepageA

Change a startup page entry. Only the fields you pass are modified.

delete_homepagesB

Delete startup page entries.

list_bookmarksC

List the bookmarks available to assign to profiles.

create_bookmarkA

Create a bookmark that can be pushed into browser profiles.

update_bookmarkA

Change a bookmark. Only the fields you pass are modified.

delete_bookmarksB

Delete bookmarks from the workspace.

list_team_usersA

List members of the current team account, with their roles and profile limits.

create_team_userB

Add a member to the team. Only admins can do this.

update_team_userA

Change a team member's role, credentials, supervisors or profile limits. Admins only.

delete_team_userA

Remove a member from the team. Admins only.

browser_connectA

Attach the automation client to a profile that is already running with automation enabled. Usually unnecessary — start_profile records the endpoint and the browser_* tools attach on demand. Use this when the profile was started outside this server, passing the port and wsEndpoint from that start call. Set start: true to have this tool start the profile itself.

browser_await_humanA

Hand control to a person and wait. Use this the moment you hit anything a human must do: a CAPTCHA, a Cloudflare check, a login wall, a 2FA/OTP code, an SMS confirmation, or a payment step.

Do NOT try to solve a CAPTCHA yourself — clicking or typing at one fails and gets the profile flagged. Call this instead. It brings the browser window to the front, tells the operator what to do, and blocks until the page clears the challenge (or until timeoutSeconds). It then returns a fresh snapshot so you can carry on.

The profile must be running headed — a person cannot act on a headless window.

browser_disconnectA

Release the automation connection. The browser keeps running — use stop_profile to actually close it and sync its data directory back to the cloud.

browser_navigateB

Go to a URL, or move through history. Returns a snapshot of the resulting page.

browser_snapshotA

Read the page as an accessibility tree — roles, accessible names and structure. This is the primary way to see a page: it is compact, text-only, and its role "name" pairs are exactly what browser_click and browser_type take as targets. Prefer it over browser_screenshot unless you specifically need to see the visual rendering.

browser_screenshotA

Capture the page as an image. Costs far more context than browser_snapshot, so reach for it only when the visual rendering matters — layout problems, canvas, captcha-looking elements, or verifying something a text tree cannot express.

browser_clickA

Click, double-click, right-click or hover an element. Waits for it to be actionable first. Returns a snapshot of the page afterwards.

browser_typeA

Enter text into an input, textarea or contenteditable. Replaces the existing value by default. Set pressEnter to submit, or mode: 'press' to send real per-key events when a page listens for keydown (autocompletes and search-as-you-type usually do).

browser_select_optionA

Choose one or more options in a . Match by visible label or by value.

browser_press_keyA

Send a keyboard key to the page or to a focused element. Accepts Playwright key names: Enter, Tab, Escape, ArrowDown, PageDown, Backspace, or chords like Control+A.

browser_scrollA

Scroll the page, or bring a specific element into view. Useful for lazy-loaded content that is not in the DOM until it is scrolled to.

browser_wait_forA

Wait for text to appear or disappear, for an element, for a load state, or for a fixed delay. Use this instead of retrying a failed click when a page is still settling.

browser_evaluateA

Evaluate an expression in page context and return the result as JSON. The escape hatch for reading values the accessibility tree does not expose. Prefer browser_snapshot for reading structure and browser_click for interacting — synthetic events dispatched from here behave differently from real input and some sites notice.

browser_tabsA

List, open, switch or close tabs. Every other browser tool acts on the active tab unless given an explicit tabIndex.

dolphin_requestA

Raw, unvalidated call to the Dolphin{anty} API. Use this only when no dedicated tool fits — the typed tools carry validation and API-specific guidance this one does not.

Pick target by which host owns the endpoint:

Array query values are joined with commas, matching the API's explode: false style.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
automation-guideEnd-to-end workflow: build a profile with a coherent fingerprint, start it with CDP automation, drive it, and stop it so the session syncs.
configWhich hosts this server talks to and whether an API token is configured.

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/someorgyouwontcareabout/DolphinMCP'

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