Personal MCP Server
A Model Context Protocol (MCP) server for managing personal information with dynamic topic-based organization, OTP authentication, and encryption support.
Features
- Topic-Based Organization: Files organized by category (tasks, meetings, contact, personal, etc.)
- Dynamic Categories: No predefined restrictions - create any category that fits your needs
- Rich Metadata: Support for subcategories, tags, and timestamps
- Batch Operations: Efficient bulk operations for saving and retrieving data
- Encryption Support: Optional AES-256 encryption for sensitive data
- OTP Authentication: Time-based OTP for secure access to encrypted data
- Backup System: Automatic backups before data modifications
Quick Start
Installation
npm install
npm run build
Basic Usage - Save to .personal-context-data in user home directory
{
"mcpServers": {
"personal-info": {
"command": "node",
"args": [
"<path/to/personal-mcp>/dist/index.js"
]
}
}
}
Environment Variables
# Data storage
PERSONAL_INFO_DATA_DIR=./data
PERSONAL_INFO_MAX_FILE_SIZE=1048576 # 1MB
PERSONAL_INFO_BACKUP_ENABLED=true
PERSONAL_INFO_BACKUP_DIR=./backups
# Security (optional)
PERSONAL_INFO_ENCRYPTION_ENABLED=false
PERSONAL_INFO_ENCRYPTION_KEY=""
Configuration Example
{
"mcpServers": {
"shared-memory-info": {
"command": "node",
"args": [
"<path/to/personal-mcp>/dist/index.js"
]
"env": {
"PERSONAL_INFO_DATA_DIR": "<path/to/shared/folder>/shared-mcp-memory",
}
}
}
}
Available Tools
Core Information Management
list_available_personal_info: List all available information by categoryupdate_personal_info: Update existing personal informationdelete_personal_info: Delete specific personal informationbatch_get_personal_info: Retrieve multiple categories at oncebatch_save_personal_info: Save multiple items efficiently
Security & Authentication
setup_otp: Set up OTP authentication for encryptionverify_otp: Verify OTP token to access encrypted dataotp_status: Check current OTP configuration statuslock_otp: Immediately lock current OTP session and block accessdisable_otp: Disable OTP and encryption
Topic-Based Organization
File Structure example (auto generated)
Information is organized by topic/category in a simple directory structure for example:
data/
├── tasks/
│ ├── project-alpha-planning.md
│ └── meeting-preparation.md
├── contact/
│ ├── phone-personal-mobile.md
│ └── email-work.md
├── meetings/
│ ├── team-standup-2024-01-15.md
│ └── client-review-2024-01-16.md
├── personal/
│ ├── hobbies.md
│ └── preferences.md
└── health/
└── allergies.md
File Format
Each file uses YAML frontmatter with markdown content:
---
category: contact
subcategory: personal-mobile
created: 2024-01-15T10:30:00Z
updated: 2024-01-15T10:30:00Z
tags: [contact, mobile, primary]
---
# Phone - Personal Mobile
+1 (555) 123-4567
## Notes
- Primary contact number
- Available 9 AM - 10 PM PST
- Supports text messages
Security Features
OTP Authentication
For sensitive data, enable OTP authentication:
- Setup OTP: Use
setup_otptool to generate QR code and backup codes - Verify Access: Use
verify_otptool before accessing encrypted data - Check Status: Use
otp_statustool to see current authentication state - Lock Session: Use
lock_otptool to immediately terminate access when stepping away
Encryption
- AES-256 encryption for file contents
- Stable encryption keys (not time-based)
- OTP used for access control, not key derivation
Development
Building and Testing
# Install dependencies
npm install
# Build TypeScript and watch for changes
npm run dev
License
MIT License - see LICENSE file for details.
Vibe Coding Disclaimer ⚠️
The code is written by AI, so it may not be the best code. Use it at your own risk.
