AI agents & API
MCP tools and API reference
Every Accovod MCP tool and local API method on macOS and Windows — app, profiles, cookies, groups, settings, page control, operations and asking a person for help.
Every MCP tool has a matching API method: profiles_list → profiles.list, page_click_at → page.clickAt. Their parameters are the same.
Pass profileId to every page tool. Without it, the action goes to whichever profile the person has open right now — and they can switch at any moment.
| Tool | What it does | Main parameters |
|---|---|---|
app_status |
App state: version, profile mode, active group, whether the agent is stopped. Call it first. | — |
Profiles
Section titled “Profiles”| Tool | What it does | Main parameters |
|---|---|---|
profiles_list |
Profiles of the open group: profileId, name, address, language, timezone, proxy (no password). |
— |
profiles_get |
One profile in full, including revision for safe updates. |
profileId |
profiles_create |
Create a profile. The fingerprint comes from the Accovod service, exactly as for a manual one. | idempotencyKey, name, url, locale, timezone, browser, proxy |
profiles_create_many |
Create 1 to 20 profiles at once, each with its own fingerprint. | idempotencyKey, count, name (prefix), proxies (one per profile) |
profiles_update |
Change name, note, address, language, timezone, User-Agent, proxy. Only what you pass changes. | profileId, expectedRevision |
profiles_check_proxy |
A real request through the proxy: reachability, IP, country, city, timezone and whether it matches the profile. | profileId |
profiles_open |
Switch the app to a profile and wait until it’s ready. Changes what the person sees. | profileId |
profiles_reload |
Rebuild the profile’s tab: applies proxy and protection-mode changes. | profileId (without it — the whole group) |
profiles_delete |
Delete a profile for good, cookies included. | profileId, confirm: true |
Cookies and transfer
Section titled “Cookies and transfer”| Tool | What it does | Main parameters |
|---|---|---|
profiles_import_cookies |
Import cookies: a Cookie-Editor array, a Playwright storageState and similar. Merges with existing cookies by default. |
profileId, cookies, replace |
profiles_export_cookies |
Export all of a profile’s cookies. Only when the person explicitly asks. | profileId |
profiles_export_many |
Export profiles in the Groups window’s text format. Includes proxy passwords and cookies. | profileIds |
profiles_import_many |
Load 1 to 100 profiles from such a file, with fresh fingerprints. | content, idempotencyKey |
Groups
Section titled “Groups”The API calls groups sessions.
| Tool | What it does | Main parameters |
|---|---|---|
sessions_list |
Every group of the account, local and cloud. | — |
sessions_open |
Open another group. Every profileId of the previous group becomes invalid. |
sessionId |
sessions_create |
Create a group and open it right away. | name, kind (local / cloud) |
sessions_rename |
Rename any group. | sessionId, name |
sessions_delete |
Delete a group with all its profiles. The open group and the last group can’t be deleted. | sessionId, confirm: true |
Settings
Section titled “Settings”| Tool | What it does | Main parameters |
|---|---|---|
settings_get |
App-wide settings: protection mode, profile mode, image blocking, sound. | — |
settings_set |
Change the protection mode or profile mode. On macOS every profile is rebuilt; on Windows a protection mode change applies after a restart. | fingerprintProtect (more_privacy / more_native), profileMode (all / activeOnly, plus onDemand on Windows) |
| Tool | What it does | Main parameters |
|---|---|---|
page_navigate |
Open an address and wait for it to load. In all mode it runs in the background without touching the screen. |
url, profileId |
page_reload |
Reload the page. | profileId, ignoreCache |
page_snapshot |
Interactive elements with ready-made targets. The main way to “see” a page. |
profileId, maxElements |
page_get_text |
Text of the page or an element. Far cheaper than a snapshot. | profileId, target |
page_screenshot |
A screenshot of the page or an element, as an image. | profileId, target |
page_click |
A real click on an element. If the element is covered, nothing is clicked and the answer says what covers it. | target, profileId |
page_click_at |
Click a point — for what the snapshot can’t reach: buttons in cross-origin iframes, canvas, maps. | x, y, screenshotWidth |
page_fill |
Type text into a field. | target, text, clear, mode |
page_select |
Choose an option in a <select>. |
target, value / values |
page_hover |
Hover an element, for example to open a menu. | target |
page_key |
Press a key: Enter, Tab, Escape, arrows. |
key, target |
page_scroll |
Scroll by deltaY pixels, to the top or bottom, or to an element. |
deltaY, to, target |
page_upload |
Put files into an upload field without a system dialog. Up to 10 files. | target, paths |
page_wait_for |
Wait for text, an address, an element or a finished navigation. | text / url / target / navigation |
page_eval |
Run JavaScript in the page’s context. | expression |
page_dialog |
Windows: answer an alert, confirm or prompt the page is showing. |
profileId, accept, promptText |
Out of the box, page_upload takes files from Downloads, Desktop, Documents, Pictures, Movies (Videos on Windows) and Music. On Windows the same folders in OneDrive work too.
Asking a person
Section titled “Asking a person”| Tool | What it does | Main parameters |
|---|---|---|
request_human |
Show the person a request panel — solve a CAPTCHA, enter an SMS code, confirm a login — and wait for Done or Can’t do it. | reason, profileId, untilText / untilUrl |
A request outlives a single call: if the person hasn’t answered yet, the agent gets pending and calls again with the same requestId.
Long-running operations
Section titled “Long-running operations”| Tool | What it does |
|---|---|
operations_start |
Run any method as a background operation with your own operationId. |
operations_get |
Get the operation’s status and result. |
operations_cancel |
Ask to cancel the operation. |
Use them when your client cuts long calls on a timeout: the result isn’t lost and can be picked up later.