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
📋 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 Bitcoinafter_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