Burette Plugin and MCP
Burette has two complementary plugin surfaces:
- A public hosted plugin that opens supported molecular results directly in the real Burette browser workspace.
- A local Codex plugin that opens molecular files in an inline chat workspace and supports local viewer or desktop sessions.
Both implementations live in the main Burette repository . There is no separate plugin source repository.
Public hosted plugin
The production MCP endpoint is:
https://burette-plugin.vercel.app/mcpIt exposes five tools:
preview_molecular_file
preview_pdb_structure
render_molecular_scene
open_ketcher
control_ketcherpreview_molecular_file accepts one ChatGPT-authorized PDB, ENT, PDBQT, CIF, mmCIF, SDF, SD, XYZ, or extended XYZ attachment. preview_pdb_structure retrieves one public RCSB Protein Data Bank entry by its four-character PDB ID. render_molecular_scene applies up to eight bounded selection, focus, camera, or component-visibility actions to one of those sources. These three structure tools are read-only.
open_ketcher creates an isolated editor and can seed one bounded KET, MOL, RXN, or SMILES structure. control_ketcher applies revision-checked edit or export actions. Hosted Ketcher state is process-local and ephemeral; it does not write a local file or a shared public workspace.
The three structure tools return bounded composition data and open the real Burette viewer with its toolbar, sequence and selection controls, measurements, representations, camera controls, and molecular inspector. The Ketcher tools return a bounded editor snapshot and editor widget. The deployment root redirects back to this documentation; it is not a separate viewer product.
The public domain hosts the MCP service and widget assets. After the MCP server returns a tool result and UI template, ChatGPT renders the Burette component inside an isolated iframe on the user’s device, where WebGL and Mol* use that device’s CPU and GPU. State belongs to that chat widget; there is no shared protein or shared Burette workspace between users.
A working endpoint does not by itself mean the plugin is listed for one-click installation. Availability depends on the host and account. Use the installation options shown by your host; this endpoint is separate from the local Codex plugin installer below.
Demo recordings
The desktop recording shows ChatGPT opening PDB 1CRN in the hosted Burette widget and interacting with the molecular camera and representation controls.
The physical iPhone recording shows the same public plugin opening PDB 1HTB and rendering the interactive molecular structure on mobile.
Hosted data boundary
Attachments are fetched from the temporary HTTPS URL authorized by the OpenAI host, processed in memory, and limited to 3 MiB. The service does not save them to Burette application storage. Raw molecular text is returned only to the sandboxed Burette workspace through result metadata; the model receives a bounded summary.
Do not send credentials, protected health information, export-controlled structures, or confidential molecular files unless your OpenAI workspace policy and organization explicitly permit that processing. See the Privacy Policy for recipients, retention, and user controls.
Local Codex workspace plugin
The local plugin connects Codex to the same molecular workspace used by the macOS app. It combines focused workflow skills with a typed local stdio MCP server.
Use this path for files on the same Mac. The inline viewer opens inside the chat; opening a browser workspace or controlling the installed desktop app is a separate mode. Local workspace operations do not use the public hosted attachment service. Your agent host still handles the conversation and tool context under its own data policy.
What local Codex can do
- Open molecular structures, SDF collections, trajectories, and result bundles.
- Observe the active document, tabs, panels, viewer readiness, and Mol* scene state.
- Run allowlisted viewer actions such as focusing ligands, hiding waters, changing representations, and resetting the camera.
- Author, validate, and play multi-state MolViewSpec Stories through typed story tools (schema help, templates, create, validate, observe, and control).
- Sketch and edit small molecules through the typed Ketcher facade.
- Render bounded markdown, tables, charts, and molecular reports beside the workspace.
- Keep local-file provenance explicit without exposing an arbitrary shell or unrestricted file-access tool.
Inline viewer and session tools
The packaged inline viewer opens with burette.open_viewer. Keep its sessionId and use burette.control_inline_viewer for subsequent actions and files in the same workspace. Repeated opener calls create separate sessions rather than continuing the existing view.
The pinned package supports up to eight files and 16 MiB in one inline session. Available controls include camera movement, representation and colour changes, and supported document actions. Selection context reports what is selected in the viewer; it is not a scientific analysis result.
Desktop and browser-session tools use their own handles and contracts. Let the installed plugin’s tool schema determine the correct arguments rather than copying a handle between modes. The repository also contains the desktop automation facade for observation, viewer control, Ketcher, and MolViewSpec Stories.
Install the local plugin
Install Git, Bun, and Codex first. Clone the main repository and run its plugin installer:
git clone https://github.com/SergeiNikolenko/Burette.git
cd Burette
bun run install:pluginRestart Codex after installation, then mention @Burette or select Burette from Plugins. The installer stages and verifies the native widget package pinned in config/native-widget.json, then installs it through the burette-widget marketplace as burette@burette-widget. The staged directory plugins/burette-native-bundle is generated; it is not a second source repository. The MCP server is bundled, so the installed plugin does not depend on a separate node_modules directory.
Why the workspace bridge stays local
Desktop control needs user-selected local molecular files and local Browser or desktop sessions. A Codex-local plugin with a stdio MCP server matches that boundary, while the hosted plugin is intentionally limited to one authorized attachment or one public PDB entry.
The MCP layer exposes purpose-built molecular operations. It does not provide arbitrary JavaScript or shell execution. Local HTTP surfaces are token-gated, payloads are bounded, and destructive overwrites or remote-job submission remain outside the plugin contract.
Browser development, the desktop app, tokenized preview, native Quick Look, and the MCP process are separate runtime surfaces. Passing one does not prove the others.