Diwall MCP

English
Download v0.0.1

Architecture

Two layers and one loop: the model judges, the server observes, acts and refuses, the browser holds your sessions.

Two layers

the language model, through its MCP client  judges, decides, explains to you
   │   14 tools over standard input and output
mcp-server-diwall-browser                   observes, acts, refuses
   │   Chrome DevTools Protocol, on 127.0.0.1 only
your browser, on its dedicated profile      holds your signed-in sessions

beside the server
   the encrypted directory                  credentials in; journal, captures, downloads out
   the confirmation window                  kdialog or zenity, answered by you

The model brings the judgement. The server brings what the model cannot have on its own: the image and the tree you would see, gestures in your session, and refusals that do not depend on what the model concludes.

Why the server works in your browser instead of starting one is explained in Why the server attaches to your browser.

One turn of the loop

  1. open_tab or navigate loads a page in a tab the server opened. The server never reads or drives a tab you opened yourself.
  2. observe takes a snapshot, numbers the elements that can be acted on, draws the marks and the masks on the image, and returns the image, the tree, the elements and a snapshot_id (Perception).
  3. The model names a mark of that snapshot in click, fill, select_option or press_key.
  4. The server counts the action against the ceilings, checks that the node behind the mark is the one observed and that the page is on a site of your profile, and decides whether the action is locked. A locked action is written to the journal and captured, then waits for your answer; the server checks the node again, makes the gesture, waits for the load it started, and captures again.
  5. The result leaves through one exit point, which withholds sensitive values and keeps what the server states (server) apart from what the page wrote (page_content). The journal gets one line.

In the code

In version 0.0.1, the package has 22 modules and one file per tool under tools/. Each security check lives in one module only, and a module that needs it calls that one; the tests check this, and that no tool bypasses the exit point. The architecture document of the repository gives the role of each of them.

In detail