WormBase MCP Server
Official# WormBase MCP Server
MCP server for querying [WormBase](https://wormbase.org) - the *C. elegans* and nematode genomics database.
## Installation
### Claude Desktop
Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows):
```json
{
"mcpServers": {
"wormbase": {
"command": "npx",
"args": ["-y", "@nuin/wormbase-mcp"]
}
}
}
```
### Claude Code (CLI)
Add to `~/.claude/settings.json`:
```json
{
"mcpServers": {
"wormbase": {
"command": "npx",
"args": ["-y", "@nuin/wormbase-mcp"]
}
}
}
```
### Cursor
Add to Cursor settings (Settings > MCP Servers):
```json
{
"wormbase": {
"command": "npx",
"args": ["-y", "@nuin/wormbase-mcp"]
}
}
```
### Windsurf
Add to `~/.codeium/windsurf/mcp_config.json`:
```json
{
"mcpServers": {
"wormbase": {
"command": "npx",
"args": ["-y", "@nuin/wormbase-mcp"]
}
}
}
```
### From source
```bash
git clone https://github.com/WormBase/wormbase-mcp.git
cd wormbase-mcp
npm install && npm run build
```
Then use the local path in your config:
```json
{
"mcpServers": {
"wormbase": {
"command": "node",
"args": ["/path/to/wormbase-mcp/dist/index.js"]
}
}
}
```
## Usage
Just ask questions naturally:
- "What does daf-2 do?"
- "Search for genes involved in longevity"
- "Get phenotypes for unc-13"
- "Find interactions for lin-14"
- "What are the homologs of aap-1?"
- "Give me the sequence of protein CE29083"
## Tools
| Tool | Description |
|------|-------------|
| `search` | Search genes, proteins, phenotypes, strains |
| `get_gene` | Gene details (accepts names like `daf-2` or IDs like `WBGene00000898`) |
| `get_protein` | Protein sequences and domains |
| `get_phenotype` | Phenotype info and associated genes |
| `get_disease` | Human disease models |
| `get_strain` | Laboratory strains |
| `get_variation` | Alleles and mutations |
| `get_interactions` | Genetic and physical interactions |
| `get_expression` | Expression patterns |
| `get_ontology` | GO annotations |
| `get_paper` | Publication details |
## Data Sources
- **Search & name resolution**: [WormMine](https://wormmine.alliancegenome.org/wormmine)
- **Detailed data**: [WormBase REST API](http://rest.wormbase.org)
## License
MIT
TDQS
Scored across 12 tools
Every tool has a clearly distinct purpose targeting specific biological entities or functions, such as get_gene for genes, get_phenotype for phenotypes, and get_expression for expression patterns. The descriptions explicitly differentiate each tool's scope, with get_entity serving as a fallback for uncovered types, ensuring no ambiguity in tool selection.
All tool names follow a consistent verb_noun pattern using 'get_' or 'search' prefixes, such as get_disease, get_gene, and search. This uniformity makes the tool set predictable and easy to navigate, with no deviations in naming conventions across the 12 tools.
With 12 tools, the server is well-scoped for its biological data domain, covering key entities like genes, proteins, phenotypes, and diseases. Each tool earns its place by addressing specific aspects of WormBase data, avoiding both thin coverage and excessive complexity.
The tool set provides comprehensive coverage for accessing WormBase data, including CRUD-like retrieval for all major entity types (e.g., genes, proteins, phenotypes) and a search tool for flexible queries. No obvious gaps exist, as get_entity acts as a catch-all for any uncovered types, ensuring complete access to the database.