Skip to main content
Glama

πŸ”¬ PocketScout MCP

Scout the binding landscape before you design the binder.

PocketScout is a fast triage tool for drug-target binding sites β€” it gives an AI assistant the tools to pull together everything known about a protein's pockets (structure, chemistry, conservation, literature) into a single briefing in minutes. It's especially handy as the reconnaissance step before computational binder design, filling the gap between "I have a target" and "I'm running RFdiffusion."

Get Started

Use instantly on claude.ai (no install)

  1. Go to claude.ai β†’ Customize β†’ Connectors β†’ +

  2. Name: PocketScout

  3. URL: https://pocketscout-mcp.up.railway.app/mcp

  4. Ask Claude:

"Assess KRAS G12C (PDB 6OIM) as a target for de novo protein binder design. Where are the best pockets, and what should I watch out for?"

Use with Claude Code

claude mcp add pocketscout --transport http https://pocketscout-mcp.up.railway.app/mcp

Use with Claude Desktop

Add to your claude_desktop_config.json:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "pocketscout": {
      "url": "https://pocketscout-mcp.up.railway.app/mcp"
    }
  }
}

Restart Claude Desktop, then ask Claude to assess a target.


Related MCP server: MCPymol

The Problem

Drug discovery scientists spend hours to days manually gathering information across 6-10 browser tabs before they can make an informed decision about a target. Scientists evaluating an unfamiliar target, new team members trying to get up to speed, and scouting or BD roles screening many candidates face the same bottleneck: they check UniProt for function, browse PDB for structures, search ChEMBL for prior art, read papers for allosteric insights β€” and then synthesize it all in their heads.

This manual triage step is where campaigns quietly go wrong. A scientist picks the obvious orthosteric site without checking that 200 compounds have already failed there. They miss an allosteric pocket described in a 2023 paper. They don't realize the binding site residues aren't conserved in mouse until their in vivo model fails. For binder-design campaigns specifically, it's the gap between "I have a target" and knowing which pocket to hand off to RFdiffusion.

The Solution

PocketScout gives an AI assistant (Claude, or any MCP-compatible model) the tools to perform systematic binding site triage in minutes instead of hours β€” whether you're screening a target for the first time, briefing a new team member, or preparing a computational design campaign. Eight tools compose into a scientific workflow that reflects how expert medicinal chemists actually evaluate targets.

Tools

Tool

What it does

Key APIs

characterize_target

Biological context + AlphaFold confidence

UniProt, AlphaFold DB

get_related_structures

All PDB structures, ligands, quality

RCSB PDB Search

get_binding_sites

Map known pockets with residue contacts

RCSB PDB Data + gemmi

get_ligand_history

Competitive landscape from bioactivity data

ChEMBL

check_conservation

Human vs. mouse at binding residues

UniProt Orthologs

search_target_literature

Structural/design-focused papers

PubMed E-utilities

check_known_variants

Flag known disease/resistance variants at binding-site residues

UniProt

consolidate_binding_sites

Union of pockets across all structures of a target, ranked by recurrence

RCSB PDB + gemmi

Orchestration Prompts

target_briefing β€” Quick triage briefing for a drug target: what the protein is, its main pockets, the competitive landscape, and the one or two things worth knowing before going deeper. Use this for fast first-pass assessment.

binding_site_assessment β€” In-depth, design-focused workup. Guides the AI through all tools in scientific workflow order, producing a ranked recommendation of binding regions with evidence, trade-offs, and design parameters.

Install locally (optional)

If you prefer to run the server yourself:

pip install pocketscout-mcp

Or from source:

git clone https://github.com/Proprius-Labs/pocketscout-mcp.git
cd pocketscout-mcp
pip install -e .

Requires Python 3.11+. If your system Python is older, use uv: uv pip install pocketscout-mcp

Then configure Claude Desktop to run locally:

{
  "mcpServers": {
    "pocketscout": {
      "command": "pocketscout-mcp"
    }
  }
}

Tip: If you installed in a virtual environment, use the full path: "command": "/path/to/venv/bin/pocketscout-mcp"

Test with MCP Inspector

fastmcp dev src/pocketscout_mcp/server.py

Design Decisions

Why these tools?

