mcp-alphafold
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-alphafoldget the AlphaFold structure for P68871"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP-AlphaFold
A Model Context Protocol (MCP) server that provides programmatic access to AlphaFold predictions and UniProt data. Built with FastMCP and Python, it offers tools for protein structure predictions, UniProt summaries, and protein annotations.
Requirements
Python ≥ 3.11
uv package manager
⚙️ Configure Claude Desktop
Open Claude Desktop settings
Navigate to Developer section
Click "Edit Config" and add:
{
"mcpServers": {
"mcp_alphafold": {
"command": "uv",
"args": [
"--directory",
"path to /mcp-alphafold/src/mcp_alphafold",
"run",
"mcp-alphafold",
"--transport",
"stdio"
]
}
}
}Restart Claude Desktop and start chatting about biomedical topics!
🐳 Using with Docker
"mcpServers": {
"mcp_alphafold": {
"command": "docker",
"args": [
"run",
"--rm",
"-p", "8050:8050",
"zeinabsheikhi/mcp-alphafold:0.1.0"
]
}
}🔧 Tools
The server offers these core tools:
🧬 AlphaFold Tools
alphafold_predictionRetrieves protein structure predictions using AlphaFold. Input a protein identifier or sequence checksum to get structural predictions.
uniprot_summaryFetches comprehensive protein summaries from UniProt database, including protein function, domains, and other key characteristics.
annotationsRetrieves specific protein annotations including mutations, modifications, and other experimental data. Default annotation type is "MUTAGEN".
Related MCP server: UniProt MCP Server
🚀 Development
📦 Prerequisites
Install
uv(Universal Virtualenv):
# Using pip
pip install uv
# Using Homebrew on macOS
brew install uv
# Using cargo (Rust package manager)
cargo install uvClone the repository and set up development environment:
# Clone the repository
git clone https://github.com/zeinab-sheikhi/mcp-alphafold.git
cd mcp-alphafold
# Create and activate virtual environment using uv
uv venv
source .venv/bin/activate # On Unix/macOS
.venv\Scripts\activate # On Windows
# Install dependencies including dev dependencies
make installRun the server with
make run-server
🐳 Docker
Build and run the Docker container:
# Build the image
make build-docker
# Run the container
make run-dockerAvailable Tools
3 toolsget_alphafold_predictionA
This tool retrieves all available AlphaFold models for a specified UniProt accession. It allows querying by the UniProt accession or by the CRC64 checksum of the UniProt sequence.
Arguments
qualifier(str): UniProt accession (e.g.,'Q5VSL9').sequence_checksum(str, optional): CRC64 checksum of the UniProt sequence.
Example Input:
qualifier:
Q5VSL9sequence_checksum:
5F9BA1D4C7DE6925
Response Structure
The response will be a list of objects, each containing detailed information about the available AlphaFold models.
Example Output:
[
{
"entryId": "AF-Q5VSL9-F1",
"gene": "STRIP1",
"sequenceChecksum": "5F9BA1D4C7DE6925",
"sequenceVersionDate": "2004-12-07",
"uniprotAccession": "Q5VSL9",
"uniprotId": "STRP1_HUMAN",
"uniprotDescription": "Striatin-interacting protein 1",
"taxId": 9606,
"organismScientificName": "Homo sapiens",
"uniprotStart": 1,
"uniprotEnd": 837,
"uniprotSequence": "MEPAVGGPGPLIVNNKQPQPPPPPPPAAAQPPPGAPRAAAGLLPGGKAREFN...",
"modelCreatedDate": "2022-06-01",
"latestVersion": 4,
"allVersions": [1, 2, 3, 4],
"bcifUrl": "https://alphafold.ebi.ac.uk/files/AF-Q5VSL9-F1-model_v4.bcif",
"cifUrl": "https://alphafold.ebi.ac.uk/files/AF-Q5VSL9-F1-model_v4.cif",
"pdbUrl": "https://alphafold.ebi.ac.uk/files/AF-Q5VSL9-F1-model_v4.pdb",
"paeImageUrl": "https://alphafold.ebi.ac.uk/files/AF-Q5VSL9-F1-predicted_aligned_error_v4.png",
"paeDocUrl": "https://alphafold.ebi.ac.uk/files/AF-Q5VSL9-F1-predicted_aligned_error_v4.json",
"amAnnotationsUrl": "https://alphafold.ebi.ac.uk/files/AF-Q5VSL9-F1-aa-substitutions.csv",
"amAnnotationsHg19Url": "https://alphafold.ebi.ac.uk/files/AF-Q5VSL9-F1-hg19.csv",
"amAnnotationsHg38Url": "https://alphafold.ebi.ac.uk/files/AF-Q5VSL9-F1-hg38.csv",
"isReviewed": true,
"isReferenceProteome": true
}
]| Name | Required | Description | Default |
|---|---|---|---|
| qualifier | Yes | ||
| output_json | No | ||
| sequence_checksum | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It does disclose that the response is a list of model objects and includes a detailed example output, but it omits behavioral details such as what happens when no models are found, potential rate limits, or authentication requirements. The provided response structure adds some transparency but not comprehensive behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with headings for arguments, example input, and response structure. The purpose is front-loaded, and the large example output is informative but adds verbosity. Overall, every section earns its place, though the example output could be trimmed without losing essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations, output schema, and low schema coverage, the description compensates by providing a comprehensive response example and field listing, making the return structure clear. It still misses edge-case behavior and the `output_json` parameter documentation, but for a simple retrieval tool, it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 `qualifier` as a UniProt accession and `sequence_checksum` as a CRC64 checksum, with examples. However, it entirely omits the `output_json` parameter, leaving it undocumented. Thus, it covers two of three parameters but fails to explain the functional effect of `output_json`.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'retrieves all available AlphaFold models for a specified UniProt accession.' It specifies the resource (AlphaFold models) and the query key (UniProt accession), and this distinctly differentiates it from sibling tools like get_uniprot_summary and get_annotations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the two query modes (UniProt accession or CRC64 checksum) but provides no explicit guidance on when to use this tool versus the sibling tools. It does not mention alternatives, exclusions, or appropriate use cases beyond the basic retrieval functionality.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_annotationsB
This tool retrieves all annotations for a specified UniProt residue range. It allows querying by the UniProt accession and the annotation type (e.g., MUTAGEN for AlphaMissense).
Arguments
qualifier(str): UniProt accession (e.g.,'Q5VSL9').annotation_type(str): Type of annotation (e.g.,'MUTAGEN'for AlphaMissense).
Example Input:
qualifier:
Q5VSL9annotation_type:
MUTAGEN
Response Structure
The response includes detailed information about the UniProt entry and its associated annotations.
Example Output:
{
"accession": "Q5VSL9",
"id": "STRP1_HUMAN",
"sequence": "MEPAVGGPGPLIVNNKQPQPPPPPPPAAAQPPPGAPRAAAGLLPGGKAREFNRNQRKDSEGYSESPDLEFEYADTDKWAAELSELYSYTEGPEFLMNRKCFEEDFRIHVTDKKWTELDTNQHRTHAMRLLDGLEVTAREKRLKVARAILYVAQGTFGECSSEAEVQSWMRYNIFLLLEVGTFNALVELLNMEIDNSAACSSAVRKPAISLADSTDLRVLLNIMYLIVETVHQECEGDKAEWRTMRQTFRAELGSPLYNNEPFAIMLFGMVTKFCSGHAPHFPMKKVLLLLWKTVLCTLGGFEELQSMKAEKRSILGLPPLPEDSIKVIRNMRAASPPASASDLIEQQQKRGRREHKALIKQDNLDAFNERDPYKADDSREEEEENDDDNSLEGETFPLERDEVMPPPLQHPQTDRLTCPKGLPWAPKVREKDIEMFLESSRSKFIGYTLGSDTNTVVGLPRPIHESIKTLKQHKYTSIAEVQAQMEEEYLRSPLSGGEEEVEQVPAETLYQGLLPSLPQYMIALLKILLAAAPTSKAKTDSINILADVLPEEMPTTVLQSMKLGVDVNRHKEVIVKAISAVLLLLLKHFKLNHVYQFEYMAQHLVFANCIPLILKFFNQNIMSYITAKNSISVLDYPHCVVHELPELTAESLEAGDSNQFCWRNLFSCINLLRILNKLTKWKHSRTMMLVVFKSAPILKRALKVKQAMMQLYVLKLLKVQTKYLGRQWRKSNMKTMSAIYQKVRHRLNDDWAYGNDLDARPWDFQAEECALRANIERFNARRYDRAHSNPDFLPVDNCLQSVLGQRVDLPEDFQMNYDLWLEREVFSKPISWEELLQ",
"annotation": [
{
"type": "MUTAGEN",
"description": "AM score",
"source_name": "AFDB",
"source_url": "https://alphafold.ebi.ac.uk/files/AF-Q5VSL9-F1-aa-substitutions.csv",
"evidence": "COMPUTATIONAL/PREDICTED",
"residues": [1, 2, 3, ...],
"regions": [
{
"start": 1,
"end": 837,
"annotation_value": [0.3234, 0.3281, ...],
"unit": null
}
]
}
]
}| Name | Required | Description | Default |
|---|---|---|---|
| qualifier | Yes | ||
| output_json | No | ||
| annotation_type | No | MUTAGEN |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the response structure with a detailed example, but it doesn't mention potential limitations, safety, or side effects. The 'residue range' vs 'accession' ambiguity also detracts from transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections for arguments, example input, and response structure. The example output is quite extensive (including the full sequence), which is somewhat verbose but serves to clarify the return format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is fairly complete for a retrieval tool: it provides parameter meanings and an example output that compensates for the lack of an output schema. It falls short by not covering output_json and providing no usage guidance relative to sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description compensates by explaining qualifier and annotation_type with examples. However, it completely omits the output_json parameter, which is part of the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves annotations for a UniProt entry and explains the query parameters (accession and annotation type). However, the phrase 'residue range' is misleading since the qualifier is an accession, and it doesn't explicitly differentiate from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how to use the tool with arguments and an example, but it never states when to choose this tool over the sibling tools (get_alphafold_prediction, get_uniprot_summary) or provides any exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_uniprot_summaryC
This tool fetches AlphaFold model predictions for a given UniProt residue range. The tool takes in a UniProt accession number (AC), entry name (ID), or CRC64 checksum and returns detailed information about the structure models available for the specified sequence range.
Arguments
qualifier(str): UniProtKB accession number (AC), entry name (ID), or CRC64 checksum of the UniProt sequence (e.g.,'Q5VSL9').
Example Input:
qualifier:
Q5VSL9
Response Structure
The response includes detailed information about the UniProt entry and its associated AlphaFold models.
Example Response:
{
"uniprot_entry": {
"ac": "Q5VSL9",
"id": "STRP1_HUMAN",
"uniprot_checksum": "5F9BA1D4C7DE6925",
"sequence_length": 837,
"segment_start": 1,
"segment_end": 837
},
"structures": [
{
"summary": {
"model_identifier": "AF-Q5VSL9-F1",
"model_category": "AB-INITIO",
"model_url": "https://alphafold.ebi.ac.uk/files/AF-Q5VSL9-F1-model_v4.cif",
"model_format": "MMCIF",
"model_type": null,
"model_page_url": "https://alphafold.ebi.ac.uk/entry/Q5VSL9",
"provider": "AlphaFold DB",
"number_of_conformers": null,
"ensemble_sample_url": null,
"ensemble_sample_format": null,
"created": "2022-06-01",
"sequence_identity": 1,
"uniprot_start": 1,
"uniprot_end": 837,
"coverage": 1,
"experimental_method": null,
"resolution": null,
"confidence_type": "pLDDT",
"confidence_version": null,
"confidence_avg_local_score": 80.82,
"oligomeric_state": null,
"preferred_assembly_id": null,
"entities": [
{
"entity_type": "POLYMER",
"entity_poly_type": "POLYPEPTIDE(L)",
"identifier": "Q5VSL9",
"identifier_category": "UNIPROT",
"description": "Striatin-interacting protein 1",
"chain_ids": [
"A"
]
}
]
}
}
]
}| Name | Required | Description | Default |
|---|---|---|---|
| qualifier | Yes | ||
| output_json | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It provides a detailed response example and explains the accepted qualifier formats, which is useful. However, the inaccurate reference to a 'residue range' parameter and the lack of any mention of error behavior or limitations reduce transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections for arguments and response structure. It is front-loaded with the main purpose. The extensive JSON example is lengthy but directly illustrates the output, earning its place. Minor redundancy exists, but the overall organization is effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema, the response example provides strong completeness for return values. However, the description does not address when to use this tool relative to siblings, and the misleading residue-range statement creates confusion. These gaps prevent a higher score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning to the qualifier parameter by specifying it can be a UniProt AC, ID, or CRC64 checksum, with a concrete example. This goes well beyond the schema's generic string type. The output_json parameter is not described, but its name and default value are self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('fetches AlphaFold model predictions'), but the tool name is get_uniprot_summary and the response example includes UniProt entry details, creating confusion about the actual purpose. It also references a 'residue range' argument that does not exist in the schema. The description does not distinguish this tool from the sibling get_alphafold_prediction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like get_alphafold_prediction or get_annotations. The description simply explains what the tool does and gives an example input, without any context about selection criteria or exclusions.
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. Dates show when Glama detected each change.
3 tool updates
v0.1.0- First observed
get_alphafold_prediction - First observed
get_annotations - First observed
get_uniprot_summary
TDQS
get_alphafold_prediction and get_uniprot_summary both retrieve AlphaFold model information for a UniProt accession, with overlapping purposes. The descriptions do not clearly distinguish when to use one over the other, causing potential misselection. get_annotations is the only clearly distinct tool.
All tool names follow a consistent get_<noun> pattern using snake_case. This predictable naming convention makes the tool set easy to navigate.
With only 3 tools, the server is well-scoped and focused on AlphaFold data retrieval. Each tool has a meaningful role, even though two overlap functionally.
The server covers the core operations for AlphaFold: listing models, fetching a summary, and retrieving annotations. There are no obvious gaps for the intended domain, as structure URLs are included in responses.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Protein analysis: ESM-2/ESMC embeddings, mutation scoring, landscape scans, ESMFold structure.
Connect AI clients to biomedical data and tools.
Protein research over UniProtKB — search by function, fetch curated records, map IDs, proteomes.
AI-powered bioprotocol optimization — generate, search, and manage lab protocols via MCP
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to access protein information directly from UniProt, allowing retrieval of protein names, functions, sequences, and organism data by accession number.214MIT
- AlicenseBqualityDmaintenanceProvides seamless access to UniProtKB protein database, enabling queries for protein entries, sequences, Gene Ontology annotations, full-text search, and ID mapping across 200+ database types.52MIT
- AlicenseNot gradedqualityCmaintenanceProvides access to AlphaFold predicted protein 3D structures from EBI, enabling retrieval of prediction metadata, summaries, annotations, and UniProt data.15MIT
- AlicenseNot gradedqualityCmaintenanceProvides access to UniProt protein sequence and function knowledge base, enabling search and retrieval of protein entries, proteomes, taxonomy, and feature annotations.13MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/zeinab-sheikhi/mcp-alphafold'
If you have feedback or need assistance with the MCP directory API, please join our Discord server