
pypreset
io.github.KaiErikNiermannPublished by GitHub account KaiErikNiermannv0.4.0Updated Oct 24, 2026
Scaffold Python projects from YAML presets, augment existing projects with CI/tests.
Overview
Scaffolds and augments Python projects from YAML presets, generating CI workflows, tests, Docker, docs and PyPI metadata for an AI assistant.
- What you can do
- Create projects from built-in or custom YAML presets with overrides for package manager, layout, type checker and tooling
- Add CI workflows, tests, Dockerfiles, devcontainers, docs, tox and README files to an existing project
- Validate project structure and verify GitHub Actions workflows locally with act
- List and show presets, and read or update user-level defaults
- Set PyPI metadata in pyproject.toml and generate badge markdown
- When to use it
- Useful when starting a new Python package or CLI tool and wanting a consistent, tooled-up skeleton, or when retrofitting CI, tests, Docker or documentation onto an existing Python repository without hand-writing config files.
- Requirements
- Runs as a local stdio process, typically via uvx with the pypreset[mcp] package (or a local pip install). Needs Python and uv or pip. Workflow verification needs act, and full runs need Docker; release commands need the gh CLI installed and authenticated. No API keys or environment variables are declared.
Installation
In SourceWeft
- Open pypreset in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
A meta-tool for scaffolding Python projects with configurable YAML presets.
Supports Poetry, uv, and setuptools, generates CI workflows, testing scaffolds, type checking configs, and more.
mcp-name: io.github.KaiErikNiermann/pypreset
Features
- Preset-based project creation from YAML configs with single inheritance
- Augment existing projects with CI workflows, tests, Docker, documentation, and more
- Three package managers: Poetry, uv (PEP 621 + hatchling), and setuptools (PEP 621 + setuptools.build_meta)
- Two layout styles:
src/layout and flat layout - Type checking: mypy, pyright, ty, or none
- Code quality: ruff linting/formatting, radon complexity checks, pre-commit hooks
- Docker & devcontainer: generate multi-stage Dockerfiles,
.dockerignore, and VS Code devcontainer configs (Docker or Podman) - Coverage integration: Codecov support with configurable thresholds and ignore patterns
- Documentation scaffolding: MkDocs (Material theme) or Sphinx (RTD theme) with optional GitHub Pages deployment
- Multi-environment testing: tox configuration with tox-uv backend
- pyenv / .python-version: generate
.python-versionfor pyenv and uv, withpython-version-filein CI workflows - Version management: bump-my-version integration, GitHub release automation via
ghCLI - Workflow verification: local GitHub Actions testing with
act(auto-detect, auto-install, dry-run and full-run modes) - PyPI metadata management: read, set, and check publish-readiness of
pyproject.tomlmetadata - User defaults: persistent config at
~/.config/pypreset/config.yaml - MCP server: expose all functionality to AI coding assistants via the Model Context Protocol
Installation
Quick Start
Commands
create -- Scaffold a new project
augment -- Add components to an existing project
Analyzes pyproject.toml to auto-detect your tooling, then generates the selected components. Runs in interactive mode by default (prompts for values it can't detect); use --auto to skip prompts.
Available components:
workflow -- Local workflow verification
Verify GitHub Actions workflows locally using act. The proxy auto-detects whether act is installed, can install it on supported systems, and surfaces all act output directly.
Supported auto-install targets: Arch Linux (pacman), Ubuntu/Debian (apt), Fedora (dnf), macOS/Linux with Homebrew. Other systems get a link to the act installation page.
version -- Release management
Requires the gh CLI to be installed and authenticated.
metadata -- PyPI metadata management
badges -- Generate badge markdown
Reads pyproject.toml to detect your project name, repository URL, and license, then prints badge markdown you can paste into your README.
Other commands
Presets
Built-in presets: empty-package, cli-tool, data-science, discord-bot.
Presets are YAML files that define metadata, dependencies, directory structure, testing, formatting, and more. They support single inheritance via the base: field. Presets can override the README template by setting metadata.readme_template to a custom .j2 filename.
Custom presets
Place custom preset files in ~/.config/pypreset/presets/ or pass a file directly:
User presets take precedence over built-in presets with the same name.
User Configuration
Persistent defaults are stored at ~/.config/pypreset/config.yaml and applied as the lowest-priority layer (presets and CLI flags override them).
MCP Server
pypreset is published to the MCP Registry as io.github.KaiErikNiermann/pypreset.
Install via the registry (recommended):
Or install locally:
Available tools:
Resources: preset://list, config://user, template://list
Prompts: create-project, augment-project
Development
All tasks use the Justfile:
See CONTRIBUTING.md for development setup and guidelines.
License
MIT
Source: README.md at commit c6513eb
Tools
0Version history
1- v0.4.0LatestSep 16, 2026
Score
40% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.