The tool set reflects the actual decision workflow of an experienced drug discovery scientist evaluating a new target. Each tool answers a specific question that gates the next decision:

  1. characterize_target: "What am I looking at?" β€” You can't interpret binding sites without knowing the protein family, location, and structure quality. AlphaFold confidence is included here because it determines whether downstream structural analysis is trustworthy.

  2. get_related_structures: "How much do we know?" β€” A target with 200 co-crystal structures is a different problem than one with a single cryo-EM map. This step sets expectations for the binding site analysis.

  3. get_binding_sites: "Where can I bind?" β€” The core deliverable. Downloads the mmCIF coordinate file, uses gemmi to compute residue contacts within 4.5 A of each co-crystallized ligand, and classifies pockets (orthosteric, allosteric, cofactor) with size-based druggability assessment. When a structure has both cofactor and non-cofactor ligands, non-overlapping sites are automatically reclassified as allosteric.

  4. get_ligand_history: "What's been tried?" β€” Determines whether you're entering a crowded or greenfield space. A crowded orthosteric site argues for novel sites or modalities.

  5. check_conservation: "Will my mouse model work?" β€” Non-conserved binding residues mean your preclinical model may give misleading results. This is the step most scientists skip β€” and the one that most often causes late-stage failures.

  6. search_target_literature: "What do the experts know that the databases don't?" β€” Cryptic sites from MD simulations, allosteric mechanisms from mutagenesis studies, resistance mutations that reshape pockets β€” these insights live in papers, not databases.

  7. check_known_variants: "Will this pocket mutate out from under me?" β€” Binding-site residues that are documented resistance/disease variants (e.g. EGFR T790M) flag pockets that change under drug pressure.

  8. consolidate_binding_sites: "Which pocket is real and recurrent?" β€” Unions pockets across all structures of a target so the dominant, repeatedly-observed site stands out from one-offs.

Why not include pocket prediction?

Tools like fpocket, P2Rank, and SiteMap predict novel binding sites computationally. These are valuable but require computational infrastructure (CPU/GPU) that doesn't fit the MCP model of lightweight API-based tools. PocketScout focuses on known binding intelligence from experimental data and literature. Pocket prediction belongs in a separate compute-oriented server.

Why pre-compute interpretations?

Each tool returns both raw data and an interpretation field with scientific context. This is a deliberate design choice: the interpretation encodes domain expertise that helps the AI make better reasoning decisions. A raw list of ChEMBL activities is harder for Claude to reason about than a structured competitive landscape assessment.

Why local-context conservation across mouse, rat, and cynomolgus?

Full multi-species conservation requires multiple sequence alignment, which is computationally expensive and error-prone without proper gap handling. The tool now checks three preclinical model organisms β€” mouse (NCBI taxonomy 10090), rat (10116), and cynomolgus macaque (9541) β€” covering both rodent and non-human primate translatability questions in a single call. Each species is assessed independently using local-context (sliding-window) matching to handle insertions/deletions between the human and ortholog sequences, providing accurate residue correspondence without requiring a full MSA or a BioPython dependency. The tool is deliberately kept lightweight: no MSA, no external alignment tools, no heavy dependencies.

Architecture

User: "Assess PDB 7S4S for de novo binder design"
  β”‚
  β–Ό
Claude (or any MCP client)
  β”‚
  β”œβ”€β”€ characterize_target(pdb_id="7S4S")
  β”‚     └── UniProt API + AlphaFold DB
  β”‚
  β”œβ”€β”€ get_related_structures(pdb_id="7S4S")
  β”‚     └── RCSB PDB Search API
  β”‚
  β”œβ”€β”€ get_binding_sites(pdb_id="7S4S")
  β”‚     └── RCSB PDB Data API
  β”‚
  β”œβ”€β”€ get_ligand_history(uniprot_id="...")
  β”‚     └── ChEMBL REST API
  β”‚
  β”œβ”€β”€ check_conservation(uniprot_id="...", residues=[...])
  β”‚     └── UniProt Orthologs
  β”‚
  β”œβ”€β”€ check_known_variants(uniprot_id="...", residues=[...])
  β”‚     └── UniProt variants
  β”‚
  β”œβ”€β”€ consolidate_binding_sites(uniprot_id="...")
  β”‚     └── RCSB PDB + gemmi (cross-structure)
  β”‚
  └── search_target_literature(gene_name="...")
        └── PubMed E-utilities
  β”‚
  β–Ό
Ranked binding site assessment with evidence + trade-offs

Example Output

See examples/egfr_assessment.md for a complete walkthrough using EGFR (PDB 1M17) β€” a well-studied kinase with rich structural and chemical data.

Configuration

NCBI rate limits to 3 requests/second without a key. Get a free key at NCBI and set:

export NCBI_API_KEY=your_key_here

Limitations

  • No pocket prediction: PocketScout reports known binding sites from experimental structures. Novel/cryptic site prediction requires computational tools not included here.

  • Simplified conservation: Human vs. mouse, rat, and cynomolgus comparison using local context matching. Handles indels but not a full MSA β€” accurate for most drug targets.

  • Public data only: All data comes from public APIs (UniProt, PDB, ChEMBL, PubMed, AlphaFold DB). Proprietary databases are not accessed.

Roadmap

  • Coordinate-level binding site analysis with gemmi

  • Per-residue AlphaFold pLDDT from CIF files

  • Multi-species conservation (mouse/rat/cynomolgus via local-context matching)

  • Integration with computational pocket prediction (fpocket MCP)

  • Allosteric site detection from ensemble structures

  • Patent landscape integration (SureChEMBL)

Contributing

PRs welcome. See CONTRIBUTING.md for guidelines.

License

MIT

Author

Paul Mangiamele, PhD Proprius Labs Β· LinkedIn

Available Tools

8 tools
CharacterizeTargetCharacterize TargetA
Read-onlyIdempotent

Establish biological context for a drug target protein.

Retrieves protein function, family classification, subcellular location, disease associations, and AlphaFold structure confidence. This should be your FIRST call β€” all downstream analysis depends on this context.

IMPORTANT: AlphaFold confidence flags regions where predicted structure is unreliable. Low-confidence regions (<70 pLDDT) may have incorrect pocket predictions β€” always cross-reference with experimental structures.

Provide EITHER a PDB ID (e.g. '1M17') OR a UniProt accession (e.g. 'P00533'). If a PDB ID is given, the UniProt mapping is resolved automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
pdb_idNo
uniprot_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds meaningful domain-specific behavioral context beyond annotations: the AlphaFold confidence caveat (<70 pLDDT regions may yield incorrect pocket predictions) and the automatic PDB→UniProt resolution. This is valuable but doesn't cover rate limits or output caveats in depth.

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-loaded with the core purpose, then retrieval scope, the first-call directive, the AlphaFold caveat, and the input rule. It is somewhat longer than strictly necessary (the AlphaFold IMPORTANT paragraph is a sizeable aside) but every block carries useful information and nothing is filler.

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?

For a read-only characterization tool with an output schema present, the description covers purpose, retrieval contents, call ordering, and the input contract. The AlphaFold caveat pre-empts downstream misuse, and return values needn't be explained since an output schema exists.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate β€” and it does: it gives concrete example values ('1M17', 'P00533') and states the resolution behavior when a PDB ID is provided. Both parameters are addressed, though it doesn't clarify precedence if both are supplied or that both are optional.

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?

The description opens with a specific verb+resource: 'Establish biological context for a drug target protein', then enumerates exactly what is retrieved (function, family, subcellular location, disease associations, AlphaFold confidence). This makes the tool's scope unambiguous and clearly distinguishable from siblings like GetBindingSites or SearchTargetLiterature.

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

Usage Guidelines5/5

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

Explicitly instructs 'This should be your FIRST call β€” all downstream analysis depends on this context', giving a clear ordering prerequisite relative to the sibling analysis tools. The either/or input rule ('Provide EITHER a PDB ID OR a UniProt accession') further guides correct invocation.

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

CheckConservationCheck ConservationA
Read-onlyIdempotent

Check conservation at binding site residues across mouse, rat, and cynomolgus.

Critical for preclinical translatability: if key binding site residues differ between human and a preclinical model, that species' efficacy data may not predict human response. Non-conserved positions are flagged for each species individually.

