UniProt MCP Server

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Servidor MCP de UniProt

Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona acceso a la información de las proteínas de UniProt. Este servidor permite a los asistentes de IA obtener información sobre la función y la secuencia de las proteínas directamente de UniProt.

Características

  • Obtenga información sobre proteínas por número de acceso de UniProt
  • Recuperación por lotes de múltiples proteínas
  • Almacenamiento en caché para un mejor rendimiento (TTL de 24 horas)
  • Manejo y registro de errores
  • 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

  1. Asegúrese de tener instalado Python 3.10 o superior
  2. Clonar este repositorio:
    git clone https://github.com/TakumiY235/uniprot-mcp-server.git cd uniprot-mcp-server
  3. Instalar dependencias:
    # Using uv (recommended) uv pip install -r requirements.txt # Or using pip pip install -r requirements.txt

Configuración

Agregue a su archivo de configuración de Claude Desktop:

  • Ventanas: %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, puede 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 API

Herramientas

  1. get_protein_info
    • Obtener información para una sola proteína
    • Parámetro obligatorio: 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" }
  2. get_batch_protein_info
    • Obtenga información para múltiples proteínas
    • Parámetro obligatorio: accessions (matriz de números de acceso de UniProt)
    • Devuelve una matriz de objetos de información de proteínas.

Desarrollo

Configuración del entorno de desarrollo

  1. Clonar el repositorio
  2. Crear un entorno virtual:
    python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
  3. Instalar dependencias de desarrollo:
    pip install -e ".[dev]"

Ejecución de pruebas

pytest

Estilo de código

Este proyecto utiliza:

  • Negro para formato de código
  • isort para la clasificación de importaciones
  • flake8 para quitar pelusa
  • mypy para verificación de tipos
  • bandido para controles de seguridad
  • seguridad para comprobaciones de vulnerabilidad de dependencia

Ejecutar 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 almacenamiento en caché con TTL de 24 horas utilizando un caché basado en OrderedDict
  • Maneja la limitación de velocidad y los reintentos
  • Proporciona mensajes de error detallados

Manejo de errores

El servidor gestiona varios escenarios de error:

  • Números de acceso no válidos (404 respuestas)
  • Problemas de conexión de API (errores de red)
  • Limitación de velocidad (429 respuestas)
  • Respuestas mal formadas (errores de análisis de JSON)
  • Gestión de caché (TTL y límites de tamaño)

Contribuyendo

¡Agradecemos tus contribuciones! No dudes en enviar una solicitud de incorporación de cambios. Así es como puedes contribuir:

  1. Bifurcar el repositorio
  2. Crea tu rama de funciones ( git checkout -b feature/amazing-feature )
  3. Confirme sus cambios ( git commit -m 'Add some amazing feature' )
  4. Empujar a la rama ( git push origin feature/amazing-feature )
  5. Abrir una solicitud de extracción

Asegúrese de actualizar las pruebas según corresponda y respetar el estilo de codificación existente.

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

Expresiones de gratitud

  • UniProt por proporcionar la API de datos de proteínas
  • Antrópico para la especificación del Protocolo de Contexto del Modelo
  • Colaboradores que ayudan a mejorar este proyecto

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Permite que los asistentes de IA accedan a la información de proteínas directamente desde UniProt, lo que permite la recuperación de nombres de proteínas, funciones, secuencias y datos de organismos por número de acceso.

  1. Features
    1. Quick Start
      1. Configuration
        1. Usage Examples
          1. API Reference
            1. Tools
          2. Development
            1. Setting up development environment
            2. Running tests
            3. Code style
          3. Technical Details
            1. Error Handling
          4. Contributing
            1. License
              1. Acknowledgments
                ID: ttjbai3lpx