Back to MCP Servers

PersonalizationMCP

Comprehensive personal data aggregation MCP server with Steam, YouTube, Bilibili, Spotify, Reddit and other platforms integrations. Features OAuth2 authentication, automatic token management, and 90+ tools for gaming, music, video, and social platform data access.

aggregators
By YangLiangwei
586Updated 3 months agoPythonMIT

Installation

npx -y PersonalizationMCP

Configuration

{
  "mcpServers": {
    "PersonalizationMCP": {
      "command": "npx",
      "args": ["-y", "PersonalizationMCP"]
    }
  }
}

How to use

  1. Run the installation command above (if needed)
  2. Open your Claude Code settings file (~/.claude/settings.json)
  3. Add the configuration to the mcpServers section
  4. Restart Claude Code to apply changes

🎯 PersonalizationMCP

License: MIT Python 3.12+ MCP

A unified personal data hub built on MCP (Model Context Protocol) that allows AI assistants to access your digital life from multiple platforms, providing truly personalized and contextual interactions.

📖 中文文档: README_zh.md

🚀 Quick Start (Current Recommended Flow)

  1. Clone and install

    git clone https://github.com/YangLiangwei/PersonalizationMCP.git
    cd PersonalizationMCP
    
    # choose one
    uv venv && uv sync
    # or
    python3 -m venv venv && source venv/bin/activate && pip install -r requirements.txt
  2. Run onboarding (interactive)

    personalhub onboarding --all
  3. Or run onboarding (non-interactive / scriptable)

    personalhub onboarding --platform steam --set STEAM_API_KEY=xxx --set STEAM_USER_ID=7656119xxx
    personalhub onboarding --platform youtube --set YOUTUBE_API_KEY=xxx
  4. Verify and run

    personalhub status
    personalhub serve --profile safe

🧭 How the Project Works Now

  • Unified entry for setup: personalhub onboarding
  • Unified entry for operations: personalhub-manager skill
  • Platform-specific flows: independent skills for Steam / YouTube / Bilibili / Spotify / Reddit
  • No nested skill execution: one skill leads a task at a time

🌟 Features

🎮 Steam Integration

  • Get your game library with detailed statistics and playtime
  • View recent gaming activity and currently playing games
  • Get detailed game information and achievements
  • Compare games with friends and get recommendations
  • Analyze gaming habits and preferences

🎥 YouTube Integration

  • Search YouTube videos and get detailed video information
  • Get channel information and trending videos
  • Access personal data with OAuth2 (subscriptions, playlists, liked videos)
  • Get personalized recommendations based on your viewing history
  • 🔄 Smart Token Management - Automatically detect and refresh expired OAuth2 tokens
  • 🛡️ Maintenance-Free Configuration - Prioritize token files, no need to manually update MCP configuration

📺 Bilibili Integration

  • Get user profile information and statistics
  • Search videos and get detailed video information
  • Access personal data (watch history, favorites, liked videos, coin history)
  • Get following list and user-uploaded videos
  • Browse "to view later" list and personal collections

🎵 Spotify Integration

  • Complete OAuth2 authentication with automatic token management
  • Get user profile and music library data
  • Access top artists, tracks, and recently played music
  • Social features: follow/unfollow artists and playlists
  • Library management: saved tracks, albums, shows, episodes, audiobooks
  • Playlist operations: view and manage personal playlists

💬 Reddit Integration

  • Complete OAuth2 authentication with automatic token management
  • Access user account information, karma breakdown, and preferences
  • Get submitted posts, comments, and user activity overview
  • View saved content, hidden posts, and voting history
  • Explore subscribed communities and moderation permissions
  • Message system access (inbox, unread, sent messages)

📦 Installation and Setup

1. Install Dependencies

Due to the complexity of bilibili-api dependencies (especially lxml compilation issues), installation requires specific steps. Choose one of the methods below:

Option A: Using conda (Recommended)

# 1. Create conda environment
conda create -n personalhub python=3.12
conda activate personalhub

# 2. Install lxml via conda (avoids compilation issues)
conda install lxml

# 3. Install remaining packages
pip install bilibili-api --no-deps
pip install -r requirements.txt

Option B: Using uv

# 1. Install uv if not already installed
# Visit: https://docs.astral.sh/uv/getting-started/installation/

# 2. Create environment and install core dependencies
uv venv
uv sync
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# 3. Install bilibili-api and its dependencies separately (due to version conflicts)
uv pip install lxml  # Install lxml first (uses precompiled wheel)
uv pip install bilibili-api --no-deps  # Install bilibili-api without dependencies
uv pip install aiohttp beautifulsoup4 colorama PyYAML brotli urllib3  # Install required dependencies

Option C: Using pip (Manual Multi-Step Installation)

# 1. Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# 2. Install packages in specific order to avoid compilation issues
pip install lxml  # Install lxml first (uses precompiled wheel)
pip install bilibili-api --no-deps  # Install bilibili-api without dependencies
pip install -r requirements.txt  # Install all other dependencies

⚠️ Important: The bilibili-api package has complex dependency requirements that can cause compilation failures on some systems. The multi-step installation approach ensures compatibility by installing lxml first, then bilibili-api without its conflicting dependencies, and finally all other required packages.

2. Configuration Setup

Copy the example configuration file and fill in your credentials:

cp config.example config

Then edit the config file with your actual API keys and tokens.

🔧 Platform Configuration

🎮 Steam API Setup

📖 Detailed setup guide: platforms/steam/README.md | 中文指南

Quick summary: Get Steam API key and User ID, then configure:

STEAM_API_KEY=your_steam_api_key_here
STEAM_USER_ID=your_steam_user_id_here

🎥 YouTube API Setup

📖 Detailed setup guide: platforms/youtube/README.md | 中文指南

Quick summary:

  1. Get YouTube API key from Google Cloud Console
  2. For personal data access, set up OAuth2 with "TV and Limited Input device" type
  3. Use MCP tools for easy authentication

Configuration:

YOUTUBE_API_KEY=your_youtube_api_key_here
# OAuth2 tokens are managed automatically after setup

📺 Bilibili Setup

📖 Detailed setup guide: platforms/bilibili/README.md | 中文指南

Quick summary: Extract cookies from your browser after logging into Bilibili

Configuration:

BILIBILI_SESSDATA=your_bilibili_sessdata_cookie
BILIBILI_BILI_JCT=your_bilibili_bili_jct_cookie
BILIBILI_BUVID3=your_bilibili_buvid3_cookie

🎵 Spotify API Setup

📖 Detailed setup guide: platforms/spotify/README.md | 中文指南

Quick summary:

  1. Create a Spotify app in Spotify Developer Dashboard
  2. Configure redirect URIs in your app settings
  3. Use MCP tools for OAuth2 authentication with automatic token management

Configuration:

SPOTIFY_CLIENT_ID=your_spotify_client_id_here
SPOTIFY_CLIENT_SECRET=your_spotify_client_secret_here
SPOTIFY_REDIRECT_URI=https://example.com/callback
# OAuth2 tokens are managed automatically after authentication

💬 Reddit API Setup

📖 Detailed setup guide: platforms/reddit/README.md | 中文指南

Quick summary:

  1. Create a Reddit app in Reddit Apps
  2. Configure as "web app" with redirect URI
  3. Use MCP tools for OAuth2 authentication with automatic token management

Configuration:

REDDIT_CLIENT_ID=your_reddit_client_id_here
REDDIT_CLIENT_SECRET=your_reddit_client_secret_here
REDDIT_REDIRECT_URI=http://localhost:8888/callback
# OAuth2 tokens are managed automatically after authentication

🖥️ Cursor Configuration

Add the MCP server to your Cursor settings:

If using conda:

{
  "mcpServers": {
    "personalhub": {
      "command": "/path/to/your/conda/envs/personalhub/bin/python",
      "args": ["/absolute/path/to/your/project/server.py"],
      "env": {
        "STEAM_API_KEY": "your_steam_api_key",
        "STEAM_USER_ID": "your_steam_user_id",
        "YOUTUBE_API_KEY": "your_youtube_api_key",
        "BILIBILI_SESSDATA": "your_bilibili_sessdata",
        "BILIBILI_BILI_JCT": "your_bilibili_bili_jct",
        "BILIBILI_BUVID3": "your_bilibili_buvid3",
        "REDDIT_CLIENT_ID": "your_reddit_client_id",
        "REDDIT_CLIENT_SECRET": "your_reddit_client_secret"
      }
    }
  }
}

If using uv:

{
  "mcpServers": {
    "personalhub": {
      "command": "uv",
      "args": ["run", "python", "/absolute/path/to/your/project/server.py"],
      "env": {
        "STEAM_API_KEY": "your_steam_api_key",
        "STEAM_USER_ID": "your_steam_user_id",
        "YOUTUBE_API_KEY": "your_youtube_api_key",
        "BILIBILI_SESSDATA": "your_bilibili_sessdata",
        "BILIBILI_BILI_JCT": "your_bilibili_bili_jct",
        "BILIBILI_BUVID3": "your_bilibili_buvid3",
        "REDDIT_CLIENT_ID": "your_reddit_client_id",
        "REDDIT_CLIENT_SECRET": "your_reddit_client_secret"
      }
    }
  }
}

If using pip with virtual environment:

{
  "mcpServers": {
    "personalhub": {
      "command": "/absolute/path/to/your/project/venv/bin/python",
      "args": ["/absolute/path/to/your/project/server.py"],
      "env": {
        "STEAM_API_KEY": "your_steam_api_key",
        "STEAM_USER_ID": "your_steam_user_id",
        "YOUTUBE_API_KEY": "your_youtube_api_key",
        "BILIBILI_SESSDATA": "your_bilibili_sessdata",
        "BILIBILI_BILI_JCT": "your_bilibili_bili_jct",
        "BILIBILI_BUVID3": "your_bilibili_buvid3",
        "REDDIT_CLIENT_ID": "your_reddit_client_id",
        "REDDIT_CLIENT_SECRET": "your_reddit_client_secret"
      }
    }
  }
}

Note: For YouTube OAuth2 tokens, we recommend using automatic token management. No need to add YOUTUBE_ACCESS_TOKEN in the above configuration. The system will automatically read and refresh tokens from the youtube_tokens.json file.

🔄 YouTube Smart Token Management

This system implements intelligent YouTube OAuth2 token management with the following features:

✨ Core Features

  • Automatic Expiration Detection: System automatically detects tokens expiring within 5 minutes
  • Auto-Refresh: No manual intervention needed, system automatically refreshes expired tokens
  • Smart Priority: Prioritizes token files, with environment variables as backup
  • Maintenance-Free Configuration: No need to manually update tokens in MCP configuration files

🔧 Token Priority

  1. Explicitly passed access_token parameter (Highest priority)
  2. Auto-refresh tokens from token file (Recommended method)
  3. Tokens from environment variables (Backup method)

The system automatically handles all token management - no manual maintenance required!

🛠️ Available Tools

🎮 Steam Tools

  • get_steam_library() - Get your game library with statistics
  • get_steam_recent_activity() - Get recent gaming activity
  • get_steam_friends() - Get your Steam friends list
  • get_steam_profile() - Get Steam profile information
  • get_player_achievements(app_id) - Get achievements for a specific game
  • get_user_game_stats(app_id) - Get detailed game statistics
  • get_friends_current_games() - See what games your friends are playing
  • compare_games_with_friend(friend_steamid) - Compare game libraries
  • get_friend_game_recommendations(friend_steamid) - Get game recommendations

🎥 YouTube Tools

  • search_youtube_videos(query) - Search for videos
  • `get_video_details(video_

…

View source on GitHub