Conservation > 90%: excellent β€” species should recapitulate human binding. Conservation 70-90%: acceptable β€” verify non-conserved positions are not critical contact residues. Conservation < 70%: caution for that species β€” consider a better-conserved alternative. Cynomolgus (macaque) is the closest primate model and often shows higher conservation than rodents when the target has primate-specific sequence features.

Default species checked: mouse, rat, cynomolgus. Pass a custom species list to restrict or reorder (supported values: 'mouse', 'rat', 'cynomolgus').

Provide the human UniProt accession and residue positions from GetBindingSites.

ParametersJSON Schema
NameRequiredDescriptionDefault
speciesNo
uniprot_idYes
residue_positionsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover read-only/idempotent safety, and the description adds genuine behavioral detail: non-conserved positions are flagged per species individually, default species and ordering behavior, and interpretation thresholds. It does not address failure modes such as missing ortholog sequence or invalid residue positions.

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-loaded with the core action and its translatability rationale, then thresholds, then parameter guidance. Mostly every sentence earns its place, though the macaque superiority aside is slightly digressive.

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

Completeness4/5

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

An output schema exists, so return formatting is not required, and the description adequately covers inputs, defaults, and how to read results. Remaining gaps are edge cases (invalid positions, species without orthologs) rather than core guidance.

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

Parameters4/5

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

Schema coverage is 0%, so the description carries the burden, and it does: uniprot_id is identified as the human accession, residue_positions must come from GetBindingSites, and the species parameter's value domain ('mouse', 'rat', 'cynomolgus'), default, and restrict/reorder behavior are supplied even though the schema has no enum. Residue numbering convention (UniProt vs. structure numbering) is left ambiguous.

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 ('check conservation at binding site residues') with an explicit scope (mouse, rat, cynomolgus). It is clearly separable from siblings such as CheckKnownVariants or CharacterizeTarget, and it names GetBindingSites as the upstream source of its inputs.

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?

Gives a clear context and motivation (preclinical translatability) plus a prerequisite chain ('residue positions from GetBindingSites'). It also prescribes what to do at each conservation band. It stops short of naming alternatives to use when conservation is poor or when a different check is wanted.

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

CheckKnownVariantsCheck Known VariantsA
Read-onlyIdempotent

Flag known sequence variants and mutagenesis hits at binding-site residues.

Binding-site residues that are documented disease/resistance variants (e.g. EGFR T790M) mark pockets that mutate under drug pressure β€” a key risk signal when choosing where to design. Source: UniProt Natural variant + Mutagenesis features. Provide the human UniProt accession and positions from GetBindingSites.

ParametersJSON Schema
NameRequiredDescriptionDefault
uniprot_idYes
residue_positionsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/openWorld, so safety is covered. The description adds real behavioral context beyond that: the underlying data source (UniProt Natural variant + Mutagenesis features) and how to interpret a positive hit as a drug-resistance risk signal. Output format is deferred to the output schema.

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 action, follows with the interpretation rationale, and ends with the concrete input instruction. Well-sized with no filler, though the middle explanatory sentence is somewhat long.

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

Completeness4/5

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

For a simple two-parameter read-only lookup with an output schema present, the description covers purpose, data provenance, and input sourcing sufficiently; an agent has what it needs to call it correctly. Minor gaps remain around position format.

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 0%, so the description carries the burden. It does add value by specifying the accession must be human and that residue_positions come from GetBindingSites, but it gives no format details such as numbering convention or expected position range, leaving meaningful ambiguity for a 2-parameter tool.

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

Purpose4/5

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

States a specific verb and resource: 'Flag known sequence variants and mutagenesis hits at binding-site residues.' It also names the upstream sibling (GetBindingSites) as the source of positions, which helps separate it from CharacterizeTarget/CheckConservation, though it never explicitly contrasts with those siblings.

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?

Gives clear context: call it with a human UniProt accession plus positions obtained from GetBindingSites, and explains why (documented variants mark pockets that mutate under drug pressure, a risk signal for design choices). No explicit when-not-to-use or exclusion of alternatives, so it stops short of a 5.

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

ConsolidateBindingSitesConsolidate Binding SitesA
Read-onlyIdempotent

Map the union of binding pockets across all structures of a target.

