BV BRC Server
БесплатноНе проверенEnables querying and retrieving bacterial and viral genomic data, features, antimicrobial resistance, and epitopes from the BV-BRC API using natural language.
Описание
Enables querying and retrieving bacterial and viral genomic data, features, antimicrobial resistance, and epitopes from the BV-BRC API using natural language.
README
A Model Context Protocol (MCP) server for interacting with the BV-BRC (Bacterial and Viral Bioinformatics Resource Center) API. This server provides tools for querying and retrieving genomic data, features, antimicrobial resistance data, epitopes, and more.
Overview
BV-BRC is a comprehensive bioinformatics resource for bacterial and viral pathogen data. This MCP server exposes the BV-BRC API through a set of tools that can be used with Claude and other MCP-compatible applications.
Key Features
- Query Genomes: Search and retrieve genome data with filters for organism, strain, and more
- Genomic Features: Query genes, proteins, RNA molecules, and other genomic features
- Antimicrobial Resistance: Access AMR data and resistance mechanisms
- Epitopes & Assays: Retrieve vaccine target and epitope assay data
- Advanced Queries: Use RQL (Relational Query Language) for complex data queries
- Multiple Data Types: Access 13+ different data types in the BV-BRC database
Installation
Prerequisites
- Python 3.10 or higher
- pip (Python package manager)
Quick Start
- Clone or download this repository:
git clone https://github.com/soham-shukla/mcp-bvbrc.git
cd mcp-bvbrc
- Install dependencies:
pip install -r requirements.txt
- (Optional) Install in development mode with additional tools:
pip install -e ".[dev]"
Configuration
For Claude Desktop
The easiest way to use this server is with Claude Desktop:
Find your Claude Desktop configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
Add the server configuration:
{
"mcpServers": {
"bvbrc": {
"command": "python",
"args": ["/absolute/path/to/bvbrc.py"]
}
}
}
- Restart Claude Desktop
See CONFIG.md for more configuration options.
Available Tools
1. query_data_type
Perform advanced queries on any BV-BRC data type using RQL syntax.
Parameters:
data_type(required): The data type to query (e.g.,genome,genome_feature,epitope)query(optional): RQL query stringlimit(optional, default: 10): Maximum results to returnoffset(optional, default: 0): Results to skip
Example:
Query genomes of Salmonella with organism name and genome size
data_type: "genome"
query: "eq(organism,Salmonella)&select(genome_id,organism,dna_size)"
limit: 5
2. get_record_by_id
Retrieve a specific record by its ID.
Parameters:
data_type(required): The data type (e.g.,genome,genome_feature)record_id(required): The ID of the record
Example:
Get genome with ID "1234567.890"
data_type: "genome"
record_id: "1234567.890"
3. search_genomes
Search for genomes with convenient filtering.
Parameters:
organism(optional): Filter by organism namegenome_id(optional): Filter by genome IDstrain(optional): Filter by strainlimit(optional, default: 10): Maximum resultsoffset(optional, default: 0): Results to skip
Example:
Search for Escherichia coli genomes
organism: "Escherichia coli"
limit: 20
4. search_features
Search for genomic features (genes, proteins, etc.) with filtering.
Parameters:
genome_id(optional): Filter by genome IDfeature_type(optional): Filter by type (e.g.,CDS,RNA)keyword(optional): Keyword searchlimit(optional, default: 10): Maximum resultsoffset(optional, default: 0): Results to skip
Example:
Search for CDS features in a genome
genome_id: "1234567.890"
feature_type: "CDS"
limit: 50
5. get_available_data_types
Get information about all available data types in BV-BRC.
Returns: List of data types with descriptions and common fields.
Supported Data Types
| Data Type | Description | Primary Key |
|---|---|---|
genome |
Genome records with assembly and taxonomy | genome_id |
genome_feature |
Genomic features (genes, proteins, RNA) | feature_id |
strain |
Strain information and metadata | strain_id |
genome_amr |
Antimicrobial resistance data | genome_id |
epitope |
Epitope data including vaccine targets | epitope_id |
epitope_assay |
Epitope assay results | assay_id |
experiment |
Experiment metadata and results | experiment_id |
bioset |
Collection of genomes | bioset_id |
bioset_result |
Results associated with biosets | result_id |
feature_sequence |
Nucleotide and protein sequences | feature_id |
antibiotics |
Antibiotic information database | antibiotic_id |
enzyme_class_ref |
Enzyme classification reference | enzyme_class_id |
gene_ontology_ref |
Gene Ontology reference data | go_id |
RQL Query Syntax
The BV-BRC API uses RQL (Relational Query Language) for advanced queries. Here are common operators:
Comparison Operators
eq(field,value)- Field equals valuene(field,value)- Field not equal to valuegt(field,value)- Field greater than valuelt(field,value)- Field less than valuein(field,(value1,value2))- Field contains any of the values
Logical Operators
and(expr1,expr2,...)- AND expressions togetheror(expr1,expr2,...)- OR expressions together
Query Modifiers
keyword(value)- Full-text searchselect(field1,field2)- Return only specified fieldssort([+|-]field)- Sort results (+ ascending, - descending)limit(count,offset)- Limit and offset results
Examples
Find Salmonella genomes with specific fields:
eq(organism,Salmonella)&select(genome_id,organism,strain,dna_size)&limit(10,0)
Search for antibiotic-resistant Salmonella:
and(eq(organism,Salmonella),eq(amr_phenotype,resistant))&select(genome_id,organism,antibiotic)&limit(20,0)
Full-text search across features:
keyword(virulence)&select(feature_id,product)&limit(15,0)
Python Usage
You can also use the server programmatically:
import asyncio
from client import BVBRCClient
async def main():
client = BVBRCClient()
# Query genomes
results = await client.query(
"genome",
"eq(organism,Salmonella)&select(genome_id,organism)",
limit=10
)
# Get a specific record
record = await client.get_by_id("genome", "1234567.890")
asyncio.run(main())
Error Handling
The server handles common errors gracefully:
- Invalid data types: Returns error message
- Network errors: Returns connection error details
- Invalid queries: API returns error information
- Missing records: Returns 404 error message
Performance Considerations
- Default limit is 10 records; use
offsetfor pagination - Large result sets may take longer to retrieve
- Use specific filters to reduce result size
- RQL queries are optimized server-side for efficiency
Authentication
The BV-BRC public API requires no authentication. However, if you have private data access:
- Set the
BVBRC_API_TOKENenvironment variable with your token - The client will automatically include it in requests
export BVBRC_API_TOKEN="your-token-here"
python bvbrc.py
API Documentation
For complete BV-BRC API documentation, visit:
Architecture
The server consists of three main modules:
- bvbrc.py: Main MCP server with tool definitions and orchestration
- client.py: HTTP client for BV-BRC API interactions
- data_types.py: Data type definitions and metadata
Development
Running Tests
pytest tests/
Code Style
black bvbrc.py client.py data_types.py
isort bvbrc.py client.py data_types.py
Type Checking
mypy bvbrc.py client.py data_types.py
License
MIT License - See LICENSE file for details
Contributing
Contributions are welcome! Please feel free to submit issues or pull requests.
Support
For issues with this MCP server, please open a GitHub issue.
For questions about the BV-BRC API itself, visit the BV-BRC help documentation.
Note: This MCP server is an independent tool and is not officially affiliated with or endorsed by BV-BRC.
Установка BV BRC Server
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/soham-shukla/mcp-bvbrcFAQ
BV BRC Server MCP бесплатный?
Да, BV BRC Server MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для BV BRC Server?
Нет, BV BRC Server работает без API-ключей и переменных окружения.
BV BRC Server — hosted или self-hosted?
Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.
Как установить BV BRC Server в Claude Desktop, Claude Code или Cursor?
Открой BV BRC Server на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare BV BRC Server with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
