UniProt MCP Server
Accede a la información de proteínas de UniProt, incluyendo datos de función y secuencia.
Documentación
Servidor MCP de UniProt
Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona acceso a la información de proteínas de UniProt. Este servidor permite a los asistentes de IA obtener información sobre funciones y secuencias de proteínas directamente desde UniProt.
Características
- Obtener información de proteínas por número de acceso de UniProt
- Recuperación por lotes de múltiples proteínas
- Caché para mejorar el rendimiento (TTL de 24 horas)
- Manejo de errores y registro de actividades
- La información incluye:
- Nombre de la proteína
- Descripción de la función
- Secuencia completa
- Longitud de la secuencia
- Organismo
Inicio rápido
- Asegúrate de tener Python 3.10 o superior instalado
- Clona este repositorio:
git clone https://github.com/TakumiY235/uniprot-mcp-server.git cd uniprot-mcp-server - Instala las dependencias:
# Using uv (recommended) uv pip install -r requirements.txt # Or using pip pip install -r requirements.txt
Configuración
Agrega a tu archivo de configuración de Claude Desktop:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"uniprot": {
"command": "uv",
"args": ["--directory", "path/to/uniprot-mcp-server", "run", "uniprot-mcp-server"]
}
}
}
Ejemplos de uso
Después de configurar el servidor en Claude Desktop, puedes hacer preguntas como:
Can you get the protein information for UniProt accession number P98160?
Para consultas por lotes:
Can you get and compare the protein information for both P04637 and P02747?
Referencia de la API
Herramientas
-
get_protein_info- Obtener información de una sola proteína
- Parámetro requerido:
accession(número de acceso de UniProt) - Ejemplo de respuesta:
{ "accession": "P12345", "protein_name": "Example protein", "function": ["Description of protein function"], "sequence": "MLTVX...", "length": 123, "organism": "Homo sapiens" }
-
get_batch_protein_info- Obtener información de múltiples proteínas
- Parámetro requerido:
accessions(matriz de números de acceso de UniProt) - Devuelve una matriz de objetos con información de proteínas
Desarrollo
Configuración del entorno de desarrollo
- Clona el repositorio
- Crea un entorno virtual:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate - Instala las dependencias de desarrollo:
pip install -e ".[dev]"
Ejecutar pruebas
pytest
Estilo de código
Este proyecto utiliza:
- Black para el formato de código
- isort para ordenar importaciones
- flake8 para linting
- mypy para verificación de tipos
- bandit para comprobaciones de seguridad
- safety para verificación de vulnerabilidades de dependencias
Ejecuta todas las comprobaciones:
black .
isort .
flake8 .
mypy .
bandit -r src/
safety check
Detalles técnicos
- Construido con el SDK de Python de MCP
- Utiliza httpx para solicitudes HTTP asíncronas
- Implementa caché con TTL de 24 horas usando una caché basada en OrderedDict
- Maneja límites de velocidad y reintentos
- Proporciona mensajes de error detallados
Manejo de errores
El servidor maneja varios escenarios de error:
- Números de acceso no válidos (respuestas 404)
- Problemas de conexión con la API (errores de red)
- Límites de velocidad (respuestas 429)
- Respuestas malformadas (errores de análisis JSON)
- Gestión de caché (límites de TTL y tamaño)
Contribuciones
¡Agradecemos las contribuciones! No dudes en enviar una Solicitud de Extracción (Pull Request). Así es como puedes contribuir:
- Haz un fork del repositorio
- Crea tu rama de características (
git checkout -b feature/amazing-feature) - Realiza tus cambios (
git commit -m 'Add some amazing feature') - Envía los cambios a la rama (
git push origin feature/amazing-feature) - Abre una Solicitud de Extracción
Asegúrate de actualizar las pruebas según corresponda y de seguir el estilo de código existente.
Licencia
Este proyecto está licenciado bajo la Licencia MIT: consulta el archivo LICENSE para más detalles.
Agradecimientos
- UniProt por proporcionar la API de datos de proteínas
- Anthropic por la especificación del Protocolo de Contexto de Modelo
- Contribuyentes que ayudan a mejorar este proyecto
