Example of using this: https://claude.ai/share/243b110f-5741-4f5a-8d31-6f17ad7e688c
A collection of Model Context Protocol (MCP) servers providing AI assistants with access to biomedical knowledge APIs from the Translator and ROBOKOP ecosystem.
The Model Context Protocol (MCP) is an open protocol that enables AI assistants like Claude to securely connect to external data sources and tools. These MCP servers act as bridges between Claude and specialized biomedical knowledge services.
Provides biological entity name lookup and synonym resolution.
Tools:
-
lookup- Search for biological entities by name with filtering options- Filter by entity type (Disease, Gene, ChemicalEntity, etc.)
- Restrict to specific namespaces (MONDO, CHEBI, HGNC, etc.)
- Filter by taxa (e.g., human-only results)
- Autocomplete and highlighting support
-
synonyms- Get all known synonyms for biological entity CURIEs- Returns preferred names and alternative labels
- Useful for entity disambiguation
Provides biological entity CURIE normalization and conflation.
Tools:
get_normalized_nodes- Normalize biological entity CURIEs- Maps identifiers to canonical forms
- Shows all equivalent identifiers across namespaces
- Displays biolink types and information content
- Optional gene/protein conflation
- Optional drug/chemical conflation
- Optional descriptions
Provides access to the Biolink Model Toolkit for querying and navigating the Biolink Model.
Tools:
get_element- Get a Biolink Model element by nameget_ancestors- Get ancestors of a Biolink elementget_descendants- Get descendants of a Biolink elementget_all_classes- Get all Biolink classesget_all_slots- Get all Biolink slotsget_all_entities- Get all Biolink entitiesget_element_by_mapping- Map external CURIEs to Biolink elementsis_predicate- Check if a name is a Biolink predicateget_slot_domain- Get the domain for a Biolink slotget_slot_range- Get the range for a Biolink slot
Provides access to the ROBOKOP Knowledge Graph for querying biomedical relationships.
Tools:
get_node- Get information about a specific node by CURIEget_edges- Get edges connected to a node with optional filteringget_edge_summary- Get a summary of edge types connected to a nodeget_edges_between- Find all edges connecting two nodes
Each MCP server is published as an independent package on PyPI.
No installation needed! Use uvx to run the servers in isolated environments (see Configuration section below).
If you prefer to install the packages:
# Create and activate a virtual environment
python -m venv mcp-env
source mcp-env/bin/activate # On Windows: mcp-env\Scripts\activate
# Install desired servers
pip install name-resolver-mcp
pip install nodenormalizer-mcp
pip install biolink-mcp
pip install robokop-mcp# Clone the repository
git clone https://github.com/cbizon/RoboMCP.git
cd RoboMCP
# Install a specific server in editable mode
cd name-resolver-mcp
pip install -e .Each server can be configured using environment variables to point to different API endpoints:
NAME_RESOLVER_URL- Name Resolution Service endpoint (default:https://name-resolution-sri.renci.org)NODE_NORMALIZER_URL- Node Normalization Service endpoint (default:https://nodenormalization-sri.renci.org)BIOLINK_VERSION- Biolink Model version (optional, defaults to latest)ROBOKOP_URL- ROBOKOP Knowledge Graph endpoint (default:https://automat.renci.org/robokopkg)
Add the servers to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
The easiest way to use these servers is with uvx, which runs them in isolated environments without installation:
{
"mcpServers": {
"name-resolver": {
"command": "uvx",
"args": ["name-resolver-mcp"]
},
"nodenormalizer": {
"command": "uvx",
"args": ["nodenormalizer-mcp"]
},
"biolink": {
"command": "uvx",
"args": ["biolink-mcp"]
},
"robokop": {
"command": "uvx",
"args": ["robokop-mcp"]
}
}
}When running from source, use the full uv command:
{
"mcpServers": {
"name-resolver": {
"command": "uv",
"args": [
"run",
"--directory",
"/absolute/path/to/RoboMCP/name-resolver-mcp",
"python",
"run_server.py"
]
},
"nodenormalizer": {
"command": "uv",
"args": [
"run",
"--directory",
"/absolute/path/to/RoboMCP/nodenormalizer-mcp",
"python",
"run_server.py"
]
},
"biolink": {
"command": "uv",
"args": [
"run",
"--directory",
"/absolute/path/to/RoboMCP/biolink-mcp",
"python",
"run_server.py"
]
},
"robokop": {
"command": "uv",
"args": [
"run",
"--directory",
"/absolute/path/to/RoboMCP/robokop-mcp",
"python",
"run_server.py"
]
}
}
}Note: Replace /absolute/path/to/RoboMCP with your actual path.
To use custom API endpoints, add environment variables:
{
"mcpServers": {
"name-resolver": {
"command": "name-resolver-mcp",
"env": {
"NAME_RESOLVER_URL": "https://your-custom-endpoint.example.com"
}
}
}
}After updating the configuration, restart Claude Desktop for the changes to take effect.
Once configured, you can ask Claude questions like:
Name Resolution:
- "Look up 'diabetes' in the name resolver"
- "Find all genes with 'BRCA' in the name, limited to human genes"
- "Get synonyms for MONDO:0007739"
Node Normalization:
- "Normalize these CURIEs: MESH:D014867, NCIT:C34373"
- "What are the equivalent identifiers for CHEBI:5931?"
- "Normalize UniProtKB:P04637 with gene/protein conflation enabled"
See CLAUDE.md for development instructions and guidelines.
MIT License - see LICENSE file for details.
For issues or questions, please open an issue on the GitHub repository.