Skip to content
Eden Engine

3D Protein Models for a UniProt Accession: Experimental and Predicted Structures (3D-Beacons)

beacons3d/uniprot-model-summary

Lists the 3D structure models available for one UniProt accession across the 3D-Beacons Network: experimentally determined structures (PDBe), template-based models (SWISS-MODEL), AlphaFold DB predictions, AlphaFill, ModelArchive, PED ensembles and more. Each model carries its provider, category, identifier, model file URL and format, the UniProt residue span it covers, sequence identity, coverage, resolution or confidence where the provider reports them, and the chains it holds. Optionally narrow to one model provider or a residue range. Data from the 3D-Beacons Network (EMBL-EBI, CC BY 4.0), served by Eden Engine; not an official 3D-Beacons or EMBL-EBI product.

activeper callv1

Price

$0.0026 per call

You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $0.50.

Data source

3D-Beacons Network (EMBL-EBI)

Data from the 3D-Beacons Network, hosted by PDBe-KB at EMBL-EBI, licensed CC BY 4.0 (creativecommons.org/licenses/by/4.0/). Each model remains the work of the provider named in its summary. Served by Eden Engine; not an official 3D-Beacons or EMBL-EBI product.

Use it

Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.

Connect once and your AI can find and run this tool, and any other it needs.

agent
// 1. search: find the tool
omnial_search({ query: "what you need" })

// 2. inspect: price and input schema
omnial_inspect({ tool: "beacons3d/uniprot-model-summary" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "beacons3d/uniprot-model-summary" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "beacons3d/uniprot-model-summary", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "beacons3d/uniprot-model-summary", input: { /* ... */ } })

// 5. settle: the call is charged when it finishes, nothing to do

Not connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.

Pricing

Every charge this tool can incur.

ChargePrice
Per call
$0.0026
Updated
Oct 25, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "required": [
    "uniprot_accession"
  ],
  "properties": {
    "range": {
      "type": "string",
      "pattern": "^[0-9]{1,5}-[0-9]{1,5}$",
      "description": "UniProt residue range as start-end, for example 1-100: only models overlapping it are returned, and uniprot_entry reports the window."
    },
    "provider": {
      "enum": [
        "pdbe",
        "ped",
        "swissmodel",
        "alphafold",
        "sasbdb",
        "alphafill",
        "hegelab",
        "modelarchive",
        "isoformio",
        "levylab",
        "bindome"
      ],
      "type": "string",
      "description": "Only models from this provider. Narrowing is advised for heavily studied proteins, whose full list runs to hundreds of entries. A provider with no model for the accession is rejected as invalid input."
    },
    "uniprot_accession": {
      "type": "string",
      "pattern": "^(?:[OPQ][0-9][A-Z0-9]{3}[0-9]|[A-NR-Z][0-9](?:[A-Z][A-Z0-9]{2}[0-9]){1,2})(?:-[0-9]{1,3})?$",
      "description": "UniProtKB accession in capitals, with an optional isoform suffix, for example P38398 (BRCA1) or P38398-2."
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "required": [
    "uniprot_entry",
    "structures"
  ],
  "properties": {
    "structures": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "summary"
        ],
        "properties": {
          "summary": {
            "type": "object",
            "required": [
              "model_identifier",
              "model_category",
              "model_url",
              "model_format",
              "provider"
            ],
            "properties": {
              "created": {
                "type": "string",
                "description": "Date the model was created (ISO 8601)."
              },
              "coverage": {
                "type": "number",
                "description": "Fraction of the UniProt sequence the model covers."
              },
              "entities": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "chain_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "identifier": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "UniProt accession or CCD code; null when the provider gives none."
                    },
                    "description": {
                      "type": "string"
                    },
                    "entity_type": {
                      "type": "string",
                      "description": "POLYMER or NON-POLYMER."
                    },
                    "identifier_category": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "UNIPROT, CCD or other; null when the provider gives none."
                    }
                  },
                  "additionalProperties": true
                },
                "description": "The molecules in the model."
              },
              "provider": {
                "type": "string",
                "description": "Model provider, for example PDBe."
              },
              "model_url": {
                "type": "string",
                "description": "URL of the model coordinate file."
              },
              "resolution": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Resolution in angstroms."
              },
              "uniprot_end": {
                "type": "integer",
                "description": "Last UniProt residue the model covers."
              },
              "model_format": {
                "type": "string",
                "description": "File format, for example MMCIF."
              },
              "uniprot_start": {
                "type": "integer",
                "description": "First UniProt residue the model covers."
              },
              "model_category": {
                "type": "string",
                "description": "EXPERIMENTALLY DETERMINED, TEMPLATE-BASED, AB-INITIO, CONFORMATIONAL ENSEMBLE and similar."
              },
              "model_page_url": {
                "type": "string",
                "description": "The provider's web page for the model."
              },
              "confidence_type": {
                "type": "string",
                "description": "Confidence measure for predicted models, for example pLDDT."
              },
              "model_identifier": {
                "type": "string",
                "description": "The provider's model id."
              },
              "sequence_identity": {
                "type": "number",
                "description": "Fraction of identical residues between model and UniProt sequence."
              },
              "experimental_method": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "For example X-RAY DIFFRACTION."
              },
              "confidence_avg_local_score": {
                "type": "number",
                "description": "Average of that measure over the model."
              }
            },
            "description": "The model summary. Confidence fields appear on predicted models, resolution and experimental method on experimental ones.",
            "additionalProperties": true
          }
        },
        "additionalProperties": true
      },
      "description": "One entry per model, each holding a summary object."
    },
    "uniprot_entry": {
      "type": "object",
      "required": [
        "ac",
        "id",
        "sequence_length"
      ],
      "properties": {
        "ac": {
          "type": "string",
          "description": "UniProt accession, for example P38398."
        },
        "id": {
          "type": "string",
          "description": "UniProt entry name, for example BRCA1_HUMAN."
        },
        "segment_end": {
          "type": "integer",
          "description": "Last residue covered by any returned model."
        },
        "segment_start": {
          "type": "integer",
          "description": "First residue covered by any returned model."
        },
        "sequence_length": {
          "type": "integer",
          "description": "Length of the UniProt sequence."
        },
        "uniprot_checksum": {
          "type": "string",
          "description": "CRC64 checksum of the UniProt sequence, when the hub reports it."
        }
      },
      "description": "The matched UniProt entry.",
      "additionalProperties": true
    }
  },
  "description": "The UniProt entry the models were matched to, and one summary per model.",
  "additionalProperties": true
}