Cryptocurrency Price Service

Proporciona información de precios de criptomonedas en tiempo real utilizando la API de CoinMarketCap.

Documentación

MseeP.ai Security Assessment Badge

Servidor MCP en Python - Servicio de Precios de Criptomonedas

Este proyecto implementa un servidor MCP (Protocolo de Contexto de Modelo) que proporciona información de precios de criptomonedas. El servidor está construido usando Python y el framework MCP para crear una API que puede ser consumida por diferentes clientes.

Docker

Compilación de Docker: docker build -t mcp/python-server-mcp -f Dockerfile .

Agrega lo siguiente a tu archivo mcp.json:

{
  "mcpServers": {
    "python-server-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-p",
        "8000:8000",
        "-e",
        "ENVIRONMENT",
        "-e",
        "COINMARKETCAP_API_KEY",
        "mcp/python-server-mcp"
      ],
      "env": {
        "ENVIRONMENT": "PRODUCTION",
        "COINMARKETCAP_API_KEY": "your-api-key",
      }
    }
  }
}

Características

  • Obtención de precios de criptomonedas en tiempo real
  • Configuración basada en el entorno (desarrollo, producción, staging, local)
  • Integración con la API de CoinMarketCap
  • Despliegue en contenedores Docker

Requisitos

  • Python 3.12+
  • uv (gestor de paquetes y entornos virtuales)
  • Docker (opcional, para ejecución en contenedores)

Instalación

Usando uv (recomendado)

# Clone the repository
git clone <repository-url>
cd PythonServerMcp

Crear y activar el entorno virtual con uv

uv venv
source .venv/bin/activate

Instalar dependencias

uv sync

Configuración

  1. Crea un archivo .env en la raíz del proyecto con las siguientes variables:
ENVIRONMENT=DEV  # Options: LOCAL, DEV, STAGING, PROD
COINMARKETCAP_API_KEY=your_api_key_here
  1. También puedes crear archivos de entorno específicos para cada entorno:
    • .dev.env - Para el entorno de desarrollo
    • .staging.env - Para el entorno de staging
    • .prod.env - Para el entorno de producción

Uso

Ejecución Local

python main.py

Esto iniciará el servidor MCP que escuchará solicitudes a través de la entrada/salida estándar (stdio).

Usando Docker

# Build the image
docker build -t test-mcp -f Dockerfile --platform linux/amd64 .

# Run the container
docker run -it test-mcp

Estructura del Proyecto

.
├── main.py
└── src
    ├── __init__.py
    ├── core
    │   ├── common
    │   │   ├── crypto_schema.py
    │   │   └── schema.py
    │   ├── config.py
    │   ├── settings
    │   │   ├── __init__.py
    │   │   ├── base.py
    │   │   ├── development.py
    │   │   ├── environment.py
    │   │   ├── local.py
    │   │   ├── production.py
    │   │   └── staging.py
    │   └── utils
    │       ├── datetime.py
    │       ├── extended_enum.py
    │       ├── filename_generator.py
    │       ├── passwords.py
    │       ├── query_utils.py
    │       └── redis.py
    ├── mcp_server.py
    ├── resources
    │   ├── __init__.py
    │   └── coinmarketcap_resource.py
    ├── server.py
    ├── services
    │   ├── __init__.py
    │   └── coinmarketcap_service.py
    └── tools
        ├── __init__.py
        └── prices.py

Desarrollo

Agregar Nuevas Herramientas al Servidor MCP

Para agregar una nueva herramienta al servidor MCP, sigue estos pasos:

  1. Define la función en el archivo src/__init__.py
  2. Registra la herramienta en la función main()
  3. Documenta la herramienta con docstrings

Ejemplo:

@server.add_tool
def my_new_tool(parameter1: str, parameter2: int) -> str:
    """
    Description of what the tool does.
    
    Args:
        parameter1: Description of parameter 1
        parameter2: Description of parameter 2
        
    Returns:
        Description of what is returned
    """
    # Tool implementation
    return result