Skip to main content
The tool ui_show_structure shows a protein, or a complex of proteins, DNA, RNA, and small molecules, from its sequence. In clients that support MCP Apps, it opens an interactive structure viewer. It returns a PNG preview only when the call sets include_png to true.
If you run this tool on one protein, it uses the free ESM Atlas tool. Running this tool on a complex uses the folding tool, which is then billed to your Biohub account, as Complexes describes.

Show me the structure of GFP, colored by confidence, with Ser65, Tyr66, and Gly67 highlighted.

The structure viewer showing GFP as a dark blue cartoon beta barrel, with Style and Colored By menus, the pTM and mean pLDDT, the sequence, and highlighted residues A:65 S, A:66 Y, and A:67 G.The structure viewer in dark mode showing GFP as a dark blue cartoon beta barrel, with Style and Colored By menus, the pTM and mean pLDDT, the sequence, and highlighted residues A:65 S, A:66 Y, and A:67 G.

GFP in the structure viewer, colored by confidence, with its chromophore residues highlighted.

You can use the protein name, give its UniProt accession, or paste its sequence to use the viewer.

How a protein view is built

For one protein with one copy:
1

Look up the sequence

The server looks up the exact sequence in the ESM Atlas and uses the stored structure if there is one.
2

Predict a structure on a miss

If the ESM Atlas has no stored structure and the sequence is 700 residues or fewer, it predicts one for this request. A longer sequence without a stored structure returns sequence_too_long_to_fold.
3

Deliver the structure

The server sends the exact PDB file, with per-residue confidence, to the viewer.
A view of a stored structure takes about 2 seconds without a PNG preview and 4 to 8 seconds with one. A prediction on a miss takes longer.

Inputs

entities

Each entry in entities is one distinct molecule, in order: To show one protein, give one entry:
One protein can be up to 4,000 residues. The ESM Atlas matches the exact sequence, so a variant or trimmed sequence counts as a different protein. Anything else is a complex. Give a ligand either ccd or smiles, not both. Give each strand of a DNA duplex as its own entity.

include_png

By default, the server doesn’t render the structure, and the result has no image. Set include_png to true when your assistant needs to see the structure itself, or when your client can’t show the interactive viewer. The server then renders a PNG of the starting view and adds it to the result, which adds several seconds to the call.

view_options

Display settings change only what you see. They never change the PDB file. hotspot-facing turns the highlighted residues toward you, opposite shows the other side, and side looks from 90 degrees. hotspot-facing needs at least one highlight or a camera. Each entry in highlights names a residue by its number in the structure: This example colors GB1 by confidence and turns Trp43 toward you:
The camera object sets an exact camera pose in angstroms. It needs position, target, and up (each three numbers), radius, and radius_max. projection defaults to orthographic, fov to about 0.785 radians, and viewport to 1024 by 768 pixels. When the server rendered a preview, the result includes the camera it used, even if the image was then dropped for size. You can pass that camera back to reproduce the view. Otherwise the result returns camera as you sent it, which is null by default, and the viewer computes the orientation itself. When you set camera, it replaces the orientation preset.

What the tool returns

Every successful result contains:
  • A text block with a JSON summary of the view.
  • A PNG preview, when include_png is true and rendering succeeds.
  • The same summary as structured content.
  • The PDB file and per-residue annotations, delivered to the viewer app in the result metadata rather than in the text your assistant reads.
A preview that fails doesn’t fail the call. The viewer receives the structure whether or not there is a preview. Without one, your assistant has no image to look at, so it shouldn’t make visual claims about the structure.

The viewer app

The interactive viewer is an MCP App resource that the tool links to in its metadata. The app loads no external resources, and it asks the host only for clipboard access.

What your client shows

  • Clients that support MCP Apps render the interactive structure viewer inline. ChatGPT shows it in developer mode.
  • Other clients show only the text result, unless the call sets include_png to true and the client displays images. If your client doesn’t show the viewer, ask your assistant for a PNG preview.
In the viewer you can:
  • Rotate and zoom the structure with your mouse or trackpad.
  • Switch Style between cartoon and surface, and Colored By between confidence and chain, or, for one protein, one of its ten strongest SAE features when the ESM Atlas has them.
  • Show or hide chains.
  • Click residues to highlight them, up to 32, zoom to a highlighted residue, and clear highlights again.
  • Reset the camera to a straight-on view of the whole structure.
  • Read and copy the sequence, which the viewer shows alongside the 3D model.

Rotating GFP, switching to a surface and back, coloring by an SAE feature, zooming to Tyr66, and resetting the camera.

Below the structure, the viewer shows pTM, mean pLDDT, and Known, the percentage of the protein’s ESM Atlas cluster with Pfam annotations, or a dash when that is unknown. Hover over a residue to see its own values instead. With confidence coloring, residues are dark blue at pLDDT 0.9 or higher, light blue from 0.7, yellow from 0.5, orange below 0.5, and gray where confidence is unavailable.

Export

  • Download PDB saves the complete original file. The viewer checks its size and SHA-256 before it displays or exports it.
  • The image download saves a PNG of the current view, keeping its aspect ratio, at up to 1,600 pixels per side and about one megapixel in total.
  • Both need a client that supports file downloads. Elsewhere, the viewer shows neither Download PDB nor the image download.
  • Every PDB file from the ESM Atlas, stored or predicted, is released under the CC BY 4.0 license, as noted in its header. A complex’s PDB file has only atom records and no license header.
To get the file again later, call the tool again.

Complexes

Any input other than one protein with one copy is a complex: several chains, copies above 1, DNA, RNA, or ligands. Examples are a protein bound to ATP, a protein on DNA, or a homodimer. The server folds the complex with ESMFold2 on the Biohub Platform and shows it in the same viewer.
Each complex is a new fold billed to your Biohub account. To get scores without the viewer, fold a larger complex, or pay the lower batch price, ask for a fold instead, as Folding tools describes.

Fold and view a protein with ATP

Each complex is sent to the Biohub Platform once, as you, with model esmfold2-fast-2026-05. Your account’s limits and credits apply, exactly as for the fold_all_atom API. The fold must finish within 95 seconds. Nothing is saved: calling the tool again runs and bills a new fold. This example folds a homodimer with one ATP:

Chain labels

Chains are labeled A to Z and then a to j, in the order you list the entities and their copies. In the example, the two protein copies are chains A and B, and ATP is chain C. Residues are numbered from 1 in each chain, and each ligand is a single residue in its own chain. Use these chain IDs and numbers in highlights and visible_chain_ids.

Size limit

The Biohub Platform folds up to 768 tokens in one call. Each protein residue and each DNA or RNA nucleotide is one token, each ligand heavy atom (every atom except hydrogen) is one token, and every copy counts. For example, a 300-residue homodimer with one ATP is 300 × 2 + 31 = 631 tokens, because ATP has 31 heavy atoms. A larger complex returns sequence_too_long_to_fold. Get its confidence scores with esmfold2_fold_complex, or its structure file with Batch folding; both accept up to 4,096 tokens.

Complexes in the viewer

  • Confidence coloring covers protein, DNA, and RNA residues; ligands stay gray, because their confidence isn’t per residue.
  • The viewer’s stats show the complex’s pTM and the mean pLDDT of its polymer residues; ipTM is only in the tool result.
  • A ligand given as SMILES appears as residue LIG.
  • A PDB residue name holds three characters, so a ligand with a longer CCD code, such as A1A3E, appears as UNL, and warnings says so.
  • A complex has no ESM Atlas features, so Colored By offers only confidence and chain.

Limits

Errors

See Troubleshooting for what to do about each one.