Rove

io.github.noncelogic由 GitHub 账号 noncelogic 发布v1.18.0更新于 Nov 3, 2026

Rove — supervised browser for AI agents. Your agent drives; a human watches, takes over.

已验证Streamable HTTP可网页运行网页搜索与抓取浏览器自动化

概览

AI 生成的概览

Rove 为 AI 助手提供托管的 Chromium 浏览器,由助手操作、真人实时观看并可接管,随后交还控制权。

可以做什么
  • 启动、列出和关闭受监督的浏览器会话,并生成一次性观看链接供他人观看或接管。
  • 导航页面、读取无障碍树、截图、点击、填写表单、滚动、读取元素文本并执行 JavaScript。
  • 管理标签页:列出、切换、关闭以及等待弹窗。
  • 处理登录:在不暴露凭据的情况下填入已保存的账号密码和一次性验证码,请求人工协助,并连接支持个人代理协议的站点。
  • 分块列出并获取下载文件,在会话崩溃后恢复页面。
  • 查看或删除浏览器配置、浏览历史与通行密钥,并查询账户套餐、额度和购买记录。
适用场景
适合助手需要操作需要登录、多步表单或人工确认的真实网站,且希望有人能实时观看并介入的场景。也适用于一次性结构化页面提取和下载文件收集。
运行要求
可使用远程端点,或在本地以 stdio 运行 npm 包。需要 Rove API 密钥,通过 Authorization 请求头以 Bearer 令牌发送,或使用 ROVE_API_KEY 环境变量;没有密钥时可用 authenticate 工具通过邮件魔法链接登录。通过 OAuth 连接的应用已登录。受监督会话需要有效密钥,使用会消耗付费额度。
安装前请注意
该密钥可访问保存了 Cookie、历史和通行密钥的浏览器配置,相关工具还能删除配置、历史或通行密钥。点击和填写会作用于真实网站,可能提交、删除或购买;evaluate 可改动页面上的任何内容。buy_credits 可能扣款账户所有者已保存的银行卡。观看链接和准入码仅一次性有效,只应发给预期的人。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Rove,将其添加到工作区。
  2. 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.noncelogic%2Frove/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。

{
  "mcpServers": {
    "rove": {
      "type": "http",
      "url": "https://api.roveapi.com/mcp"
    }
  }
}

README

该仓库没有 README。

工具

42

start_supervised_session

Start supervised browser session

Start a supervised browser session: a hosted Chromium browser your agent drives while a person can watch live, take exclusive control and hand it back. It signs in with the browser profile this API key keeps, so cookies and sign-ins carry over between sessions. Next, call create_viewer_grant to get the person a viewer link. While the person holds control, agent actions are refused; after they hand back, call get_a11y_tree or screenshot before acting again. Later tools use this session unless you pass session_id. viewport_mode defaults to follow-human; use fixed when the page layout must stay at the agent viewport. Charged per minute. Needs a live key (rvp_live_).

输入参数egressviewport_mode

create_viewer_grant

Create viewer link

Create a one-time, origin-bound viewer link for a supervised session, for the person who will watch and take over. Give viewer_url to that person (one click opens the session). The admission_code in it works once and expires after expires_in_seconds. Never send passwords or other site credentials through chat: the person signs in themselves, in the viewer.

输入参数session_id

request_human

Request human help

Pause a supervised session and ask a person to help. Explain what they need to do in reason. Returns waiting_for_human, the reason, human_wait_expires_at and a one-time viewer_url to give the person. Agent actions are refused until they return control. Repeating this request renews the viewer grant without extending the wait deadline.

输入参数reason必填session_id

navigate

Open URL

Open a URL in the session's browser and return the final URL and page title after redirects. In a supervised session the person watching sees the page. For a parked challenge (challenge_parked), use navigate on the same session to poll every 10 to 60 seconds with backoff, never in a tight loop. With no session_id and no active session, it creates an ordinary session that no one can watch or take over; call start_supervised_session first when a person may need to step in, for example to sign in. API docs: https://roveapi.com/docs.

输入参数url必填page_idsession_idtimeout_mswait_until

get_a11y_tree

Read page

Read the current page's content and controls, with element refs (such as e5) that click, fill, get_text and screenshot accept. After a person hands a supervised session back, this or screenshot is the fresh observation required before the next action. The page comes back as an accessibility tree: roles, names, values and states. On large pages it scopes itself to the main content; selector, max_depth, max_chars, visible_only and exclude_selectors narrow it further.

输入参数framepage_idselectormax_charsmax_depthsession_id必填visible_onlyexclude_selectors

screenshot

Take screenshot

Capture the current page, or one element, as a PNG or JPEG. In a supervised session this is, like get_a11y_tree, a fresh observation after a person hands control back. With no session_id and no active session, pass url instead for a one-shot capture in a throwaway browser. API docs: https://roveapi.com/docs.

