Biomart MCP
Interfaz con Biomart, una herramienta de consulta de datos biológicos, utilizando el paquete Python pybiomart.
Documentación
Biomart MCP
Un servidor MCP para interactuar con Biomart
El Model Context Protocol (MCP) es un protocolo abierto que estandariza cómo las aplicaciones proporcionan contexto a los LLMs, desarrollado por Anthropic. Aquí usamos el MCP python-sdk para crear un servidor MCP que interactúa con Biomart a través del paquete pybiomart.

Hay un video de demostración corto que muestra el servidor MCP en acción en Claude Desktop.
Instalación
Instalación mediante Smithery
Para instalar Biomart MCP para Claude Desktop automáticamente mediante Smithery:
npx -y @smithery/cli install @jzinno/biomart-mcp --client claude
Clonar el repositorio
git clone https://github.com/jzinno/biomart-mcp.git
cd biomart-mcp
Claude Desktop
uv run --with mcp[cli] mcp install --with pybiomart biomart-mcp.py
Cursor
A través del modo agente de Cursor, otros modelos también pueden aprovechar los servidores MCP, como los de OpenAI o DeepSeek. Haga clic en el engranaje de configuración de Cursor y navegue hasta MCP y agregue el servidor MCP a la configuración global o agréguelo a un ámbito de proyecto agregando .cursor/mcp.json al proyecto.
Ejemplo .cursor/mcp.json:
{
"mcpServers": {
"Biomart": {
"command": "uv",
"args": [
"run",
"--with",
"mcp[cli]",
"--with",
"pybiomart",
"mcp",
"run",
"/your/path/to/biomart-mcp.py"
]
}
}
}
Glama
Desarrollo
# Create a virtual environment
uv venv
# MacOS/Linux
source .venv/bin/activate
# Windows
.venv\Scripts\activate
uv sync #or uv add mcp[cli] pybiomart
# Run the server in dev mode
mcp dev biomart-mcp.py
Características
Biomart-MCP proporciona varias herramientas para interactuar con las bases de datos de Biomart:
- Descubrimiento de Mart y Conjuntos de Datos: Listar los marts y conjuntos de datos disponibles para explorar la estructura de la base de datos de Biomart
- Exploración de Atributos y Filtros: Ver atributos y filtros comunes o todos los disponibles para conjuntos de datos específicos
- Recuperación de Datos: Consultar Biomart con atributos y filtros específicos para obtener datos biológicos
- Traducción de ID: Convertir entre diferentes identificadores biológicos (por ejemplo, símbolos de genes a IDs de Ensembl)
Contribuciones
¡Las solicitudes de extracción son bienvenidas! Algunas notas breves sobre el desarrollo:
- Solo usamos
@mcp.tool()aquí por diseño, para maximizar la compatibilidad con clientes que soportan MCP como se ve en los docs. - Usamos
@lru_cachepara almacenar en caché los resultados de funciones que son computacionalmente costosas o que realizan llamadas a API externas. - Debemos tener cuidado de no expandir la ventana de contexto del modelo, por ejemplo, verás
df.to_csv(index=False).replace("\r", "")en muchos lugares. Este estilo de retorno CSV es mucho más eficiente en tokens que algo comodf.to_string()donde la mayoría de los tokens son espacios en blanco. También ten en cuenta que extraer todos los genes de un cromosoma o una solicitud similarmente grande también será demasiado grande para la ventana de contexto.
Posibles Características Futuras
Por supuesto, hay muchas más características que podrían agregarse, algunas quizás más allá del alcance del nombre biomart-mcp. Aquí hay algunas ideas:
- Agregar webscraping para sitios de recursos con
bs4, por ejemplo, obtuvimos el ID de gen Ensembl para NOTCH1 y quizás en algunos casos sería útil capturar la sección recopiladaComments and Description Text from UniProtKBde su página en UCSC - $...$