io.github.zseta/progi
MCP-native workflow engine: teach agents your processes once, they execute them consistently.
Open source Open in the app JSON README (API)
About
MCP-native workflow engine: teach agents your processes once, they execute them consistently.
Details
- Kind
- MCP servers
- Topic
- No topic detected
- Publisher
- zseta
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 0.3.2
- Stars
- 2
- Open pull requests
- 2
- Last push
- 2026-07-05T13:14:01Z
- Repository state
- ativo
- Language
- Python
- License
- MIT
- Added
- 2026-08-29 04:01:43
- Updated
- 2026-08-29 04:01:43
- Origin id
io.github.zseta/progi
README
# Progi - MCP-native Workflow Engine
<img src="docs/images/logo/progi-logo-small.png" alt="Progi" width="120" />
Progi teaches your agent how **you** like to get things done. So you can do your best work without re-explaining your process or losing context between sessions.
[](LICENSE)
[](https://pypi.org/project/progi/)
[](https://modelcontextprotocol.io)
---
## Get started
Add Progi to your MCP client config (GH Copilot / Cursor / Claude Code / etc):
```json
{
"mcpServers": {
"progi": {
"command": "uvx",
"args": ["progi"]
}
}
}
```
Progi Monitoring starts automatically at `http://127.0.0.1:8000`.
If you want to start Monitoring on a different port:
```json
{
"mcpServers": {
"progi": {
"command": "uvx",
"args": ["progi"],
"env": {
"PROGI_WEB_PORT": "8080"
}
}
}
}
```
---
## How it works
**1. Describe your workflow**
*"Hey Progi, help me create workflow for creating integrations, reviewing code, and publishing PRs."*
Describe your process in plain language. You can be detailed or just provide a rough idea. Progi stores it as a structured workflow with per-step playbooks.
**2. Run tasks, stay in the loop**
*"Hey Progi, start a new task, we need to review a new docs PR in the repo."*
Your agent loads the workflow, works through each step using your playbooks, and loops you in at critical checkpoints to review output.
**3. Monitor progress**
Progi Monitoring gives you a live view of every running and completed task — status, progress, and the full output history across all your workflows.
**4. Optimize as you go**
Tweak playbooks in Progi Monitoring between runs. Because workflows live in a database and survive context resets, every future task picks up your changes automatically — your process gets sharper with each iteration.
---
## MCP Tools
### Work loop
| Tool | Description |
|---|---|
| `create_task` | Create a new task under a given workflow (status `todo`); returns a preview of its first step |
| `list_tasks` | List tasks, optionally filtered by status and/or workflow |
| `start_or_continue_task` | Main work-loop entry point — starts or resumes a task and returns the current step's playbook, input data, and output spec |
| `update_progress_notes` | Overwrite a task's progress notes (mid-step save point) |
| `finish_step` | Mark the current step complete, store its output, and advance to the next step (or mark done) |
### Workflow authoring
| Tool | Description |
|---|---|
| `get_process_skeleton_prompt` | Return the Pass 1 system prompt for turning a plain-language description into a structured workflow skeleton |
| `get_playbook_authoring_prompt` | Return the Pass 2 system prompt for authoring a step's playbook (injects workflow context) |
| `save_workflow` | Persist a new workflow, its steps, and playbooks |
| `list_workflows` | Return all workflows with their ordered steps |
Authoring is two passes: Pass 1 turns a plain-language description into a structured skeleton; Pass 2 authors each step's playbook. `save_workflow` persists both.
---
## Configuration
| Variable | Default | Purpose |
|---|---|---|
| `PROGI_DB_PATH` | OS data dir (`platformdirs`) | SQLite file location |
| `PROGI_WEB_HOST` | `127.0.0.1` | Web UI bind host |
| `PROGI_WEB_PORT` | `8000` | Web UI port |
| `PROGI_NO_WEB` | `0` | Set to `1` to disable the web UI |
Run modes: `uvx progi` (MCP + web UI), `uvx progi --no-web` (MCP only), `uvx progi-web` (web UI only).
> Use an absolute path for `PROGI_DB_PATH`
<!-- mcp-name: io.github.zseta/progi -->