Fans out GetBindingSites over the top structures and clusters pockets by residue overlap, so recurrent pockets (e.g. the ATP site appearing in most structures) stand out from one-off or artifact sites. The heaviest tool β€” downloads several coordinate files. Provide uniprot_id (preferred) or pdb_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
pdb_idNo
uniprot_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/open-world, so safety is covered. The description adds genuinely new behavioral context beyond that: it is 'the heaviest tool β€” downloads several coordinate files,' implying cost/latency, and it clusters pockets by residue overlap rather than returning raw sites. It omits pagination/result-size behavior, but the cost signal is a real value-add.

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

Conciseness5/5

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

Front-loads what the tool does, then mechanics, then input guidance, in three tight sentences with no filler. Every sentence carries information the agent needs.

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

Completeness4/5

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

An output schema exists, so return-value explanation is not required, and the description covers purpose, cost, and ID selection adequately for a fan-out aggregation tool. The remaining gap is the undocumented `limit` parameter and the absence of any explicit alternative-selection rule against GetBindingSites.

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 0%, so the description must compensate. It explains uniprot_id vs pdb_id and marks uniprot_id as preferred, which is useful, but it never explains the third parameter `limit` (apparently the number of top structures) nor the mutual exclusivity of the two ID options. Two of three parameters get meaning; one is left fully undocumented.

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 ('Map the union of binding pockets across all structures of a target') and explicitly names the sibling it builds on ('Fans out GetBindingSites'), so an agent can distinguish aggregation from the single-structure lookup. The clustering-consensus concept (recurrent vs one-off pockets) sharpens the purpose further.

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?

Gives concrete input selection guidance ('Provide uniprot_id (preferred) or pdb_id') and implicitly frames the tool as the multi-structure consensus counterpart to GetBindingSites. However, it never states the exclusion condition explicitly (e.g. use GetBindingSites instead when you only need a single structure), so the when-not is left to inference.

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

GetBindingSitesGet Binding SitesA
Read-onlyIdempotent

Map all known binding sites in a protein structure from co-crystallized ligands.

Identifies binding pockets by analyzing non-polymer entities (ligands, cofactors) in the structure, filtering out crystallization artifacts (glycerol, PEG, sulfate, etc.), and classifying each site by type.

Each site includes druggability assessment and modality recommendations:

  • Small deep pockets (< 20 contact residues) favor small molecules

  • Large flat interfaces (> 30 residues) favor biologics or de novo protein binders

  • Allosteric sites may offer selectivity advantages over orthosteric sites

Call this on specific PDB IDs identified by GetRelatedStructures. For comprehensive analysis, call on multiple structures with different co-crystallized ligands to build a complete pocket map.

ParametersJSON Schema
NameRequiredDescriptionDefault
pdb_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), and the description adds substantial behavior beyond that: it filters crystallization artifacts (glycerol, PEG, sulfate), classifies sites by type, and reports per-site druggability and modality recommendations with concrete thresholds. This is exactly the kind of non-obvious processing behavior an agent needs.

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?

The map statement is front-loaded, followed by method, output contents, and usage in a logical order with efficient bullet lists. It is somewhat long relative to a one-parameter tool, but nearly every sentence adds decision-relevant information.

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?

Given an output schema exists, the description need not enumerate return values, yet it usefully previews site classification and druggability outputs. Combined with the guidance on which IDs to pass and the multi-structure strategy, an agent has everything required to invoke it correctly.

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

Parameters4/5

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

The single parameter (pdb_id) has 0% schema description coverage, so the description must carry the load. It does so partially by establishing that the argument is a specific PDB ID obtained from GetRelatedStructures, which clarifies the expected value provenance, though it gives no format example or validity constraints.

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

Purpose4/5

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

The description states a specific verb and resource ('Map all known binding sites in a protein structure') and even specifies the method (analyzing non-polymer entities from co-crystallized ligands). It is clearly distinct from data-fetching siblings like GetRelatedStructures, though it never explicitly contrasts itself with ConsolidateBindingSites, so it stops short of full sibling differentiation.

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?

It gives clear context: call this on specific PDB IDs surfaced by GetRelatedStructures, and for comprehensive coverage call it across multiple structures with different ligands. That names the upstream tool and the multi-call strategy, but there is no explicit 'do not use this when...' exclusion versus ConsolidateBindingSites.

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

GetLigandHistoryGet Ligand HistoryA
Read-onlyIdempotent

