Skip to main content
Glama
Personal Context MCP Server

Personal Context MCP Server

by matipojo

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

Related MCP server: MCP Personal Assistant

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 category

  • update_personal_info: Update existing personal information

  • delete_personal_info: Delete specific personal information

  • batch_get_personal_info: Retrieve multiple categories at once

  • batch_save_personal_info: Save multiple items efficiently

Security & Authentication

  • setup_otp: Set up OTP authentication for encryption

  • verify_otp: Verify OTP token to access encrypted data

  • otp_status: Check current OTP configuration status

  • lock_otp: Immediately lock current OTP session and block access

  • disable_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:

  1. Setup OTP: Use setup_otp tool to generate QR code and backup codes

  2. Verify Access: Use verify_otp tool before accessing encrypted data

  3. Check Status: Use otp_status tool to see current authentication state

  4. Lock Session: Use lock_otp tool 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.

Available Tools

10 tools
batch_get_personal_infoBatch Get Personal InformationA

Retrieve multiple categories of personal information in a single request. Retrieve personal information based on category and current permissions, you can get a wide range of information, personal, pets, family, friends, work, etc and even more. You must list once all the categories with the list_available_personal_info tool before using this tool to understand what you can get.

Inputs: requests (required), has_list_available_personal_info.

batch_save_personal_infoBatch Save Personal InformationB

Save multiple pieces of personal information in a single request. More efficient than making multiple individual save requests.

Inputs: items (required).

delete_personal_infoDelete Personal InformationD

Delete specific personal information

Inputs: category (required), subcategory.

disable_otpDisable OTPB

Disable OTP authentication and encryption for personal data.

Inputs: no named parameters.

list_available_personal_infoList Available Personal InformationC

List all available personal information within current permissions

Inputs: category_filter.

lock_otpLock OTP SessionA

Immediately lock the current OTP session and block access to encrypted personal data. Requires re-verification with verify_otp to access data again.

Inputs: no named parameters.

otp_statusOTP StatusB

Check the current OTP configuration status and whether OTP verification is required.

Inputs: no named parameters.

setup_otpSetup OTPC

Set up One-Time Password (OTP) for encrypted personal data. On MCP App-capable clients, the QR code and backup codes appear in the app panel; otherwise use the structured result.

Inputs: issuer, label, digits, period.

update_personal_infoUpdate Personal InformationD

Update existing personal information

Inputs: category (required), subcategory, content, tags.

verify_otpVerify OTPA

Verify an OTP token to access encrypted personal data. Required before reading encrypted information.

Inputs: token (required), useBackupCode, userId.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3/5.0

    Scored across 10 tools

    Disambiguation4/5

    Most tools have distinct purposes, but there is some overlap between batch_get_personal_info and list_available_personal_info, as both involve listing or retrieving personal info categories. However, their primary functions (retrieving data vs. listing available categories) are differentiated enough to avoid major confusion. The OTP-related tools (setup_otp, verify_otp, lock_otp, disable_otp, otp_status) are clearly distinct from the personal info management tools.

    Naming Consistency5/5

    All tool names follow a consistent snake_case pattern with clear verb_noun structures. Personal info tools use verbs like get, save, delete, update, and list, while OTP tools use verbs like setup, verify, lock, disable, and status. This consistency makes the tool set predictable and easy to understand.

    Tool Count5/5

    With 10 tools, the count is well-scoped for managing personal information and OTP security. It covers core operations (CRUD for personal data, OTP lifecycle) without being excessive or too sparse. Each tool serves a clear purpose, and there are no redundant or trivial additions.

    Completeness4/5

    The tool set provides strong coverage for personal info management (create/retrieve via batch, update, delete, list available) and OTP security (setup, verify, lock, disable, status). A minor gap is the lack of a tool for creating new personal info from scratch (e.g., create_personal_info), as batch_save_personal_info implies updating existing data, but agents can work around this using batch operations. Overall, it supports most workflows effectively.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers