Skip to main content
Glama
benro

Personal Productivity MCP Server

by benro

Personal Productivity MCP Server

A multi-domain Model Context Protocol (MCP) server providing Claude with tools to manage different aspects of personal productivity.

Overview

This MCP server provides tools across three domains:

  1. Career (Phase 1 - Current): Job search automation, application tracking, resume analysis

  2. Fitness (Phase 3 - Planned): Health tracking, workout management, progress analysis

  3. Family (Phase 4 - Planned): Kids billing, expense tracking, Math Academy monitoring

Current Features (Phase 1)

Career Domain Tools

Read Tools:

  • career_search_greenhouse - Search jobs on Greenhouse job boards

  • career_search_lever - Search jobs on Lever job boards

  • career_get_applications - Get tracked applications with optional status filter

Write Tools:

  • career_track_application - Track a new job application

  • career_update_application - Update application status and notes

Analysis Tools:

  • career_analyze_pipeline - Get statistics about your application pipeline

Quick Start

Prerequisites

  • Docker and Docker Compose

  • Claude Desktop or compatible MCP client

Setup

  1. Clone the repository:

cd personal-productivity-mcp
  1. Copy the environment template:

cp .env.example .env
  1. Build and run with Docker:

docker-compose up --build

Connecting to Claude Desktop

Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "personal-productivity": {
      "command": "docker",
      "args": [
        "exec",
        "-i",
        "personal-productivity-mcp",
        "python",
        "-m",
        "mcp_server.server"
      ]
    }
  }
}

Or for local development without Docker:

{
  "mcpServers": {
    "personal-productivity": {
      "command": "python",
      "args": ["-m", "mcp_server.server"],
      "cwd": "/path/to/personal-productivity-mcp",
      "env": {
        "PYTHONPATH": "/path/to/personal-productivity-mcp/src"
      }
    }
  }
}

Usage Examples

Searching for Jobs

Search for software engineering jobs at Anthropic

Claude will use the career_search_greenhouse and career_search_lever tools to find available positions.

Tracking Applications

Track a new application:
- Company: Anthropic
- Title: Senior Software Engineer
- URL: https://jobs.lever.co/anthropic/example
- Status: applied

Viewing Your Pipeline

Show me my application pipeline statistics

Project Structure

personal-productivity-mcp/
├── src/
│   └── mcp_server/
│       ├── __init__.py
│       ├── server.py              # Main MCP server
│       ├── models.py               # Pydantic data models
│       ├── config.py               # Configuration management
│       ├── domains/
│       │   └── career/
│       │       ├── read.py         # Read tools
│       │       ├── write.py        # Write tools
│       │       ├── analysis.py     # Analysis tools
│       │       └── scrapers/
│       │           ├── greenhouse.py
│       │           └── lever.py
│       └── utils/
│           ├── storage.py          # Database utilities
│           ├── logging.py          # Logging setup
│           └── cache.py            # Caching utilities
├── data/                           # SQLite database storage
├── Dockerfile
├── docker-compose.yml
├── pyproject.toml
└── README.md

Development

Local Development Setup

  1. Create a virtual environment:

python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. Install dependencies:

pip install -e ".[dev]"
  1. Install Playwright browsers:

playwright install chromium
  1. Run the server:

python -m mcp_server.server

Running Tests

pytest

Code Formatting

black src/
ruff check src/

Configuration

Environment variables (see .env.example):

  • MCP_SERVER_PORT - Server port (default: 3000)

  • LOG_LEVEL - Logging level (default: INFO)

  • DATABASE_PATH - Path to SQLite database

  • CACHE_TTL_JOBS - Job listing cache TTL in seconds (default: 3600)

  • PLAYWRIGHT_HEADLESS - Run Playwright in headless mode (default: true)

Roadmap

  • Phase 1: Basic career domain with Greenhouse/Lever scrapers

  • Phase 2: Complete career domain with resume analysis

  • Phase 3: Fitness domain with health tracking

  • Phase 4: Family domain with billing automation

  • Phase 5: Polish and monitoring

Architecture Decisions

Why Docker?

  • Avoids local Python environment issues (especially with Playwright)

  • Consistent deployment across different machines

  • Easy to run in home lab environment

Why SQLite?

  • Simple file-based storage, no separate database server needed

  • Perfect for single-user personal productivity use case

  • Easy backups (just copy the database file)

Why MCP?

  • Native integration with Claude

  • Structured tool interface with validation

  • Async-first design for scraping and API calls

Contributing

This is a personal project, but feel free to fork and adapt for your own needs!

License

MIT

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/benro/personal-productivity-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server