Retrieve the bioactivity landscape for a drug target from ChEMBL.

Shows what compounds have been tested, how potent the best ones are, whether any have reached clinical trials, and how crowded the competitive landscape is.

Use this to decide whether to target KNOWN binding sites (where SAR exists) or seek NOVEL sites (where de novo design has an advantage). A crowded landscape suggests new modalities or allosteric approaches; an untargeted landscape suggests opportunity but less prior validation.

Provide EITHER uniprot_id or pdb_id (UniProt preferred for accuracy).

ParametersJSON Schema
NameRequiredDescriptionDefault
pdb_idNo
uniprot_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already establish read-only, idempotent, open-world, non-destructive behavior, so the safety profile is covered. The description adds useful context about what the data reveals (SAR availability, clinical reach, landscape crowding), but discloses no auth needs, rate limits, or data-freshness caveats.

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-loaded with the core purpose, then progressively adds interpretation guidance and the parameter constraint. Well-sized and structured, though the middle interpretive paragraph is advisory rather than strictly operational and could be trimmed.

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

Completeness4/5

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

An output schema exists, so return-value details are appropriately omitted, and the mutual-exclusion constraint on the two optional parameters is stated. For a two-parameter read tool this is close to complete; the only gap is that neither parameter is required despite the either/or instruction, which the agent must infer.

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

Parameters4/5

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

Schema coverage is 0%, so the description must carry the parameter burden, and it does the most important part: the two IDs are mutually exclusive alternatives ("Provide EITHER") with a stated preference (UniProt for accuracy). Neither the anyOf/null schema nor the 0% coverage conveys the either-or constraint or the accuracy tradeoff.

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

Purpose4/5

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

States a specific verb (Retrieve) and resource (bioactivity landscape for a drug target from ChEMBL) and enumerates what the result covers: compounds tested, potency, clinical progression, competitive density. It carves out a distinct domain relative to siblings like GetBindingSites and SearchTargetLiterature, though it never names those siblings to sharpen the boundary.

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?

Explicitly frames the decision this tool supports (known vs novel binding sites, crowded vs untargeted landscape), which tells the agent when the tool is worth calling. It does not name an alternative tool or state when NOT to use it, so it falls short of full routing guidance.

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

GetRelatedStructuresGet Related StructuresA
Read-onlyIdempotent

Find all PDB structures for a target protein.

Returns all available experimental structures, sorted by resolution. Use this to understand structural coverage: how many structures exist, what ligands have been co-crystallized, what conformational states are captured, and what the best-quality structure is.

A target with many high-resolution co-crystal structures has a rich binding site landscape to analyze. A target with only 1-2 structures (or only apo/unliganded structures) has less structural evidence.

Call this AFTER CharacterizeTarget and BEFORE GetBindingSites to identify which structures to analyze for pockets.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
pdb_idNo
uniprot_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent, openWorld and non-destructive, so the safety bar is met. The description adds useful behavioral context beyond that: results are sorted by resolution, and the interpretation guidance (many co-crystal structures = rich landscape; apo-only = less evidence) tells the agent what the output means. It stops short of describing pagination or the role of the limit parameter.

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-loaded with the core action, then rationale, then workflow placement. The middle paragraph on structural coverage interpretation is slightly expansive but delivers genuine decision value rather than filler.

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

Completeness4/5

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

An output schema exists, so return values need no explanation, and the description covers purpose, workflow position, and result interpretation. The one real gap is parameter documentation, which is scored separately, so the description is otherwise complete for this tool.

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

Parameters2/5

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

Schema description coverage is 0% and the description never addresses any of the three parameters. It implies target-based lookup (consistent with uniprot_id), but the limit default, the pdb_id option, and how the two identifiers interact are left entirely undocumented in both schema and 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: 'Find all PDB structures for a target protein', with the ordering by resolution and the scope (all available experimental structures). This is clearly distinguishable from siblings like GetBindingSites and CharacterizeTarget, which the description names directly.

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

Usage Guidelines5/5

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

Gives explicit sequencing: 'Call this AFTER CharacterizeTarget and BEFORE GetBindingSites'. It also explains the purpose of that placement (to identify which structures to analyze for pockets), so an agent knows exactly when to invoke it in the pipeline.

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

