Skip to content

v0.0.8

Choose a tag to compare

@SohrabZ SohrabZ released this 05 Aug 15:02
· 13 commits to main since this release
8f51467

Install

go install github.com/SohrabZ/x-browser-mcp@latest

Added

  • -allowed-host names a further Host the server answers to. Only a bind
    beyond loopback that is reached by hostname needs it, now that every request has
    to address the server by name; a loopback deployment never does.

Changed

  • A read that fails says what failed. Anything that was not "login required" or
    "rate limited" collapsed to internal error, so a list id that does not exist
    read as a server fault. Now 400 for a request that was wrong, 404 for a
    post, account or list X had nothing on, 503 while a login or a write holds the
    profile, and 504 for a read that ran out of time. Only a fault you can do
    nothing about is still hidden.
  • Reaching the server by a hostname other than localhost needs that name passed
    to -allowed-host, including on a bind beyond loopback. See below.

Fixed

  • A page you visit in an ordinary browser could reach the loopback server. A
    domain the attacker controls, re-resolved to 127.0.0.1 after the page has
    loaded, gave it a route to the port, and the read tools would have answered.
    Every request is now checked before it reaches a handler, /mcp included: the
    Host header has to name this server, and any Origin is refused because it
    means a browser is calling. This applies to every bind — rebinding works against
    a LAN address too, and exposing the session to a network is not exposing it to
    every website.
  • A read that broke was reported as a read that found nothing. A failure while
    scraping or scrolling ended the collection loop, and an empty result then read as
    "the account or list may not exist" — sending the caller after a post that was
    probably there, and hiding the fault that stopped it being found.
  • A failure reported the error it arrived wrapped in rather than the one that was
    recognised, so a profile already in use answered with the path of the lock that
    said so.
  • The MCP server told clients a version that was written down, and had been three
    releases stale. It is read from the build.