MCP Mempool

Accede a datos de la red Bitcoin desde la API de mempool.space para agentes y aplicaciones de IA.

Documentación

MCP Mempool 🚀

Servidor de Protocolo de Contexto de Modelo (MCP) para la API WebSocket y REST de mempool.space de Bitcoin

Docker Python FastAPI Bitcoin

📋 Descripción general

MCP Mempool es un servidor que envuelve la API WebSocket y REST de mempool.space en forma de MCP (Protocolo de Contexto de Modelo), permitiendo que agentes de IA y aplicaciones externas utilicen fácilmente los datos de la red de Bitcoin.

✨ Características principales

🔄 Funciones WebSocket (tiempo real)

  • Datos de bloques en tiempo real: notificación inmediata al crearse un nuevo bloque
  • Plantillas de bloques del mempool: información del siguiente bloque esperado
  • Estadísticas de red: monitoreo en tiempo real del estado del mempool
  • Seguimiento de direcciones: seguimiento en tiempo real de transacciones de una dirección de Bitcoin específica
  • Gráficos en vivo: datos en tiempo real de la evolución de las tarifas

🔍 Funciones de la API REST (consultas)

  • Consulta de información de direcciones: saldo, historial de transacciones, lista de UTXO
  • Información de transacciones: detalles y estado de transacciones individuales
  • Datos de bloques: información de bloques, lista de transacciones, altura más reciente
  • Información de tarifas: tarifas recomendadas, tarifas por bloque del mempool
  • Estado del mempool: información actual del mempool y transacciones recientes
  • Validación de direcciones: verificación de validez de direcciones de Bitcoin

🚀 Inicio rápido

Ejecutar con Docker (recomendado)

# 개발 환경
docker-compose up mcp-mempool-dev

# 프로덕션 환경  
docker-compose up mcp-mempool-prod

Una vez que el servidor esté en ejecución, será accesible en http://localhost:8000.

Instalación local

# 의존성 설치
uv sync

# 서버 실행
uv run python -m mempool_ws_mcp_server.main

🔧 Configuración de variables de entorno

# 서버 설정
MCP_HOST=0.0.0.0                      # 서버 호스트
MCP_PORT=8000                         # 서버 포트
LOG_LEVEL=INFO                        # 로그 레벨

# Mempool API 설정
MEMPOOL_WS_URL=wss://mempool.space/api/v1/ws    # WebSocket URL
MEMPOOL_API_URL=https://mempool.space/api       # REST API URL

# WebSocket 설정
WS_RECONNECT_INTERVAL=5               # 재연결 간격 (초)
WS_MAX_RECONNECT_ATTEMPTS=10          # 최대 재연결 시도
WS_PING_INTERVAL=30                   # Ping 간격 (초)
WS_PING_TIMEOUT=10                    # Ping 타임아웃 (초)

# HTTP 클라이언트 설정
HTTP_TIMEOUT=30                       # HTTP 요청 타임아웃 (초)
HTTP_MAX_RETRIES=3                    # 최대 재시도 횟수

# 성능 설정
MAX_MESSAGE_QUEUE_SIZE=1000           # 메시지 큐 최대 크기
MESSAGE_BATCH_SIZE=10                 # 메시지 배치 크기

# 보안 설정
CORS_ENABLED=true                     # CORS 활성화
ALLOWED_ORIGINS=*                     # 허용된 오리진 (콤마 구분)

# 개발 모드
DEBUG=false                           # 디버그 모드
RELOAD=false                          # 자동 재시작

🛠 Configuración del cliente MCP

Claude Desktop

Agregar al archivo claude_desktop_config.json:

{
  "mcpServers": {
    "mcp-mempool": {
      "command": "npx",
      "args": ["mcp-remote", "http://localhost:8000/mcp"]
    }
  }
}

{
  "mcpServers": {
    "mcp-mempool": {
      "transport": "streamable-http",
      "url" : "http://127.0.0.1:8000/mcp" //배포시 실제 서빙 url
    }
  }
}

Amazon Q Developer

