Metadata-Version: 2.5
Name: moncapro
Version: 0.1.0
Summary: Critical path (CPM) project planning with Monte Carlo simulation, scenarios and MCP interface
Project-URL: Homepage, https://github.com/mistamichael/moncapro
Project-URL: Issues, https://github.com/mistamichael/moncapro/issues
Author: Michael Stangl
License-Expression: MIT
License-File: LICENSE
Keywords: cpm,critical-path,gantt,mcp,monte-carlo,project-planning,scheduling
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Office/Business :: Scheduling
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: holidays>=0.93
Requires-Dist: pydantic>=2.0.0
Provides-Extra: all
Requires-Dist: kaleido>=1.0; extra == 'all'
Requires-Dist: markdown>=3.0; extra == 'all'
Requires-Dist: mcp<2,>=1.26; extra == 'all'
Requires-Dist: openpyxl>=3.0.0; extra == 'all'
Requires-Dist: plotly>=6.1; extra == 'all'
Requires-Dist: requests>=2.31.0; extra == 'all'
Provides-Extra: charts
Requires-Dist: kaleido>=1.0; extra == 'charts'
Requires-Dist: plotly>=6.1; extra == 'charts'
Provides-Extra: dev
Requires-Dist: build; extra == 'dev'
Requires-Dist: kaleido>=1.0; extra == 'dev'
Requires-Dist: markdown>=3.0; extra == 'dev'
Requires-Dist: mcp<2,>=1.26; extra == 'dev'
Requires-Dist: openpyxl>=3.0.0; extra == 'dev'
Requires-Dist: plotly>=6.1; extra == 'dev'
Requires-Dist: pytest>=9.0.0; extra == 'dev'
Requires-Dist: requests>=2.31.0; extra == 'dev'
Requires-Dist: twine; extra == 'dev'
Provides-Extra: excel
Requires-Dist: openpyxl>=3.0.0; extra == 'excel'
Provides-Extra: html
Requires-Dist: markdown>=3.0; extra == 'html'
Provides-Extra: mcp
Requires-Dist: mcp<2,>=1.26; extra == 'mcp'
Provides-Extra: svg
Requires-Dist: requests>=2.31.0; extra == 'svg'
Description-Content-Type: text/markdown

# moncapro

Critical path (CPM) project planning with Monte Carlo simulation, scenarios and MCP interface.

Projects are plain JSON files. `moncapro` computes the critical path in working days, levels
resources (people, vehicles), respects vacation, part-time work and holidays, compares
what-if scenarios and simulates schedule risk with Monte Carlo runs. An MCP server lets AI
clients (e.g. Claude Code) build and calculate projects through tools.

## Installation

```bash
pip install moncapro              # core: model, CPM, leveling, simulation, TXT/JSON/Markdown export
pip install "moncapro[all]"       # + Excel, HTML, SVG, Plotly charts, MCP server
```

Extras: `excel`, `html`, `svg`, `charts`, `mcp`, `all`. Python 3.10 or newer.

## Quickstart

```python
from moncapro import load_project, build_schedule

project = load_project("my_project.json")
schedule = build_schedule(project)
print(schedule.cpm.project_duration)
```

Command line:

```bash
moncapro --project my_project.json --export json,txt,md
```

MCP server (needs the `mcp` extra):

```bash
moncapro-mcp --http --port 8765
claude mcp add --transport http moncapro http://127.0.0.1:8765/mcp
```

Example projects ship with the package (`moncapro.paths.get_examples_dir()`).

## Configuration

The packaged `cfg/` (working hours, calendar, export layout) is used by default. Override it with
a directory of your own: `--cfg-dir` or `MONCAPRO_CFG`.

| Variable | Meaning | Default |
|---|---|---|
| `MONCAPRO_CFG` | configuration directory | packaged `cfg/` |
| `MONCAPRO_RESULTS` | export output | `./results` |
| `MONCAPRO_WORK` | working files, backups | current directory |
| `MONCAPRO_LOG` | log files | `./log` |
| `MONCAPRO_DATA` | CLI input projects | `./data` |

## Documentation

| Topic | English | Deutsch |
|---|---|---|
| Command line | [doc/en/cli.md](doc/en/cli.md) | [doc/de/cli.md](doc/de/cli.md) |
| Project file format | [doc/en/project-format.md](doc/en/project-format.md) | [doc/de/projektformat.md](doc/de/projektformat.md) |
| Configuration | [doc/en/configuration.md](doc/en/configuration.md) | [doc/de/config_doc.md](doc/de/config_doc.md) |
| AI interface (MCP) | [doc/en/ai-interface.md](doc/en/ai-interface.md) | [doc/de/ki-schnittstelle.md](doc/de/ki-schnittstelle.md) |
| Examples | [doc/en/examples.md](doc/en/examples.md) | [doc/de/examples.md](doc/de/examples.md) |
| Critical path method, dependency types, actuals and baseline | | [doc/de/critical-path-method.md](doc/de/critical-path-method.md), [doc/de/dependency_types.md](doc/de/dependency_types.md), [doc/de/termine-und-ist.md](doc/de/termine-und-ist.md) |

Pre-computed example results: [doc/result_examples/](doc/result_examples/README.md).

## Development

```bash
python -m venv .venv && .venv/bin/pip install -e ".[dev]"    # Windows: .venv\Scripts\pip
python -m pytest
```

## License

MIT, see [LICENSE](LICENSE).
