vibeDazi MCP Server
Team-shared MCP logging with git user/branch/diffs and prompt context.
Install
./install-vibedazi.sh
Run
vibedazi-mcp
VSCode MCP
Create .vscode/mcp.json:
{
"servers": {
"vibedazi": {
"type": "stdio",
"command": "vibedazi-mcp"
}
}
}
Cursor MCP
Create or update ~/.cursor/mcp.json:
{
"mcpServers": {
"vibedazi": {
"type": "stdio",
"command": "/absolute/path/to/your/.venv-vibedazi/bin/vibedazi-mcp"
}
}
}
Tip: running ./install-vibedazi.sh will create the venv, install the package, and write this file for you using the correct absolute path.
Project policy
The installer writes a root-level rule.md with the policy. Load it into your project prompt (or leave it for teammates to read).
AI Squash Merge tool
This MCP exposes a helper to attribute AI work without cluttering history.
- Tool:
ai_squash_merge - Flow: creates
ai/<timestamp>-<hint>branch, commits current changes with AI author, switches back, andgit merge --squashinto your base branch. Optionally deletes the AI branch.
When To Call
- After you’ve finished an AI-assisted change and validated it (tests/build pass).
- Call it right before your final
log_round(solog_roundremains last). - Goal: attribute the work to the AI author without interrupting your development flow.
How To Call
- In Cursor/VSCode MCP Tools: run
vibedazi.ai_squash_mergewith the params below. - Or from Python while your venv is active.
Parameters (common)
branch_hint: optional suffix in branch namemodel_name: label likeGPT-5,Claude,o3(no default; pass explicitly to attribute the right model)author_name,author_email: optional overrides for AI identity (if omitted, inferred from model_name)base_branch: target branch (defaults to current)include_untracked: stage new files too (default true)paths: restrict staged pathsco_author_trailer: addCo-authored-bytrailer on squash commit (default true)delete_ai_branch: delete the AI branch after squash (default false)set_committer_to_ai: set committer to AI on the AI branch commit (default false)auto_stash: try stashing if branch creation would overwrite files (default false)
Recommended Usage
- Keep your development on
main(or your feature branch). Let the tool branch and return automatically. - Pass
pathsto commit only source files (avoid.vibe-dazi/**,__pycache__,*.egg-info). - Set
delete_ai_branch=trueto avoid branch clutter unless you want to inspect the AI-only commit later.
Expected Result
- Seamless flow: the tool creates a temporary
ai/<timestamp>-<hint>branch, makes a single AI-authored commit, switches back to your base branch, and merges it with--squashto keep history clean. - Clear attribution:
- The AI branch commit uses the AI as author (e.g.
GPT-5 <noreply@openai.com>). - The squash commit includes
Co-authored-byandSquashed-fromtrailers to preserve provenance.
- The AI branch commit uses the AI as author (e.g.
- Uninterrupted development: you remain on your original branch the whole time.
- Auto-cleanup: temporary AI branches are deleted by default (
delete_ai_branch=true).
Notes
- If the repository has no commits yet, the tool creates an AI commit on the AI branch and skips the squash (no base to merge into). Make an initial commit and run again to squash.
- On conflict during squash, it returns
status: conflictso you can resolve and commit manually.
Examples
- Minimal (auto-detect base branch):
ai_squash_merge(branch_hint="refactor", model_name="Claude")
- Commit only code paths and delete the AI branch after:
ai_squash_merge(branch_hint="bugfix-xyz", paths=["vibeDazi/src/..."], delete_ai_branch=True)
- If branch creation complains about overwriting files:
ai_squash_merge(branch_hint="feature-a", auto_stash=True)
Configuration
You can control defaults and logging behavior via .vibe-dazi/config.json at the repo root (created by the installer). Example:
{
"log": {
"ignore_paths": [
".vibe-dazi/rounds/**",
"**/__pycache__/**",
"**/*.egg-info/**"
],
"max_events": 200,
"per_file_diff_max_bytes": 120000,
"snapshot_max_bytes": 240000,
"snapshot_enabled": true,
"include_commits_since_last": true
},
"ai_squash_merge": {
"model_name": null,
"author_name": null,
"author_email": null,
"base_branch": null,
"include_untracked": true,
"co_author_trailer": true,
"delete_ai_branch": true,
"set_committer_to_ai": false,
"auto_stash": false
}
}
Notes:
- Change
ai_squash_merge.delete_ai_branchtofalseif you want to keep AI branches around. - Add patterns to
log.ignore_pathsto exclude more files from diffs/snapshots. per_file_diff_max_bytesandsnapshot_max_bytescap the diff sizes to keep JSON outputs manageable.
Metadata
Release files for vibedazi-mcp 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vibedazi_mcp-0.2.1.tar.gz | 20.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vibedazi_mcp-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 40.5 kB
Release files / vibedazi_mcp-0.2.1.tar.gz
| Download URL | vibedazi_mcp-0.2.1.tar.gz |
|---|---|
| Size | 20.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a4e5b7ecf06926d646be0657006dbf2740e76b1546184ea70f5653597732c4f4
|
|
BLAKE2b-256 checksum How to use checksums |
8dead03a49c8d80cd6122d8b8833a3ed7c112c827aad835822a1a9304b43c524
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.9
|
Release files / vibedazi_mcp-0.2.1-py3-none-any.whl
| Download URL | vibedazi_mcp-0.2.1-py3-none-any.whl |
|---|---|
| Size | 19.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cc96d4ed996acc71227ae99210bf8fa8e9192561960c1a300b127c34ac23c383
|
|
BLAKE2b-256 checksum How to use checksums |
213b56d3e4b03e259e967397b52e621b2aae15105ee66809fdbf63c386660abd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.9
|