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 can open local files and control Burette desktop or Browser 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 is only the HTTPS host for /mcp and the widget’s JavaScript and CSS. 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.
The hosted plugin is deployed for testing and prepared for review. Public one-click installation becomes available only after OpenAI approves the listing and the publisher releases it in the Plugins Directory.
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.
This is the preferred path for local-first work on the same Mac: the plugin can open local files and control the installed Burette app without routing that workspace through the public hosted service.
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.
The short MCP facade is:
burette.get_context
burette.open_workspace
burette.open_ketcher
burette.observe_workspace
burette.control_viewer
burette.control_ketcher
burette.get_mvs_authoring_reference
burette.list_story_templates
burette.create_story_from_template
burette.create_story
burette.validate_story
burette.observe_story
burette.control_story
burette.render_panelburette.open_workspace returns a stable workspaceSessionId. Follow-up calls use that handle instead of carrying raw URLs or session-directory details through the conversation.
Install the local plugin
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 the self-contained plugin in a dedicated local marketplace, registers that marketplace with Codex, and enables burette@burette through the Codex CLI. 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.