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.


GFP in the structure viewer, colored by confidence, with its chromophore residues highlighted.
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.
Inputs
entities
Each entry inentities is one distinct molecule, in order:
To show one protein, give one entry:
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. Setinclude_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:
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_pngistrueand 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_pngtotrueand the client displays images. If your client doesn’t show the viewer, ask your assistant for a PNG preview.
- 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.
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.
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
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 labeledA 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 returnssequence_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 asUNL, andwarningssays 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.