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:

  1. 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
  2. TimeKeeper: Gerencia intervalos com:

    • Operações de criação/pausa/retomada
    • Rastreamento de progresso
    • Limpeza automática
    • Integração com fuzzing
  3. 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
  4. 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

  1. Faça um fork do repositório
  2. Crie sua branch de funcionalidade
  3. Faça commit das suas alterações
  4. Envie para a branch
  5. Crie um Pull Request

Licença

Licença MIT - consulte o arquivo LICENSE para obter detalhes