Skip to main content
Glama
cygnusyang

OmniPlan MCP Server

by cygnusyang

OmniPlan MCP Server

A Model Context Protocol (MCP) server that lets Claude read and analyze project schedule files โ€” OmniPlan (.oplx) and Microsoft Project (.mpp) formats.

Ask Claude questions like:

  • "What's the current project schedule?"

  • "List all milestones and their dates"

  • "Show me tasks related to the robotic arm"

  • "What's the overall progress percentage?"

Features

Feature

Description

๐Ÿ“‚ Read .mpp

Parse Microsoft Project files via OmniPlan bridge

๐Ÿ“‚ Read .oplx

Direct XML parsing (no OmniPlan needed)

๐Ÿ›๏ธ Full hierarchy

Groups, tasks, milestones with dates and progress

๐Ÿ” Search

Find tasks by keyword across the entire schedule

๐Ÿ‘ค Resources

List all human resources and assignments

๐Ÿ“Š Summary

Phase overview, progress statistics, timeline

๐Ÿ”’ Safe concurrency

Cross-process lock prevents conflicts when multiple Claude sessions run

Related MCP server: Apple Calendar MCP Server

Prerequisites

Requirement

Notes

macOS

Required (for AppleScript/OmniPlan bridge)

Python 3.10+

For running the MCP server

OmniPlan

Only needed for .mpp files; .oplx works without it

Install OmniPlan (optional โ€” only for .mpp files)

brew install --cask omniplan

First run: macOS may prompt for Accessibility/Automation permissions when OmniPlan is called via AppleScript. Grant them in System Settings โ†’ Privacy & Security โ†’ Automation.

Quick Start

1. Install

# Option A: One-line installer (recommended)
curl -fsSL https://raw.githubusercontent.com/cygnusyang/omniplan-mcp/main/install.sh | bash

# Option B: Manual clone
git clone https://github.com/cygnusyang/omniplan-mcp.git
cd omniplan-mcp
pip install -e .

2. Configure Claude Code

Add to your ~/.claude/settings.json:

{
  "mcpServers": {
    "omniplan": {
      "command": "uv",
      "args": [
        "run",
        "--directory", "/Users/yourusername/.local/share/omniplan-mcp",
        "omniplan-mcp"
      ],
      "env": {}
    }
  }
}
{
  "mcpServers": {
    "omniplan": {
      "command": "uvx",
      "args": ["omniplan-mcp"],
      "env": {}
    }
  }
}
{
  "mcpServers": {
    "omniplan": {
      "command": "/path/to/python3",
      "args": ["-m", "omniplan_mcp"],
      "env": {
        "PYTHONPATH": "/path/to/omniplan-mcp/src"
      }
    }
  }
}

3. Restart Claude Code

The MCP server will start automatically. You can now ask Claude about your project files!

Usage Examples

Read a project schedule

ไฝ ๏ผšๅธฎๆˆ‘่ฏปๅ– PLB1011 ้กน็›ฎ่ฎกๅˆ’๏ผŒ็œ‹็œ‹ๆœ‰ๅ“ชไบ›้˜ถๆฎต
Claude๏ผš่ฐƒ็”จ read_schedule โ†’ ๆ˜พ็คบๅฎŒๆ•ดไปปๅŠกๆ ‘

List milestones

ไฝ ๏ผšๅˆ—ๅ‡บๆ‰€ๆœ‰้‡Œ็จ‹็ข‘่Š‚็‚น
Claude๏ผš่ฐƒ็”จ list_milestones โ†’ ๆ˜พ็คบๆ‰€ๆœ‰ โ—‡ ้‡Œ็จ‹็ข‘

Search for tasks

ไฝ ๏ผšๆœ็ดขๆ‰€ๆœ‰ๅ…ณไบŽ"ๆœบๆขฐ่‡‚"็š„ไปปๅŠก
Claude๏ผš่ฐƒ็”จ search_tasks โ†’ ๆ˜พ็คบๅŒน้…็š„ไปปๅŠกๅˆ—่กจ

Project summary

ไฝ ๏ผš่ฟ™ไธช้กน็›ฎ็š„ๆ•ดไฝ“่ฟ›ๅบฆๆ€Žไนˆๆ ท๏ผŸ
Claude๏ผš่ฐƒ็”จ schedule_summary โ†’ ๆ˜พ็คบ้˜ถๆฎตๆฆ‚่งˆๅ’Œ่ฟ›ๅบฆ็ปŸ่ฎก

Tools Reference

Tool

Description

Parameters

read_schedule

Full task hierarchy with dates and progress

filepath (required), format: tree/flat/json

list_milestones

All milestone tasks

filepath

list_resources

All human resources

filepath

search_tasks

Search tasks by keyword

filepath, keyword

schedule_summary

Phase overview and progress stats

filepath

How It Works

.mpp file โ”€โ”€โ†’ OmniPlan (AppleScript) โ”€โ”€โ†’ .oplx (XML) โ”€โ”€โ†’ MCP Server โ”€โ”€โ†’ Claude
                          โ†‘
.oplx file โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€ direct XML parsing โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

For .oplx files

Direct XML parsing โ€” fast, no external dependencies.

For .mpp files

  1. MCP server opens the .mpp file in OmniPlan via AppleScript

  2. Exports to .oplx format

  3. Parses the exported XML

  4. Cleans up temporary files

A cross-process file lock prevents AppleScript conflicts when multiple Claude Code sessions run simultaneously.

Project Structure

omniplan-mcp/
โ”œโ”€โ”€ install.sh                  # One-click installer
โ”œโ”€โ”€ pyproject.toml              # Package metadata (PyPI-ready)
โ”œโ”€โ”€ README.md                   # This file
โ”œโ”€โ”€ LICENSE                     # MIT license
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ src/
โ”‚   โ””โ”€โ”€ omniplan_mcp/
โ”‚       โ”œโ”€โ”€ __init__.py         # Package version
โ”‚       โ”œโ”€โ”€ __main__.py         # CLI entry point
โ”‚       โ”œโ”€โ”€ server.py           # MCP server (tools & handlers)
โ”‚       โ”œโ”€โ”€ parser.py           # .mpp / .oplx file parsing
โ”‚       โ””โ”€โ”€ lock.py             # Cross-process file lock
โ””โ”€โ”€ tests/
    โ””โ”€โ”€ test_parser.py          # Unit tests

Development

# Clone
git clone https://github.com/cygnusyang/omniplan-mcp.git
cd omniplan-mcp

# Install in editable mode
pip install -e .

# Run tests
python -m pytest tests/

# Run the server directly (stdio)
python -m omniplan_mcp

Publishing to PyPI

# Install build tools
pip install build twine

# Build
python -m build

# Upload to TestPyPI first
twine upload --repository testpypi dist/*

# Upload to PyPI
twine upload dist/*

Requirements

  • Python 3.10+

  • macOS (for OmniPlan AppleScript bridge)

  • OmniPlan (only for .mpp files; optional for .oplx)

Limitations

  • .mpp parsing requires OmniPlan to be installed

  • Only supports macOS (AppleScript dependency)

  • Does not modify .mpp files โ€” read-only

License

MIT License โ€” see LICENSE for details.

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

โ€“Maintainers
โ€“Response time
โ€“Release cycle
โ€“Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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/cygnusyang/omniplan-mcp'

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