Access the UniProt protein database with specialized bioinformatics tools for protein research, comparative genomics, and structural biology.
A comprehensive Model Context Protocol (MCP) server providing advanced access to the UniProt protein database. This server offers 26 specialized bioinformatics tools enabling AI assistants and MCP clients to perform sophisticated protein research, comparative genomics, structural biology analysis, and systems biology investigations directly through UniProt's REST API.
Developed by Augmented Nature
git clone <repository-url>
cd uniprot-server
npm install
npm run build
Build the Docker image:
docker build -t uniprot-mcp-server .
Run the container:
docker run -i uniprot-mcp-server
For MCP client integration, you can use the container directly:
{
"mcpServers": {
"uniprot": {
"command": "docker",
"args": ["run", "-i", "uniprot-mcp-server"],
"env": {}
}
}
}
Create a docker-compose.yml
for easier management:
version: "3.8"
services:
uniprot-mcp:
build: .
image: uniprot-mcp-server
stdin_open: true
tty: true
Run with:
docker-compose up
The server is designed to run as an MCP server that communicates via stdio:
npm start
Add the server to your MCP client configuration (e.g., Claude Desktop):
{
"mcpServers": {
"uniprot": {
"command": "node",
"args": ["/path/to/uniprot-server/build/index.js"],
"env": {}
}
}
}
Search the UniProt database for proteins by name, keyword, or organism.
Parameters:
query
(required): Search query (protein name, keyword, or complex search)organism
(optional): Organism name or taxonomy ID to filter resultssize
(optional): Number of results to return (1-500, default: 25)format
(optional): Output format - json, tsv, fasta, xml (default: json)Example:
{
"query": "insulin",
"organism": "human",
"size": 5
}
Get detailed information for a specific protein by UniProt accession.
Parameters:
accession
(required): UniProt accession number (e.g., P04637)format
(optional): Output format - json, tsv, fasta, xml (default: json)Example:
{
"accession": "P01308",
"format": "json"
}
Search for proteins by gene name or symbol.
Parameters:
gene
(required): Gene name or symbol (e.g., BRCA1, INS)organism
(optional): Organism name or taxonomy ID to filter resultssize
(optional): Number of results to return (1-500, default: 25)Example:
{
"gene": "BRCA1",
"organism": "human"
}
Get the amino acid sequence for a protein.
Parameters:
accession
(required): UniProt accession numberformat
(optional): Output format - fasta, json (default: fasta)Example:
{
"accession": "P01308",
"format": "fasta"
}
Get functional features and domains for a protein.
Parameters:
accession
(required): UniProt accession numberExample:
{
"accession": "P01308"
}
The server provides direct access to UniProt data through URI templates:
uniprot://protein/{accession}
uniprot://protein/P01308
uniprot://sequence/{accession}
uniprot://sequence/P01308
uniprot://search/{query}
uniprot://search/insulin
Search for insulin proteins in humans:
// Tool call
{
"tool": "search_proteins",
"arguments": {
"query": "insulin",
"organism": "human",
"size": 10
}
}
Retrieve comprehensive information about human insulin:
// Tool call
{
"tool": "get_protein_info",
"arguments": {
"accession": "P01308"
}
}
Find proteins associated with the BRCA1 gene:
// Tool call
{
"tool": "search_by_gene",
"arguments": {
"gene": "BRCA1",
"organism": "human"
}
}
Get the amino acid sequence for human insulin:
// Tool call
{
"tool": "get_protein_sequence",
"arguments": {
"accession": "P01308",
"format": "fasta"
}
}
Get functional domains and features for human insulin:
// Tool call
{
"tool": "get_protein_features",
"arguments": {
"accession": "P01308"
}
}
This server integrates with the UniProt REST API for programmatic access to protein data. For more information about UniProt:
All API requests include:
UniProt-MCP-Server/1.0.0
https://rest.uniprot.org
(programmatic access only)The server includes comprehensive error handling:
npm run build
Run TypeScript compiler in watch mode:
npm run dev
uniprot-server/
├── src/
│ └── index.ts # Main server implementation
├── build/ # Compiled JavaScript output
├── package.json # Node.js dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── README.md # This file
MIT License
For issues and questions:
This comprehensive UniProt MCP Server is developed by Augmented Nature, a leading innovator in AI-powered bioinformatics and computational biology solutions. Augmented Nature specializes in creating advanced tools that bridge the gap between artificial intelligence and biological research, enabling researchers to unlock deeper insights from biological data.
search_proteins
- Search UniProt database by name, keyword, or organismget_protein_info
- Get detailed protein information by accessionsearch_by_gene
- Find proteins by gene name or symbolget_protein_sequence
- Retrieve amino acid sequencesget_protein_features
- Access functional features and domainscompare_proteins
- Compare multiple proteins side-by-sideget_protein_homologs
- Find homologous proteins across speciesget_protein_orthologs
- Identify orthologous proteinsget_phylogenetic_info
- Retrieve evolutionary relationshipsget_protein_structure
- Access 3D structure information from PDBget_protein_domains_detailed
- Enhanced domain analysis (InterPro, Pfam, SMART)get_protein_variants
- Disease-associated variants and mutationsanalyze_sequence_composition
- Amino acid composition analysisget_protein_pathways
- Associated biological pathways (KEGG, Reactome)get_protein_interactions
- Protein-protein interaction networkssearch_by_function
- Search by GO terms or functional annotationssearch_by_localization
- Find proteins by subcellular localizationbatch_protein_lookup
- Process multiple accessions efficientlyadvanced_search
- Complex queries with multiple filterssearch_by_taxonomy
- Search by taxonomic classificationget_external_references
- Links to other databases (PDB, EMBL, RefSeq, etc.)get_literature_references
- Associated publications and citationsget_annotation_confidence
- Quality scores for annotationsexport_protein_data
- Export in specialized formats (GFF, GenBank, EMBL, XML)validate_accession
- Check accession number validityget_taxonomy_info
- Detailed taxonomic informationInteract with Tinybird serverless ClickHouse platform
An MCP-based database server with support for SQLite, MySQL, PostgreSQL, and MSSQL.
A local, high-performance memory server for AI agents, built with SQLite, vector embeddings, and a knowledge graph. Packaged for npm and Docker.
MCP server for SQLite files. Supports Datasette-compatible metadata!
A standardized interface for AI assistants to interact with a SurrealDB database.
A production-ready MCP server for Customer Relationship Management (CRM) functionality, built with TypeScript and SQLite.
A comprehensive movie database server supporting advanced search, CRUD operations, and image management via a PostgreSQL database.
A server for accessing and interacting with a Neo4j graph database, configured via environment variables.
Leverages your Schemas and Access Patterns to interact with your DynamoDB Database using natural language.
Interact with StarRocks