loading…
Search for a command to run...
loading…
MCP server for Addgene plasmid repository, enabling AI assistants to search, filter, and retrieve plasmid data including sequences and metadata.
MCP server for Addgene plasmid repository, enabling AI assistants to search, filter, and retrieve plasmid data including sequences and metadata.
Tests CI Python 3.11+ License: MIT uv
MCP (Model Context Protocol) server for Addgene - The Plasmid Repository
This server implements the Model Context Protocol (MCP) for Addgene, providing a standardized interface for accessing the world's largest repository of plasmid data. MCP enables AI assistants and agents to search, filter, and retrieve comprehensive plasmid information through structured interfaces.
The server provides direct access to Addgene's plasmid repository containing thousands of research-ready plasmids, complete with detailed metadata, sequence information, and availability data. Perfect for molecular biology research, synthetic biology, and genetic engineering applications.
The Addgene repository contains:
If you want to understand more about what the Model Context Protocol is and how to use it more efficiently, you can take the DeepLearning AI Course or search for MCP videos on YouTube.

MCP is a protocol that bridges the gap between AI systems and specialized domain knowledge. It enables:
This server provides three main tools for interacting with the Addgene repository:
addgene_search_plasmids(...) - Search for plasmids with comprehensive filtering optionsaddgene_get_sequence_info(plasmid_id, format) - Get sequence download information for specific plasmidsaddgene_get_popular_plasmids(page_size) - Retrieve trending and popular plasmidsresource://addgene_api-info - Complete API documentation and usage guidelines# Download and install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Verify installation
uv --version
uvx --version
uvx is a very nice tool that can run a python package installing it if needed.
You can run the addgene-mcp server directly using uvx without cloning the repository:
# Run the server in streamable HTTP mode (default)
uvx addgene-mcp
# Or explicitly specify stdio mode
uvx addgene-mcp stdio
# Run the server in streamable HTTP mode on default (3001) port
uvx addgene-mcp server
# Run on a specific port
uvx addgene-mcp server --port 8000
# Run the server in SSE mode
uvx addgene-mcp sse
In cases when there are problems with uvx often they can be caused by cleaning uv cache:
uv cache clean
The HTTP mode will start a web server that you can access at http://localhost:3001/mcp. The STDIO mode is designed for MCP clients that communicate via standard input/output, while SSE mode uses Server-Sent Events for real-time communication.
Note: Currently, we do not have a Swagger/OpenAPI interface, so accessing the server directly in your browser will not show much useful information. To explore the available tools and capabilities, you should either use the MCP Inspector (see below) or connect through an MCP client to see the available tools.
We provide preconfigured JSON files for different use cases:
mcp-config-stdio.jsonmcp-config.jsonFor a visual guide on how to configure MCP servers with AI clients, check out our configuration tutorial video for our sister MCP server (biothings-mcp). The configuration principles are exactly the same for the Addgene MCP server - just use the appropriate JSON configuration files provided above.
If you want to inspect the methods provided by the MCP server, use npx (you may need to install nodejs and npm):
For STDIO mode with uvx:
npx @modelcontextprotocol/inspector --config mcp-config-stdio.json --server addgene-mcp
For HTTP mode (ensure server is running first):
npx @modelcontextprotocol/inspector --config mcp-config.json --server addgene-mcp
You can also run the inspector manually and configure it through the interface:
npx @modelcontextprotocol/inspector
After that you can explore the tools and resources with MCP Inspector at http://127.0.0.1:6274 (note, if you run inspector several times it can change port)
Simply point your AI client (like Cursor, Windsurf, ClaudeDesktop, VS Code with Copilot, or others) to use the appropriate configuration file from the repository.
Simply copy this JSON configuration to your MCP client (Cursor, Windsurf, Claude Desktop, etc.):
{
"mcpServers": {
"addgene-mcp": {
"command": "uvx",
"args": ["addgene-mcp"],
"env": {
"MCP_PORT": "3001",
"MCP_HOST": "0.0.0.0",
"MCP_TRANSPORT": "stdio"
}
}
}
}
File: mcp-config.json
{
"mcpServers": {
"addgene-mcp": {
"url": "http://localhost:3001/mcp",
"type": "streamable-http",
"env": {}
}
}
}
File: mcp-config-stdio-local.json
{
"mcpServers": {
"addgene-mcp": {
"command": "uv",
"args": ["run", "addgene-mcp"],
"env": {
"MCP_PORT": "3001",
"MCP_HOST": "0.0.0.0",
"MCP_TRANSPORT": "stdio"
}
}
}
}
Configuration Notes:
uvx - For end-user deployment without cloning the repositoryuv - For development deployment when you have the repository cloned# Clone the repository
git clone https://github.com/longevity-genie/addgene-mcp.git
cd addgene-mcp
uv sync
If you already cloned the repo you can run the server with uv:
# Start the MCP server locally (HTTP mode)
uv run server
# Or start in STDIO mode
uv run stdio
# Or start in SSE mode
uv run sse
addgene_search_plasmidsSearch for plasmids in the Addgene repository with comprehensive filtering options.
Parameters:
query (optional): Free text search querypage_size (optional): Number of results per page (default: 50, max: 50)page_number (optional): Page number for pagination (default: 1)expression (optional): Filter by expression system ("bacterial", "mammalian", "insect", "plant", "worm", "yeast")vector_types (optional): Filter by vector typespecies (optional): Filter by speciesplasmid_type (optional): Filter by plasmid typeresistance_marker (optional): Filter by resistance markerbacterial_resistance (optional): Filter by bacterial resistancepopularity (optional): Filter by popularity level ("high", "medium", "low")has_dna_service (optional): Filter by DNA service availabilityhas_viral_service (optional): Filter by viral service availabilityis_industry (optional): Filter by industry availabilityaddgene_get_sequence_infoGet information about downloading a plasmid sequence.
Parameters:
plasmid_id: Addgene plasmid ID (required)format (optional): Sequence format - "snapgene", "genbank", "fasta" (default: "snapgene")addgene_get_popular_plasmidsGet popular plasmids from Addgene repository.
Parameters:
page_size (optional): Number of results to return (default: 50, max: 50)Contains comprehensive plasmid information:
id: Addgene plasmid IDname: Plasmid namedepositor: Name of the depositorpurpose: Purpose/descriptionarticle_url: Associated publication URLinsert: Insert informationtags: Tags associated with the plasmidmutation: Mutation informationplasmid_type: Type of plasmidvector_type: Vector type/usepopularity: Popularity level (high/medium/low)expression: Expression systemspromoter: Promoter informationmap_url: Plasmid map image URLservices: Available servicesis_industry: Whether available to industryContains search results and metadata:
plasmids: List of PlasmidOverview objectscount: Number of results returnedquery: Search query usedpage: Page numberpage_size: Results per pagefilters_applied: Dictionary of applied filtersContains sequence download information:
plasmid_id: Plasmid IDdownload_url: Direct download URLformat: Sequence formatavailable: Whether sequence is available for download# Search for CRISPR-related plasmids
result = await search_plasmids(query="CRISPR Cas9", page_size=50)
# Search for mammalian expression vectors
result = await search_plasmids(
expression="mammalian",
vector_types="expression",
page_size=15
)
# Find popular bacterial expression plasmids
result = await search_plasmids(
expression="bacterial",
popularity="high",
page_size=50
)
# Search for plasmids containing a specific gene
result = await search_plasmids(
query="GFP fluorescent protein",
plasmid_type="reporter"
)
# Get GenBank format sequence for a plasmid
seq_info = await get_sequence_info(
plasmid_id=12345,
format="genbank"
)
Judge-Based Testing Available: We now provide comprehensive judge-based tests that evaluate the MCP server's ability to answer these research questions. See test/README_JUDGE_TESTING.md for details on running automated quality evaluation tests.
Note: These queries are based on our actual test suite and represent validated functionality. Each query has been tested to ensure it properly calls the MCP functions and returns appropriate data structures.
The MCP server includes comprehensive tests for all functionality:
Run tests for the MCP server:
# Set testing environment and run all tests
uv run pytest -vvv -s
Our test suite includes:
Using the MCP Inspector is optional. Most MCP clients (like Cursor, Windsurf, etc.) will automatically display the available tools from this server once configured. However, the Inspector can be useful for detailed testing and exploration.
If you choose to use the Inspector via npx, ensure you have Node.js and npm installed. Using nvm (Node Version Manager) is recommended for managing Node.js versions.
We welcome contributions from the community! 🎉 Whether you're a researcher, developer, or enthusiast interested in molecular biology and plasmid research, there are many ways to get involved:
We especially encourage you to try our MCP server and share your feedback with us! Your experience using the server, any issues you encounter, and suggestions for improvement are incredibly valuable for making this tool better for the entire research community.
Tutorials, videos, and user stories are especially valuable to us! We're working to push the molecular biology community toward AI adoption, and real-world examples of how researchers use our MCP servers help demonstrate the practical benefits and encourage wider adoption.
git checkout -b feature/amazing-feature)TESTING=true uv run pytest)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)ruff for formatting and linting)Don't hesitate to open an issue for discussion! We're friendly and always happy to help newcomers get started. Your contributions help advance open science and molecular biology research for everyone. 🧬✨
The MCP server has not been fully tested on Windows systems. Some users have reported that searches either crash or return no results on Windows. If you encounter issues on Windows, please report them as GitHub issues with details about your Windows version and error messages.
This MCP server relies on web scraping the Addgene website. While we implement respectful scraping practices with appropriate delays and error handling, the server's functionality depends on the current structure of the Addgene website. Changes to the website may require updates to the scraping logic.
To be respectful to Addgene's servers, we implement rate limiting. For high-volume usage, consider implementing caching or contacting Addgene about API access.
While we provide comprehensive tests including mock data for CI stability, not all test cases have been validated against real-time Addgene data. Some edge cases may need additional validation.
This project is licensed under the MIT License.
This project is part of the Longevity Genie organization, which develops open-source AI assistants and libraries for health, genetics, and longevity research.
We also develop other specialized MCP servers for biomedical research:
gget library.We are supported by:
HEALES - Healthy Life Extension Society
and
IBIMA - Institute for Biostatistics and Informatics in Medicine and Ageing Research
Выполни в терминале:
claude mcp add addgene-mcp -- npx Безопасность
Низкий рискАвтоматическая эвристика по публичным данным — не гарантия безопасности.