Browser Use 0.13.10

1 month ago

Browser Use 0.13.10 shipped on the fourth of September. The MCP layer moves onto a new SDK, tool errors get reported differently, and every dependency now names one exact version.

Ask

Ask about this presentation

Answers are generated from this presentation.

Chapters

  1. 0:00Browser Use 0.13.10
  2. 0:14Browser harness 0.1.13
  3. 0:26MCP Python SDK 2.1.1
  4. 0:4002 The renames
  5. 0:43Fields in snake case
  6. 0:55Reading the error flag
  7. 1:0703 Failure and the handshake
  8. 1:11Unknown tool calls
  9. 1:23Argument checks
  10. 1:35Version at connect
  11. 1:46Handler registration
  12. 1:5904 The dependency list
  13. 2:02Exact pins
  14. 2:13The pins that move
  15. 2:28pypdf 6.16.2
  16. 2:430.13.10
Show transcript

Browser Use 0.13.10

+01
Browser UseRelease notes

A maintenance release. All of it lands in the MCP layer and the dependency list.

Release 0.13.10 · browser-use/browser-use

Browser Use 0.13.10 shipped on the fourth of September. The MCP layer moves onto a new SDK, tool errors get reported differently, and every dependency now names one exact version.

Browser harness 0.1.13

+01
Browser UseThe upgrades

The browser harness moves up a version

browser-harness 0.1.12→browser-harness 0.1.13
pyproject.toml · 0.13.10

First, the browser harness. That is the component that actually drives Chrome. Browser Use now requires version 0.1.13 of it, one step up from the previous release.

MCP Python SDK 2.1.1

+01
Browser UseThe upgrades

MCP jumps a major version

mcp 1.28.1→mcp 2.1.1
pyproject.toml · 0.13.10

The MCP Python SDK goes from 1.28.1 to 2.1.1. That is a major version, and both the server Browser Use exposes and the client it talks through were rewritten against it.

02 The renames

+02
Browser UseChapter
02

The renames

What your own MCP code has to change.

browser_use/mcp/ · 0.13.10

What your own MCP code has to change.

Fields in snake case

+02
Browser UseThe renames

Three fields switch to snake case

  • +inputSchema → input_schema, on a tool definition
  • +mimeType → mime_type, on image content
  • +isError → is_error, on a tool result
browser_use/mcp/client.py · 0.13.10

The SDK renamed its fields to snake case. A tool definition's JSON schema, the mime type on image content, and the error flag on a result all answer to a new attribute name now.

Reading the error flag

+02
Browser UseThe renames

The client trusts the error flag

getattr(result, 'isError', False)→result.is_error
browser_use/mcp/client.py · 0.13.10

When a tool result comes back, the client used to look the error flag up defensively and default it to false. It now reads the typed field straight off the result, so a missing flag cannot slip through.

03 Failure and the handshake

+03
Browser UseChapter
03

Failure and the handshake

How the server reports trouble, and how it introduces itself.

browser_use/mcp/cli_mcp.py · 0.13.10

How the server reports trouble, and how it introduces itself.

Unknown tool calls

+03
Browser UseFailure and the handshake

An unknown tool call is now an error

Same message, carried on an error result

browser_use/mcp/cli_mcp.py · 0.13.10

Call the Browser Use MCP server with a tool name it does not have, and it used to hand back the words unknown tool as a successful result. Now the same message arrives flagged as an error.

Argument checks

+03
Browser UseFailure and the handshake

Bad arguments come back as errors

  • +An empty code string for browser_exec
  • +A max_dim that is not a positive integer
browser_use/mcp/cli_mcp.py · 0.13.10

The same flag rides on the argument checks. An empty code string, or a screenshot size that is not a positive integer, now comes back marked as an error instead of a plain line of text.

Version at connect

+03
Browser UseFailure and the handshake

The server states its version at connect

Version and usage instructions live on the server object

browser_use/mcp/cli_mcp.py · 0.13.10

The stdio server now carries the Browser Use version and its usage instructions on the server object itself, and hands both to the client during the opening handshake.

Handler registration

+03
Browser UseFailure and the handshake

Handlers register by method name

self.server.add_request_handler(
    "tools/list", types.PaginatedRequestParams, handle_list_tools
)
self.server.add_request_handler(
    "tools/call", types.CallToolRequestParams, handle_call_tool
)
browser_use/mcp/cli_mcp.py · 0.13.10

Registration moves off decorators. Each handler is attached to a method name, takes a request parameters object, and returns a typed result instead of a bare list of text and image blocks.

04 The dependency list

+04
Browser UseChapter
04

The dependency list

What gets installed alongside it, and at which versions.

pyproject.toml · 0.13.10

What gets installed alongside it, and at which versions.

Exact pins

+04
Browser UseThe dependency list

Every declared dependency names one exact version

runtime · optional · development · build

Release 0.13.10 · pyproject.toml

Every declared dependency is now pinned to one exact version, across runtime, optional, development and build. Two installs a month apart resolve to the same tree.

The pins that move

+04
Browser UseThe dependency list

The pins that change what you get

  • +Pydantic: a version range becomes exactly 2.13.5
  • +pydantic-settings 2.15.0 joins the runtime dependencies
  • +Hatchling 1.32.0 pins the build backend
pyproject.toml · 0.13.10

Pydantic was a range and is now exactly 2.13.5. Pydantic settings moves out of the development list and becomes a runtime dependency, at 2.15.0. Hatchling is pinned for the build itself.

pypdf 6.16.2

+04
Browser UseThe dependency list

pypdf 6.16.2 clears three advisories

The PDF parser in the runtime dependency list

Release 0.13.10 · pyproject.toml

pypdf goes to 6.16.2, which clears the three security advisories Dependabot had open against it. It is the PDF parser in the runtime dependency list, so every install picks the fix up.

0.13.10

+04
Browser UseRelease notes
pip install browser-use==0.13.10
github.com/browser-use/browser-use
Release 0.13.10 · browser-use/browser-use

Every code change in this release sits in the MCP layer, so how the agent behaves on a page is unchanged. Pin browser-use to 0.13.10 and the whole tree comes with it.