Agregar al archivo .aws/amazonq/mcp.json:

{
  "mcpServers": {
    "mcp-mempool": {
      "command": "npx", 
      "args": ["mcp-remote", "http://localhost:8000/mcp"],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR"
      }
    }
  }
}

📡 Herramientas disponibles

Herramientas WebSocket (transmisión en tiempo real)

subscribe_blocks

Recibe notificaciones en tiempo real cuando se crea un nuevo bloque.

subscribe_mempool_blocks

Recibe en tiempo real la información de la plantilla del siguiente bloque esperado.

subscribe_stats

Monitorea en tiempo real las estadísticas del mempool de la red.

subscribe_live_chart

Recibe en tiempo real los datos del gráfico de tarifas en vivo de 2 horas.

track_address

Realiza seguimiento en tiempo real de las transacciones de una dirección de Bitcoin específica.

  • address: dirección de Bitcoin a rastrear

get_connection_status

Verifica el estado de la conexión WebSocket.

unsubscribe_client

Cancela todas las suscripciones del cliente.

  • client_id: ID del cliente cuyas suscripciones se cancelarán

Herramientas de la API REST (consultas)

Relacionadas con direcciones

get_address_info - Consulta toda la información de una dirección

  • address: dirección de Bitcoin

get_address_balance - Consulta el saldo de una dirección

  • address: dirección de Bitcoin

get_address_utxos - Consulta la lista de UTXO de una dirección

  • address: dirección de Bitcoin

get_address_transactions - Consulta el historial de transacciones de una dirección

  • address: dirección de Bitcoin
  • after_txid (opcional): consulta solo las transacciones posteriores a una transacción específica

Relacionadas con transacciones

get_transaction_info - Consulta información de una transacción

  • txid: ID de la transacción

get_block_info - Consulta información de un bloque

  • hash_or_height: hash o altura del bloque

get_block_height - Consulta la altura actual del bloque

Tarifas y mempool

get_recommended_fees - Consulta las tarifas recomendadas

get_mempool_info - Consulta la información actual del mempool

Utilidades

validate_bitcoin_address - Verifica la validez de una dirección de Bitcoin

  • address: dirección a verificar

💻 Ejemplos de uso

Consulta del saldo de una dirección

# MCP 클라이언트에서 사용
get_address_balance address="1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"

Monitoreo de tarifas en tiempo real

# 실시간 멤풀 블록 구독
subscribe_mempool_blocks

# 추천 수수료 조회
get_recommended_fees

Seguimiento de direcciones

# 특정 주소 실시간 추적
track_address address="1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"

🏗 Desarrollo

Configuración del entorno de desarrollo

# 프로젝트 클론
git clone <repository-url>
cd mcp-mempool

# 개발 의존성 설치
uv sync --dev

# 개발 서버 실행
uv run python -m mempool_ws_mcp_server.main

Ejecución de pruebas

# 모든 테스트 실행
uv run pytest

# 커버리지 포함
uv run pytest --cov=mempool_ws_mcp_server

Herramientas de calidad de código

# 린팅
uv run ruff check .

# 포맷팅
uv run ruff format .

# 타입 체크
uv run mypy src/

🐳 Compilación de Docker

# 이미지 빌드
docker build -t mcp-mempool .

# 멀티 아키텍처 빌드
docker buildx build --platform linux/amd64,linux/arm64 -t mcp-mempool .

📊 Monitoreo

# 모니터링 스택 실행 (Prometheus + Grafana)
docker-compose --profile monitoring up

# Grafana: http://localhost:3000 (admin/admin)
# Prometheus: http://localhost:9090

🔗 Puntos finales de la API

  • Verificación de estado: GET /health
  • Información raíz: GET /
  • Protocolo MCP: POST /mcp
  • Documentación de la API: GET /docs

📄 Licencia

Licencia MIT

🤝 Contribuciones

¡Se aceptan informes de problemas y solicitudes de extracción!

📞 Soporte

  • Si tiene problemas, utilice los Issues de GitHub
  • También se aceptan sugerencias de mejora y solicitudes de nuevas funciones