MCP Mempool

Acesse dados da rede Bitcoin da API do mempool.space para agentes e aplicações de IA.

Documentação

MCP Mempool 🚀

Servidor Model Context Protocol (MCP) para a API WebSocket & REST do bitcoin mempool.space

Docker Python FastAPI Bitcoin

📋 Visão Geral

O MCP Mempool é um servidor que encapsula as APIs WebSocket e REST do mempool.space na forma de MCP (Model Context Protocol), permitindo que Agentes de IA e aplicações externas utilizem facilmente os dados da rede Bitcoin.

✨ Principais Recursos

🔄 Funcionalidades WebSocket (tempo real)

  • Dados de blocos em tempo real: Notificação imediata quando um novo bloco é criado
  • Modelo de bloco do mempool: Informações sobre o próximo bloco esperado
  • Estatísticas da rede: Monitoramento em tempo real do estado do mempool
  • Rastreamento de endereços: Rastreamento em tempo real de transações de um endereço Bitcoin específico
  • Gráficos ao vivo: Dados em tempo real das tendências de taxas

🔍 Funcionalidades da API REST (consultas)

  • Consulta de informações de endereço: Saldo, histórico de transações, lista de UTXOs
  • Informações de transações: Detalhes e status de transações individuais
  • Dados de blocos: Informações de blocos, lista de transações, altura mais recente
  • Informações de taxas: Taxas recomendadas, taxas por bloco do mempool
  • Estado do mempool: Informações atuais do mempool e transações recentes
  • Validação de endereços: Verificação de validade de endereços Bitcoin

🚀 Início Rápido

Executar com Docker (recomendado)

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

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

Quando o servidor estiver em execução, ele estará acessível em http://localhost:8000.

Instalação Local

# 의존성 설치
uv sync

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

🔧 Configuração de Variáveis de Ambiente

# 서버 설정
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                          # 자동 재시작

🛠 Configuração do Cliente MCP

Claude Desktop

Adicione ao arquivo 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

Adicione ao arquivo .aws/amazonq/mcp.json:

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

📡 Ferramentas Disponíveis

Ferramentas WebSocket (streaming em tempo real)

subscribe_blocks

Receba notificações em tempo real quando um novo bloco for criado.

subscribe_mempool_blocks

Receba em tempo real as informações do modelo do próximo bloco esperado.

subscribe_stats

Monitore em tempo real as estatísticas do mempool da rede.

subscribe_live_chart

Receba em tempo real os dados do gráfico de taxas ao vivo de 2 horas.

track_address

Rastreie em tempo real as transações de um endereço Bitcoin específico.

  • address: Endereço Bitcoin a ser rastreado

get_connection_status

Verifique o status da conexão WebSocket.

unsubscribe_client

Cancele todas as assinaturas do cliente.

  • client_id: ID do cliente para cancelar assinatura

Ferramentas da API REST (consultas)

Relacionadas a Endereços

get_address_info - Consulta todas as informações de um endereço

  • address: Endereço Bitcoin

get_address_balance - Consulta o saldo de um endereço

  • address: Endereço Bitcoin

get_address_utxos - Consulta a lista de UTXOs de um endereço

  • address: Endereço Bitcoin

get_address_transactions - Consulta o histórico de transações de um endereço

  • address: Endereço Bitcoin
  • after_txid (opcional): Consulta apenas transações após uma transação específica

Relacionadas a Transações

get_transaction_info - Consulta informações de uma transação

  • txid: ID da transação

get_block_info - Consulta informações de um bloco

  • hash_or_height: Hash ou altura do bloco

get_block_height - Consulta a altura atual do bloco

Taxas & Mempool

get_recommended_fees - Consulta as taxas recomendadas

get_mempool_info - Consulta as informações atuais do mempool

Utilitários

validate_bitcoin_address - Valida a validade de um endereço Bitcoin

  • address: Endereço a ser validado

💻 Exemplos de Uso

Consulta de Saldo de Endereço

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

Monitoramento de Taxas em Tempo Real

# 실시간 멤풀 블록 구독
subscribe_mempool_blocks

# 추천 수수료 조회
get_recommended_fees

Rastreamento de Endereço

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

🏗 Desenvolvimento

Configuração do Ambiente de Desenvolvimento

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

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

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

Execução de Testes

# 모든 테스트 실행
uv run pytest

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

Ferramentas de Qualidade de Código

# 린팅
uv run ruff check .

# 포맷팅
uv run ruff format .

# 타입 체크
uv run mypy src/

🐳 Build Docker

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

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

📊 Monitoramento

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

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

🔗 Endpoints da API

  • Health Check: GET /health
  • Root Info: GET /
  • MCP Protocol: POST /mcp
  • API Docs: GET /docs

📄 Licença

MIT License

🤝 Contribuições

Relatórios de problemas e pull requests são bem-vindos!

📞 Suporte

  • Se tiver problemas, utilize o GitHub Issues
  • Sugestões de melhorias ou solicitações de novos recursos também são bem-vindas