https://github.com/bmorphism/slowtime-mcp-server
A Model Context Protocol server for secure time-based operations with timing attack protection and timelock encryption
https://github.com/bmorphism/slowtime-mcp-server
Last synced: 4 months ago
JSON representation
A Model Context Protocol server for secure time-based operations with timing attack protection and timelock encryption
- Host: GitHub
- URL: https://github.com/bmorphism/slowtime-mcp-server
- Owner: bmorphism
- Created: 2025-01-02T01:23:23.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-01-02T01:23:33.000Z (6 months ago)
- Last Synced: 2025-02-14T12:19:06.361Z (4 months ago)
- Language: TypeScript
- Size: 12.7 KB
- Stars: 1
- Watchers: 1
- Forks: 3
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- mcp-index - Slowtime - Provides secure operations for time-based tasks, featuring timing attack protection and timelock encryption. (Security)
README
# Slowtime MCP Server
A Model Context Protocol server for secure time-based operations with timing attack protection and timelock encryption.
```
┌──────────────┐
│ Claude │
│ Desktop │
└──────┬───────┘
│
▼
┌──────────────┐ ┌──────────────┐
│ Timelock │◄──────────────────►│ Slowtime │
│ Encryption │ │ MCP │
└──────────────┘ │ Server │
└──────┬───────┘
│
▼
┌──────────────┐ ┌──────────────┐
│ Timing │◄─────────────────►│ Interval │
│ Protection │ │ Manager │
└──────────────┘ └──────────────┘```
## Features
### Time Fuzzing & Security
```
Input Time ──┐
┌▼─────────────┐
│ Random Fuzz │ ┌─────────────┐
│ (100-5000ms) ├────►│ Jittered │
└─────────────┘ │ Timestamp │
└─────────────┘
```### Timelock Encryption Flow
```
Data ───────┐
┌▼────────────┐ ┌────────────┐ ┌────────────┐
│ Encrypt │ │ Interval │ │ League of │
│ with ├───►│ Duration ├───►│ Entropy │
│ Timelock │ │ Remaining │ │ Network │
└────────────┘ └────────────┘ └────────────┘
```### Interval Management
```
[Start]──►[Active]──┐
▲ │
│ ▼
[Resume] [Pause]
│ ▲
▼ │
[Paused]
```## Installation
Add to your Claude Desktop config at `~/Library/Application Support/Claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"slowtime": {
"command": "node",
"args": ["/path/to/slowtime-mcp-server/build/index.js"]
}
}
}
```## Usage
### Basic Interval Commands
```
start_interval "Focus Time" 25 ───► [25min Interval Created]
│
check_interval ◄───────────────────┘
│
pause_interval ◄───────────────────┘
│
resume_interval ◄───────────────────┘
```### Timelock Encryption
```
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"
```## Security Features
### Timing Attack Prevention
```
Operation ──┬──► Random Delay (100-5000ms)
│
├──► Jittered Timestamps
│
└──► Constant-time Comparisons
```### Timelock Security & Storage
```
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Encrypt │ │ Distributed │ │ Timelock │ │ DuckDB │
│ Data ├───►│ Randomness ├───►│ Protected ├───►│ TimeVault │
│ │ │ Network │ │ Data │ │ Storage │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
│ ▲
│ ┌──────────────┘
▼ │
┌─────────────┴─┐
│ Analytics │
│ & Statistics │
└───────────────┘
```### TimeVault Analytics
```
Query History ──┐
├──► ┌─────────────┐
Filter Options ┘ │ DuckDB │ ┌─────────────┐
│ WASM ├───►│ Analytics │
Vault Stats ───────►│ Engine │ │ Results │
└─────────────┘ └─────────────┘
```## Architecture
The server consists of four main components:
1. **TimeFuzz**: Provides timing attack protection through:
- Random duration fuzzing
- Constant-time comparisons
- Jittered timestamps
- Random operation delays2. **TimeKeeper**: Manages intervals with:
- Creation/pause/resume operations
- Progress tracking
- Automatic cleanup
- Fuzzing integration3. **TimeLock**: Handles encryption with:
- drand network integration
- Interval-based decryption
- Automatic cleanup
- Secure random number generation4. **TimeVault**: Provides persistent storage and analytics:
- DuckDB WASM-based storage
- Historical tracking of encrypted data
- Analytics and statistics
- Query capabilities with filtering## TimeVault Commands
Query historical data and statistics about encrypted timevaults:
```
# List vault history with filtering
list_vault_history --interval_id=abc123 --decrypted_only=true --limit=10# Get vault statistics
get_vault_statsExample output:
Total vaults: 150
Decrypted vaults: 75
Average decryption time: 45 seconds
```## Storage Schema
The TimeVault uses DuckDB WASM for persistent storage with the following schema:
```sql
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);
```## Contributing
1. Fork the repository
2. Create your feature branch
3. Commit your changes
4. Push to the branch
5. Create a Pull Request## License
MIT License - see LICENSE file for details