Skip to main content
Glama
augmdc

projectlibre-mcp

by augmdc
README.md
# projectlibre-mcp

Read-only [MCP](https://modelcontextprotocol.io/) server for
[ProjectLibre](https://www.projectlibre.com/) `.pod` files. Lets Claude Code
(or any MCP client) find your project files, summarize Gantt charts, inspect
tasks, and analyze schedules — without opening ProjectLibre.

`.pod` parsing is done by [MPXJ](https://www.mpxj.org/) via JPype.

## Requirements

- Python 3.12+
- Java 11+ on the PATH (required by MPXJ; e.g. `brew install --cask corretto`)

## Setup

    git clone https://github.com/augmdc/projectlibre-mcp.git
    cd projectlibre-mcp
    python3 -m venv .venv
    .venv/bin/pip install -e .

## Register with Claude Code

From the repo directory:

    claude mcp add --scope user projectlibre -- \
      "$(pwd)/.venv/bin/python" -m projectlibre_mcp.server

Restart Claude Code and ask something like *"Summarize my project Gantt
chart"*. For other MCP clients, configure a stdio server with the same
command.

## Tools

- `list_projects()` — find `.pod` files under your search roots
- `get_project_summary(path)` — dates, counts, % complete, top-level outline
- `list_tasks(path, incomplete_only?, start_after?, finish_before?)` — tasks
  with hierarchy, dates, and predecessors
- `analyze_schedule(path, as_of?, horizon_days?)` — overdue / upcoming /
  critical-path tasks

## Configuration

- `POD_SEARCH_ROOTS` — colon-separated directories `list_projects` scans
  (default `~/Desktop:~/Documents`). Pass it at registration time with
  `claude mcp add --scope user --env POD_SEARCH_ROOTS="~/Projects" ...`.

## Development

    .venv/bin/pip install -e . pytest
    .venv/bin/pytest

Set `POD_TEST_FILE=/path/to/some.pod` to enable the smoke test against a real
file.

## Limitations

Read-only. `.pod` is ProjectLibre's serialized-Java format; no library can
safely write it. Planned edit path: write MS Project XML for ProjectLibre to
open and re-save as `.pod`.

## License

MIT

TDQS

A4.2/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a distinct and clear purpose: file discovery (list_projects), project overview (get_project_summary), task listing with filters (list_tasks), and schedule analysis (analyze_schedule). There is no overlap or ambiguity among them.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case (list_projects, list_tasks, get_project_summary, analyze_schedule). This makes the naming predictable and easy to understand.

Tool Count5/5

With 4 tools, the set is well-scoped for a ProjectLibre analysis server. Each tool serves a necessary function without being excessive or insufficient for common project management queries.

Completeness4/5

The tools cover the core analysis workflow: finding files, summarizing, listing tasks with filters, and performing schedule analysis. Minor gaps exist (e.g., no tool for detailed single-task info or resource data), but these do not hinder typical use cases for a read-only analytical server.

Maintenance

ActivityStale
ResponsivenessNo issues