projectlibre-mcp
# 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
Scored across 4 tools
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.
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.
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.
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.