SearchTargetLiteratureSearch Target LiteratureA
Read-onlyIdempotent

Search PubMed for recent structural biology and drug design papers.

Focuses specifically on binding site characterization, allosteric mechanisms, resistance mutations, and prior design campaigns β€” the literature most relevant to planning a new binder design effort.

Use the optional context parameter to narrow results, e.g.:

  • context='allosteric' for allosteric site literature

  • context='resistance' for resistance mutation papers

  • context='antibody' for biologic-focused papers

  • context='oncology' for disease-specific context

Call this LAST β€” after CharacterizeTarget, GetRelatedStructures, GetBindingSites, GetLigandHistory, and CheckConservation β€” to see if the literature reveals insights not captured in database records (e.g., cryptic sites found by MD simulation, unpublished allosteric mechanisms).

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNo
gene_nameYes
max_resultsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld). The description adds the behavioral trait that matters most here: this is an external literature source used as a final cross-check after internal databases, which cannot be inferred from annotations. It omits any note on result freshness or rate limits, keeping it short of a 5.

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 purpose in the first sentence, then uses compact bullets for context values and a clearly signposted ordering instruction. Slightly verbose in repeating 'most relevant to planning a new binder design effort', but every block is scannable and useful.

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

Completeness4/5

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

An output schema exists, so return-format explanation is unnecessary; the description closes the remaining gap by defining scope, context options, and call ordering. Only the undocumented `max_results` behavior leaves a minor hole.

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 0%, so the description carries the burden and does partly compensate by enumerating four meaningful `context` values (allosteric, resistance, antibody, oncology). However, `gene_name` and `max_results` receive no explanation at all, so the compensation is incomplete.

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 (Search) and resource (PubMed literature) plus the topical scope: binding site characterization, allosteric mechanisms, resistance mutations, prior design campaigns. No sibling tool covers literature, so the differentiation is implicit but unmistakable against the database-oriented siblings.

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

Usage Guidelines5/5

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

Explicitly instructs 'Call this LAST β€” after CharacterizeTarget, GetRelatedStructures, GetBindingSites, GetLigandHistory, and CheckConservation' and explains why (to catch insights not captured in database records, e.g. cryptic sites from MD). That is both when-to-use and sequencing guidance against named alternatives.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv0.1.0
    • First observedCharacterizeTarget
    • First observedCheckConservation
    • First observedCheckKnownVariants
    • First observedConsolidateBindingSites
    • First observedGetBindingSites
    • First observedGetLigandHistory
    • First observedGetRelatedStructures
    • First observedSearchTargetLiterature

TDQS

A4.1/5.0

Scored across 8 tools

Disambiguation4/5

Tools have distinct purposes: CharacterizeTarget, GetRelatedStructures, GetBindingSites, GetLigandHistory, CheckConservation, CheckKnownVariants, SearchTargetLiterature, and ConsolidateBindingSites. Some potential overlap exists between GetBindingSites and ConsolidateBindingSites (both analyze binding pockets), but descriptions clarify that ConsolidateBindingSites aggregates across multiple structures while GetBindingSites analyzes a single structure. An agent could still confuse when to use one versus the other, but the 'heaviest tool' warning helps.

Naming Consistency5/5

All tool names follow a consistent verb-noun (PascalCase) pattern: CharacterizeTarget, GetRelatedStructures, GetBindingSites, etc. No deviations or mixed conventions.

Tool Count5/5

8 tools is well-scoped for a specialized structural biology MCP server. Each tool covers a distinct analysis step, and the count is neither too thin nor too heavy.

Completeness4/5

The toolset covers key aspects: target characterization, structure discovery, binding site mapping, ligand history, conservation, variants, literature, and consolidation. However, there is no explicit tool for exporting or visualizing results, nor for direct comparison between human and model organism structures beyond conservation. These are minor gaps that might require workarounds but don't break core workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    Provides programmatic access to AlphaFold protein structure predictions and UniProt data, enabling users to retrieve protein structures, summaries, and annotations through natural language.
    3
    -
  • A
    license
    C
    quality
    B
    maintenance
    A Model Context Protocol server that lets you drive PyMOL with natural language, enabling structure loading, analytical views, measurements, and protein exploration through AI assistants.
    100
    15
    MIT