Slowtime MCP Server
Um servidor para operações seguras baseadas em tempo, com proteção contra ataques de temporização e criptografia de bloqueio de tempo.
Documentação
Servidor MCP Slowtime
Um servidor Model Context Protocol para operações seguras baseadas em tempo, com proteção contra ataques de timing e criptografia com bloqueio de tempo.
┌──────────────┐
│ Claude │
│ Desktop │
└──────┬───────┘
│
▼
┌──────────────┐ ┌──────────────┐
│ Timelock │◄──────────────────►│ Slowtime │
│ Encryption │ │ MCP │
└──────────────┘ │ Server │
└──────┬───────┘
│
▼
┌──────────────┐ ┌──────────────┐
│ Timing │◄─────────────────►│ Interval │
│ Protection │ │ Manager │
└──────────────┘ └──────────────┘
Recursos
Fuzzing de Tempo e Segurança
Input Time ──┐
┌▼─────────────┐
│ Random Fuzz │ ┌─────────────┐
│ (100-5000ms) ├────►│ Jittered │
└─────────────┘ │ Timestamp │
└─────────────┘
Fluxo de Criptografia com Bloqueio de Tempo
Data ───────┐
┌▼────────────┐ ┌────────────┐ ┌────────────┐
│ Encrypt │ │ Interval │ │ League of │
│ with ├───►│ Duration ├───►│ Entropy │
│ Timelock │ │ Remaining │ │ Network │
└────────────┘ └────────────┘ └────────────┘
Gerenciamento de Intervalos
[Start]──►[Active]──┐
▲ │
│ ▼
[Resume] [Pause]
│ ▲
▼ │
[Paused]
Instalação
Adicione à configuração do Claude Desktop em ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"slowtime": {
"command": "node",
"args": ["/path/to/slowtime-mcp-server/build/index.js"]
}
}
}
Uso
Comandos Básicos de Intervalo
start_interval "Focus Time" 25 ───► [25min Interval Created]
│
check_interval <id> ◄───────────────────┘
│
pause_interval <id> ◄───────────────────┘
│
resume_interval <id> ◄───────────────────┘
Criptografia com Bloqueio de Tempo
1. Start Interval:
"Focus Time" (25min) ──► [Interval ID: abc123]
2. Encrypt Data:
"secret" + abc123 ──► [Timelock ID: xyz789]
3. Attempt Decrypt:
- Before interval ends: "Not yet decryptable"
- After interval ends: "secret"
Recursos de Segurança
Prevenção de Ataques de Timing
Operation ──┬──► Random Delay (100-5000ms)
│
├──► Jittered Timestamps
│
└──► Constant-time Comparisons
Segurança e Armazenamento do Bloqueio de Tempo
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Encrypt │ │ Distributed │ │ Timelock │ │ DuckDB │
│ Data ├───►│ Randomness ├───►│ Protected ├───►│ TimeVault │
│ │ │ Network │ │ Data │ │ Storage │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
│ ▲
│ ┌──────────────┘
▼ │
┌─────────────┴─┐
│ Analytics │
│ & Statistics │
└───────────────┘
Análises do TimeVault
Query History ──┐
├──► ┌─────────────┐
Filter Options ┘ │ DuckDB │ ┌─────────────┐
│ WASM ├───►│ Analytics │
Vault Stats ───────►│ Engine │ │ Results │
└─────────────┘ └─────────────┘
Arquitetura
O servidor consiste em quatro componentes principais:
-
TimeFuzz: Fornece proteção contra ataques de timing por meio de:
- Fuzzing de duração aleatória
- Comparações em tempo constante
- Carimbos de data/hora com jitter
- Atrasos aleatórios de operação
-
TimeKeeper: Gerencia intervalos com:
- Operações de criação/pausa/retomada
- Rastreamento de progresso
- Limpeza automática
- Integração com fuzzing
-
TimeLock: Lida com criptografia com:
- Integração com a rede drand
- Descriptografia baseada em intervalos
- Limpeza automática
- Geração segura de números aleatórios
-
TimeVault: Fornece armazenamento persistente e análises:
- Armazenamento baseado em DuckDB WASM
- Rastreamento histórico de dados criptografados
- Análises e estatísticas
- Capacidades de consulta com filtros
Comandos do TimeVault
Consulte dados históricos e estatísticas sobre timevaults criptografados:
# List vault history with filtering
list_vault_history --interval_id=abc123 --decrypted_only=true --limit=10
# Get vault statistics
get_vault_stats
Example output:
Total vaults: 150
Decrypted vaults: 75
Average decryption time: 45 seconds
Esquema de Armazenamento
O TimeVault usa DuckDB WASM para armazenamento persistente com o seguinte esquema:
CREATE TABLE timevaults (
id VARCHAR PRIMARY KEY,
encrypted_data TEXT NOT NULL,
round_number BIGINT NOT NULL,
created_at TIMESTAMP NOT NULL,
decrypted_at TIMESTAMP,
interval_id VARCHAR NOT NULL,
metadata JSON
);
-- Indexes for efficient querying
CREATE INDEX idx_interval_id ON timevaults(interval_id);
CREATE INDEX idx_created_at ON timevaults(created_at);
Contribuindo
- Faça um fork do repositório
- Crie sua branch de funcionalidade
- Faça commit das suas alterações
- Envie para a branch
- Crie um Pull Request
Licença
Licença MIT - consulte o arquivo LICENSE para obter detalhes