输入参数refurlframeformatpage_idselectorfull_pagesession_id

click

Click element

Click an element by CSS selector, accessible label or a11y tree ref. A click can submit, delete or buy on the site, as a person clicking would. In a supervised session, a click that opens a popup makes the popup the current page.

输入参数refframelabelbuttonpage_idselectorsession_id必填click_countwait_after_ms

fill

Fill form field

Type text into a form field, found by CSS selector, accessible label or a11y tree ref. By default it clears the existing value first. Never fill in passwords or other credentials you were sent through chat; in a supervised session, hand the sign-in to the person in the viewer.

输入参数refframelabelvalue必填page_idselectorsession_id必填clear_first

fill_credential

Fill saved credential

Fill saved username and password fields in a supervised session without returning credential values. etld_plus_one identifies the saved credential site and must match the target page, including private suffixes. Requires agent control; frame targeting is refused. Optional selectors override the default username/email and password inputs.

输入参数framepage_idsession_idetld_plus_one必填password_selectorusername_selector

fill_otp

Fill saved OTP

Fill the current six-digit TOTP (SHA-1, 30-second step) into the focused main-page input in a supervised session without returning the code or seed. etld_plus_one identifies the saved credential site and must match the target page, including private suffixes. Requires agent control; frame targeting is refused.

输入参数framepage_idsession_idetld_plus_one必填

interact

Click or fill by selector

Click an element or fill a field by CSS selector, as one tool: action is click or fill, and params carries selector (and value, for fill). click and fill take the same actions with labels, refs, frames and pages; prefer them.

输入参数action必填paramssession_id必填

get_text

Read element text

Read the text of one element, such as a price, a heading or a status message, by CSS selector or a11y tree ref.

输入参数reftrimframepage_idselectorsession_id必填

scroll

Scroll page

Scroll the page, or one scrollable element, in a direction, for example to load more content or reach elements below the fold.

输入参数refframeamountpage_idselectordirection必填session_id必填

evaluate

Run JavaScript

Run a JavaScript expression in the page and return its result as JSON. The script can read or change anything the page can, including submitting forms. Refused on a site's pages while a Poppy Session with that site is connected (see poppy_status).

输入参数page_idexpression必填session_id必填

extract_schema

Extract fields from a URL

One-shot and unsupervised: open a URL in a throwaway browser and, for each key in schema, return the text that follows that key on the page (as in "Price: $10"), or null. Nothing persists and no one can watch; for pages behind a sign-in, start a supervised session and read them with get_a11y_tree or get_text. API docs: https://roveapi.com/docs.

输入参数url必填schema必填wait_for_selector

list_downloads

List downloads

List this session's captured downloads as artifacts, with id, name, content_type, file_size_bytes, url and expires_at, plus download_errors for refused or failed captures. Use get_download with an artifact id to fetch its bytes. Defaults to this connection's active session.

输入参数session_id

get_download

Fetch download

Fetch a captured download using its artifact_id from list_downloads, in chunks of at most 1 MiB. Returns session_id, artifact_id, content_type, data_base64, offset, total_bytes and next_offset. Decode each chunk separately and concatenate the bytes. Repeat with offset set to next_offset until next_offset is null. Defaults to offset 0 and this connection's active session.

输入参数offsetsession_idartifact_id必填

list_pages

List open pages

List the pages open in this session's browser, with page ids, opener, URL, title and status, and which page is current. Popups the page opened appear here. Does not count as a fresh observation.

输入参数after_seqsession_id必填

switch_page

Switch page

Make another open page current. Later actions without page_id run on it, and in a supervised session the viewer shows it.

输入参数page_id必填session_id必填

close_page

Close page

Close an open page. If it was current, the session returns to the page that was current when it opened. The last open page cannot be closed.

输入参数page_id必填session_id必填

wait_for_popup

Wait for popup

Wait for a popup opened by your last navigate, click, fill, scroll or evaluate, even one that has already opened, and return its page_id. In a supervised session the popup becomes current. In other sessions, call switch_page or pass page_id. A popup Rove blocks answers popup-blocked at once instead of waiting. After a human returns control, a popup they opened counts; pass after_seq to wait for a newer one.

输入参数after_seqsession_id必填timeout_ms

poppy_connect

Connect to a Poppy site

Declare this supervised session to a site that takes part in the Personal Agent Protocol (Poppy) as the person's agent: Rove reads https://<site>/.well-known/poppy.json, starts a signed-out Poppy Session and joins the browser to it, so the site admits the session instead of challenging it. A site without a valid poppy.json answers poppy-not-participating and is browsed as usual. While connected, changes (any request that isn't GET, HEAD or OPTIONS) and live-update sockets on the site are refused until the person signs in with poppy_sign_in and approves them. If this browser profile already holds the site's cookies or saved data, the answer is poppy-company-cookies-present: ask the person, then call again with replace_company_cookies: true. Follow next in every answer.

