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