Access Protein Data Bank in Europe (PDBe) structural biology data from any AI client that supports the Model Context Protocol (MCP).
In an MCP Apps client, the Apps server provides a shared Mol* workspace for:
- Structure Explorer: inspect chains, residues, ligand instances, and source annotations, with linked sequence and annotation tracks.
- Ligand & Binding Site Explorer: inspect PDBe-reported ligand interaction records, filter evidence, and export contacts.
- Structure Comparison: view PDBe's precomputed superpositions and PDBe/SIFTS residue correspondence, with a correspondence table and CSV export.
- MolViewSpec Builder and Stories: create custom scenes and ordered multi-scene molecular stories.
- Workspace management: save or restore workspace JSON, export MVSJ, and update scenes and layers through MCP tools.
Use pdbe_apps_server for the dedicated server or the recommended all
server; connection examples are below. The host needs MCP Apps support, WebGL,
and access to https://www.ebi.ac.uk.
Clients without UI support receive text and structured data fallbacks.
Comparisons use supplied PDBe transforms and mappings; the app does not
calculate a new fit, RMSD, or proximity-derived binding sites. The ligand
explorer displays PDBe-supplied interaction records rather than calculating new
contacts. Chain selectors use label chain IDs (struct_asym_id).
Example prompts for an MCP Apps-capable client:
- “Open PDB entry 1tqn in the molecular workspace.”
- “Compare the alpha chains of human deoxy- and oxyhemoglobin (PDB 4hhb and 1hho) and show their residue correspondence.”
- “Explore a ligand in PDB entry 1tqn and show its PDBe-reported interactions.”
- “Build a two-scene molecular story for PDB entry 1tqn, showing the protein first and then highlighting a ligand.”
See the molecular workspace guide for setup,
tool examples, annotations, saved workspaces, updates, and host routing. The
Apps and aggregate servers also expose the molview-spec skill as MCP
resources for scene-building guidance.
| Server | Purpose |
|---|---|
all |
API, Search, Apps, and Graph tools through one server |
pdbe_api_server |
Entries, assemblies, molecules, ligands, publications, and validation data |
pdbe_search_server |
Solr searches with filtering, facets, grouping, and pagination |
pdbe_apps_server |
Interactive structure and ligand exploration, comparison, and MolViewSpec workspaces |
pdbe_graph_server |
PDBe-KB graph schema and queries against your local Neo4j database |
The recommended all server exposes API, Search, Apps, and Graph together.
Graph queries require your own PDBe-KB Neo4j database; PDBe does not provide a
public running instance. Configure individual server types if you only need a
subset of the tools.
Requires Python 3.11+ and uv. Run directly from PyPI without a separate installation:
uvx pdbe-mcp-serverWith no server type specified, this starts the aggregate all server over
stdio. To run only Search instead:
uvx pdbe-mcp-server --server-type pdbe_search_serverFor clients using a JSON mcpServers configuration, we recommend starting
with the aggregate server. It exposes the API, Search, Apps, and Graph tools
through one stdio connection:
{
"mcpServers": {
"PDBe": {
"command": "uvx",
"args": ["pdbe-mcp-server", "--server-type", "all"]
}
}
}Graph queries require your own PDBe-KB Neo4j database, and interactive Apps views require an Apps-capable client.
If you only need selected servers, configure one or more individually:
{
"mcpServers": {
"PDBe API": {
"command": "uvx",
"args": ["pdbe-mcp-server", "--server-type", "pdbe_api_server"]
},
"PDBe Search": {
"command": "uvx",
"args": ["pdbe-mcp-server", "--server-type", "pdbe_search_server"]
}
}
}Ensure uvx is in your client's PATH, then restart or reload the client.
Clients with a settings UI can use the same commands and arguments.
Try asking:
- “Find structures for UniProt accession P12345.”
- “Show structures released this month, grouped by experimental method.”
- “Find X-ray structures with resolution better than 2.0 Å.”
See worked examples for questions involving protein function, ligand interactions, glycosylation, cryo-EM structures, and EMDB maps.
From a local checkout, start Streamable HTTP with:
uv run pdbe-mcp-remote-server --allConnect to http://127.0.0.1:8000/api/, /search/, /apps/, or /graph/.
The --all flag also exposes /all/. Use ROOT_PREFIX for a path prefix.
See the server reference for Docker, legacy SSE, search parameters, graph setup, and TOON output configuration.
A beta-hosted remote MCP server is available at https://wwwdev.ebi.ac.uk/pdbe/mcp/all/. Connect to it from an MCP client using Streamable HTTP. As a beta service, its availability and interface may change. For beta-server issues or feedback, email pdbehelp@ebi.ac.uk. For other issues, please open a GitHub issue.
Clone the repository and install dependencies:
git clone https://github.com/PDBeurope/PDBe-MCP-Servers.git
cd PDBe-MCP-Servers
uv sync --all-extras --devBuild the molecular UI with Node.js 22.12+ before running the Apps server or building a Python distribution:
cd apps/structure-explorer
npm ci
npm run build
cd ../..For a local client connection, replace uvx with uv and use arguments like:
["run", "--directory", "/path/to/PDBe-MCP-Servers", "pdbe-mcp-server", "--server-type", "pdbe_api_server"]Rebuild the UI after UI changes. Python distributions include the generated HTML artifacts. See Development for testing and packaging, and Contributing for contribution guidance.
- Molecular workspace guide
- Server and tool reference
- Worked examples
- PDBe API documentation
- PDBe-KB graph documentation
- Model Context Protocol
- GitHub issues
- PDBe Help & Support
Licensed under Apache 2.0.