{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_ugv5g4ujbyxz","handle":"tb-marionette-mcp","url":"https://wellknown.network/agents/tb-marionette-mcp","links":{"self":"https://wellknown.network/agents/tb-marionette-mcp/record.json","html":"https://wellknown.network/agents/tb-marionette-mcp","markdown":"https://wellknown.network/agents/tb-marionette-mcp/record.md","api":"https://wellknown.network/api/v1/agents/tb-marionette-mcp","status":"https://wellknown.network/api/v1/agents/tb-marionette-mcp/status","claim":"https://wellknown.network/agents/tb-marionette-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/tb-marionette-mcp/claim.json","badge":"https://wellknown.network/agents/tb-marionette-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/tb-marionette-mcp/history","tools":"https://wellknown.network/api/v1/agents/tb-marionette-mcp/tools"},"ard":{"identifier":"urn:air::server:tb-marionette-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"tb-marionette-mcp","summary":"MCP server for Thunderbird UI automation via Marionette","description":"# Thunderbird Marionette MCP\n\n[![CI](https://github.com/Hubbitus/thunderbird-marionette-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/Hubbitus/thunderbird-marionette-mcp/actions/workflows/ci.yml)\n[![PyPI version](https://img.shields.io/pypi/v/tb-marionette-mcp.svg)](https://pypi.org/project/tb-marionette-mcp/)\n[![Python versions](https://img.shields.io/pypi/pyversions/tb-marionette-mcp.svg)](https://pypi.org/project/tb-marionette-mcp/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n\nAn MCP (Model Context Protocol) server exposing UI automation of a running Thunderbird via the native **Marionette** protocol. Lets an AI assistant click buttons, type text, install extensions, capture screenshots, run chrome-scope JavaScript, and drive Thunderbird end-to-end.\n\n## What & why\n\nExisting Thunderbird MCP servers ([TKasperczyk/thunderbird-mcp](https://github.com/TKasperczyk/thunderbird-mcp), [U-C4N/Thunderbird-MCP](https://github.com/U-C4N/Thunderbird-MCP), and others) all work through the **WebExtension API** from inside Thunderbird. They handle mail/folder/contact data but cannot click UI, invoke hotkeys, or interact with extension popups.\n\nMarionette is Gecko's built-in automation protocol. It gives full **chrome** and **content** scope, including popups, dialogs, `Services`, `Cc/Ci`, `MailServices`, and the WebExtension popup DOM. This server wraps Marionette as MCP tools, so an LLM client can drive Thunderbird for extension development and end-to-end testing.\n\nLike \"playwright for Thunderbird\".\n\n## Install\n\nPackage on PyPI: <https://pypi.org/project/tb-marionette-mcp/>\n\n```bash\nuv tool install tb-marionette-mcp\n```\n\nOr with [pipx](https://pipx.pypa.io/):\n\n```bash\npipx install tb-marionette-mcp\n```\n\nOr plain pip (into an isolated venv, not system Python):\n\n```bash\npip install tb-marionette-mcp\n```\n\n## Prerequisites\n\n- **Thunderbird 153** on PATH (or via `TB_MCP_BINARY`). Live-tested against TB 153; TB 140–152 may work but is…","publisher":null,"homepage":"https://github.com/Hubbitus/thunderbird-marionette-mcp","repository":"https://github.com/Hubbitus/thunderbird-marionette-mcp","version":"0.2.2","license":"MIT","protocols":["mcp"],"tags":["mcp"],"pricing":null,"endpoints":[{"url":"pypi:tb-marionette-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","license":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi"}},"derived":{"capabilities":[{"slug":"infra.browser-automation","name":"Browser Automation","confidence":0.825,"provenance":"derived"},{"slug":"dev.package-management","name":"Packages & Dependencies","confidence":0.768,"provenance":"derived"}],"categories":["dev","infra"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"tb-marionette-mcp","registry":"pypi","observedAt":"2026-11-10T04:23:57.624Z","publishedAt":"2026-08-16T23:48:24.248153Z","latestVersion":"0.2.2"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"tb-marionette-mcp","url":"https://pypi.org/project/tb-marionette-mcp/","firstSeenAt":"2026-09-10T13:21:01.070Z","fetchedAt":"2026-11-10T04:22:24.997Z","normalizedAt":"2026-11-10T04:22:24.997Z"}]},"firstSeenAt":"2026-09-10T13:21:01.070Z","updatedAt":"2026-11-10T04:23:57.624Z"}