For AI agents
Some browsers let an AI agent act on a page for you. On those browsers this site describes a few tools, so an agent can find and read the writing, move around a page, play the narration and run the Python examples, instead of guessing from the screen.
Every tool uses a control that is already on the page. When an agent uses one, the page shows and announces what happened, and you can undo it where that makes sense. Tools cannot change the site, download models, share anything or change privacy choices. The site sends nothing anywhere because of them; what an agent does with what it reads is up to the agent you chose.
Which browsers
The tools use WebMCP, an experimental web standard. Today it works in Chromium browsers where it is enabled, such as Chrome with the WebMCP testing flag, and in agents built on them. Other browsers ignore it and the site works as usual.
Tools
search_writing— Search the writing- Full-text search across Danilo Poccia's published articles and books. Returns up to `limit` results with title, URL, context and a short excerpt. Use it to find writing on a topic before opening or reading it.
list_writing— List the writing- List published articles (newest first) with title, URL, date, summary and tags, and the books with their URLs. Optionally filter articles by tag.
get_book_contents— Book contents- Table of contents of one book or collection: chapters and pieces in reading order, with numbers and URLs. Use list_writing for book ids.
get_page_outline— Page outline- Title and section headings of the article or chapter open in this tab, with section ids for get_section_text and go_to_section.
get_section_text— Read a section- Plain text of one section of the current page, up to about 7,500 characters. Get section ids from get_page_outline.
find_in_page— Find in this page- Find the sections of the current page that mention the given words, best matches first, with a short excerpt. Then read a match with get_section_text.
go_to_section— Go to a section- Scroll the current page to a section and move keyboard focus there, as an in-page link would. The reader sees the move and can undo it.
open_page— Open a page- Navigate this tab to another page of this site (same origin only), for example a URL returned by search_writing or list_writing. Tools on the new page replace the current ones.
play_narration— Play narration- Start or resume the audio narration of this page with its visible player. Browsers may block playback that the reader did not start; then ask the reader to press Listen.
pause_narration— Pause narration- Pause the audio narration of this page if it is playing.
list_code_examples— List code examples- Runnable Python examples on this page, with ids, titles and their current code. Use the ids with run_code_example, step_code_example and restore_code_example.
run_code_example— Run a code example- Run a Python example in the page's isolated in-browser Python (Pyodide; standard library only, 10-second limit) and return its output. Optionally replace the code first; the reader sees the edited code in the editor and can restore the original. The first run downloads Python and may take a while.
step_code_example— Step through a code example- Advance a Python example by one recorded line, as the Step button does, returning the next line number and the output so far.
restore_code_example— Restore a code example- Restore a Python example's original code and clear its output, as Restore original does.
Turn the tools off
The setting applies to this browser on this device. It is stored in the browser, not sent to the site.
