Skip to main content
Glama

protein-mcp-server

protein-mcp-server: analyze collection

protein_analyze_collection
Read-only

Profile the PDB into distributions and trends over an optional scoping query: counts by method, organism, or polymer composition; resolution and molecular-weight histograms; release-year timelines; and multidimensional cross-tabs (e.g. method × release_year). Aggregation runs at RCSB, so the response carries compact counts per bucket rather than the matching entries. Pass one group_by dimension for a single breakdown, or two distinct dimensions for a cross-tab (the first nests the second). bucket_limit caps each dimension level separately rather than the response, so a cross-tab returns up to that many nested buckets under each of its capped parent buckets; bucketsReturned reports the realized total.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "group_by": "<group_by>"
    },
    "name": "protein_analyze_collection"
  }
}

Input Schema

NameRequiredDescriptionDefault
queryNoOptional free-text scope (e.g. "kinase"); omit to profile the whole PDB.
methodNoOptional experimental-method scope: X-RAY DIFFRACTION, ELECTRON MICROSCOPY, SOLUTION NMR, SOLID-STATE NMR, ELECTRON CRYSTALLOGRAPHY, NEUTRON DIFFRACTION, FIBER DIFFRACTION, POWDER DIFFRACTION, SOLUTION SCATTERING, EPR, FLUORESCENCE TRANSFER, INFRARED SPECTROSCOPY, THEORETICAL MODEL (any letter case), or an alias: cryo-EM / cryoEM / EM → ELECTRON MICROSCOPY; X-ray / xray → X-RAY DIFFRACTION; NMR → SOLUTION NMR + SOLID-STATE NMR. Any other value is rejected.
group_byYes1 dimension for a breakdown, or 2 distinct dimensions for a cross-tab (the first nests the second). Repeating a dimension is rejected.
intervalNoBin width for a histogram dimension (a number, for resolution or molecular_weight) or period for a date histogram ("year", for release_year). Applies to whichever requested group_by dimension can consume that value type — primary or nested child — so a cross-tab like ["method","resolution"] bins its nested resolution child. When both requested dimensions can consume it the primary takes it and the child keeps its default. When neither can, the call is rejected rather than silently ignoring the override.
organismNoOptional source-organism scope: a scientific name ("Homo sapiens"), an NCBI common name ("human"), or an NCBI taxon ID ("9606"), in any letter case. Matches that taxon and every taxon under it; a multi-word name also matches scientific names that contain it. A word fragment ("coli") matches nothing.
bucket_limitNoMax buckets per dimension level, not per response. A cross-tab applies the cap separately to the parent dimension and to the nested child inside each parent bucket, so up to bucket_limit × (1 + bucket_limit) buckets can come back — 2550 at the default 50. The realized count comes back as bucketsReturned. Defaults to the configured server cap.
content_typeNoWhich structure universe to profile. Default experimental. Computed models carry no experimental metadata, so method and resolution return nothing under "predicted".experimental
max_resolutionNoOptional maximum-resolution scope (Å).

Output Schema

NameRequiredDescriptionDefault
errorNoPresent when the call failed. Absent on success.
scopeNoEchoed scope description for follow-up calls.
totalNoTotal entries in the scoped collection.
facetsNoThe requested breakdown(s).
noticeNoAdvisory note (per-position bucket truncation, a scope that matched nothing, dimensions with no data under the requested content_type, dimensions whose buckets cover materially less than the total). Carries every applicable advisory in one string.
truncatedNoTrue when at least one dimension position — the top-level dimension or a nested cross-tab child — had more buckets than the applied cap. Which positions, and by how much, is named in notice.
bucketsReturnedNoBuckets in this response, summed over every dimension level: the top-level buckets plus, for a cross-tab, the nested child buckets under each of them. Since bucket_limit caps each level separately, this is the size those caps actually produced — always present, cross-tab or not.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint and openWorldHint, and the description adds substantial behavior on top: aggregation executes at RCSB rather than client-side, bucket_limit is per dimension level rather than per response (up to bucket_limit × (1 + bucket_limit) buckets), and bucketsReturned reports the realized total. The warning that `predicted` content yields nothing for method and resolution flags a real trap the annotations do not surface.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core purpose, then layers grouping, bucketing, and return-value semantics in a logical order with no filler sentences. The bucketing and cross-tab sentences are dense and long but each carries a distinct constraint that an agent would otherwise get wrong.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema, full annotation coverage, and 100% schema description coverage on 8 parameters, the description carries exactly the load it needs to: what aggregation means here, how grouping/nesting works, and how bucketing is bounded. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is already 100%, so the baseline is 3. The description does clarify the cross-tab nesting rule ("the first nests the second") and reinforces that bucket_limit caps each level separately, but most parameter nuance — the method aliases, organism matching rules, interval applicability — lives in the schema rather than the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Profile the PDB into distributions and trends") plus the scoping modifiers that define the operation. The enumeration of outputs (counts by method, histograms, timelines, cross-tabs) and the note that the response carries compact counts rather than matching entries separates it cleanly from entry-returning siblings like protein_search_structures.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The contrast with "the matching entries" makes clear this is the aggregation path rather than the retrieval path, and the description specifies when to pass one dimension versus two ("Pass one group_by dimension for a single breakdown, or two distinct dimensions for a cross-tab"). It stops short of naming a concrete sibling to use instead when the agent actually needs the underlying entries, so it is clear context without explicit routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.