输入参数origin必填scopespage_idreturn_tosession_idreplace_company_cookies

poppy_sign_in

Sign in to a Poppy site

Ask the person to sign in to a connected Poppy site and approve permissions for you (default poppy:read; poppy:write allows changes). Rove opens the site's own sign-in in a separate sign-in window in the supervised viewer; the person signs in there themselves, and you never see their password, codes or tokens. Then send the person a viewer link (create_viewer_grant), tell them what next says, and check poppy_status for the outcome.

输入参数scopessession_idpoppy_session_id必填

poppy_status

Show Poppy connections

Show this supervised session's Poppy Sessions: their state, the permissions granted and in force, the requests Rove refused, the latest sign-in's outcome, and next, what to do now. Changes nothing.

输入参数after_seqsession_idpoppy_session_id

poppy_disconnect

Disconnect a Poppy site

End a Poppy Session. Rove removes the site's cookies and saved data from this browser before the site is used without Poppy again (poppy_status shows cleanup done). With sign_out: true it also deletes the person's stored approval for the site and revokes it there.

输入参数sign_outsession_idpoppy_session_id必填

restore_pages

Restore or dismiss pages

Answer a supervised session's restore offer. When the previous session on this profile ended unexpectedly (crash, hang or restart), list_pages and the session status carry restore.available and the pages that were open; nothing reopens until you choose. restore reopens them (each through the target policy) and makes the recorded current page current; dismiss drops the offer.

输入参数decision必填session_id

list_history

List browsing history

List the pages this API key's supervised browser profile visited, newest first, across sessions: URL, title, time, session id and whether the agent or a human held control. Sign-in callback codes and tokens are never stored. To reopen an entry, navigate to its url.

输入参数limitquerybefore

clear_history

Clear browsing history

Delete this API key's supervised browsing history. Cookies, storage and open-pages restore are kept. Refused (profile-busy) while a supervised session on this key is running.

无需输入参数。

delete_profile

Delete browser profile

Delete this API key's whole supervised browser profile: cookies, storage, history and any restore offer. The next session starts signed out. Refused (profile-busy) while a supervised session on this key is running.

无需输入参数。

list_passkeys

List passkeys

List this API key's browser profile passkeys by site, including credential IDs and account labels. Private keys and other key material are never returned. No browser session is required.

输入参数rp_id

delete_passkey

Delete passkey

Delete one passkey from this API key's browser profile by its credential_id from list_passkeys. Returns deleted: false if absent. Refused (profile-busy) while a supervised session on this key is running; close it first.

输入参数credential_id必填

list_sessions

Show active session

Show which browser session this MCP connection is using: the session later tools act on when you omit session_id.

无需输入参数。

close_session

Close session

End a browser session and release its browser; its open pages close. A supervised session's browser profile (cookies, history) is kept for the next session; delete_profile removes it. When it was this connection's active session, the next navigate or start_supervised_session starts a new one.

输入参数session_id必填

authenticate

Sign in by email

Sign in to Rove with your email when no API key is configured: sends a magic link, and once you open it this connection uses your live key. Supervised sessions need a live key; test keys (rvp_test_) run mock actions. Apps connected through OAuth are already signed in and cannot call it.

输入参数email必填

account_info

Show account

Show this account's plan, credit balance and whether this key may buy credits.

无需输入参数。

buy_credits

Buy credits

Without arguments: shows Rove credit prices and whether this key may buy. With item_id: buys that credit pack and may charge the account owner's saved card, or returns a payment link for a person, within limits the owner set. Pass the same idempotency_key when retrying the same purchase. Without idempotency_key, the same call again in this MCP session returns the first purchase for 10 to 20 minutes; to buy the same pack twice on purpose, pass a new idempotency_key each time.

输入参数item_idpaymentidempotency_key

get_credit_catalogue

Show credit prices

Shows Rove credit packs, subscription tiers and what an action or supervised minute costs. Never buys.

无需输入参数。

get_credit_balance

Show credit balance

Shows this account's credits, exact to the millicredit, and whether this key may buy more and within what limits.

无需输入参数。

get_purchase

Show purchase

Shows one purchase this key made and what to do next (for example, a payment link for a person).

输入参数purchase_id必填

list_purchases

List purchases

Lists purchases this key made, newest first.

输入参数limitcursor

cancel_purchase

Cancel purchase

Cancels an unpaid purchase this key made, so its payment link stops working.

输入参数purchase_id必填

simulate_purchase

Simulate purchase (test keys)

Test keys only: moves a simulated purchase to paid, expired, failed or needs-authentication. Never charges.

输入参数outcome必填purchase_id必填

版本历史

4
  1. v1.18.0最新Oct 29, 2026
  2. v1.15.1Oct 26, 2026
  3. v1.15.0Oct 26, 2026
  4. v1.10.0Oct 13, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。