Run dev commands and expose their logs over MCP.
Project description
maki
Run a dev command, save its terminal output per project, and let MCP-capable agents read the logs without copy/paste.
maki --name dev pnpm dev
Then ask your agent:
Check the maki dev logs and fix the error.
How it works
maki --name dev pnpm dev
├─ runs pnpm dev
├─ prints output to your terminal
└─ writes logs to .maki/runs/<run-id>.log
maki-mcp --project /path/to/project
└─ exposes MCP tools that read .maki logs
Each run gets:
.maki/
active.json
runs/
20260710-090000-a1b2c3.log
20260710-090000-a1b2c3.json
The run id is timestamp + random suffix. --name is the human label agents can use, like dev, api, web, or worker.
Install
Recommended:
pipx install maki-mcp
or:
uv tool install maki-mcp
On Windows without pipx:
py -m pip install --user pipx
py -m pipx ensurepath
pipx install maki-mcp
Avoid system-wide pip install maki-mcp. Some Python installs, like Homebrew Python, block it with an "externally managed environment" error. pipx/uv tool install maki as a CLI without touching system Python.
Maki works in any project, not just Python projects:
cd my-node-app
maki --name dev pnpm dev
The package is maki-mcp, but the commands are:
maki
maki-mcp
Usage
Start your app through maki:
maki --name dev pnpm dev
maki --name api npm run api
maki --name worker python worker.py
If you omit --name, it defaults to dev:
maki pnpm dev
Start the MCP server for that project:
maki-mcp --project /path/to/project
MCP tools:
list_runs()latest_logs(name="dev", lines=200)get_log(run_id="...", lines=200)
MCP config
Use stdio transport. No port needed.
Claude Code
CLI:
claude mcp add maki -- maki-mcp --project /path/to/project
Config shape:
{
"mcpServers": {
"maki": {
"command": "maki-mcp",
"args": ["--project", "/path/to/project"]
}
}
}
Codex
~/.codex/config.toml:
[mcp_servers.maki]
command = "maki-mcp"
args = ["--project", "/path/to/project"]
Or with the CLI:
codex mcp add maki -- maki-mcp --project /path/to/project
Antigravity / agy
~/.gemini/config/mcp_config.json:
{
"mcpServers": {
"maki": {
"command": "maki-mcp",
"args": ["--project", "/path/to/project"]
}
}
}
Pi
Pi does not ship built-in MCP support, so maki ships a Pi package that registers equivalent Pi tools.
Install from GitHub:
pi install git:github.com/mr-jones123/maki
Or test from a local checkout:
pi -e /path/to/maki
Pi tools exposed:
maki_list_runs()maki_latest_logs(name="dev", lines=200)maki_get_log(run_id="...", lines=200)
Ask:
Use maki_latest_logs for dev and inspect the error.
Publishing
Use Conventional Commits:
fix: patch release
feat: minor release
feat!: major release
Merges to main are versioned by Python Semantic Release and published to PyPI by GitHub Actions.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file maki_mcp-0.2.1.tar.gz.
File metadata
- Download URL: maki_mcp-0.2.1.tar.gz
- Upload date:
- Size: 55.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6f13c4dc9fa0b124230ce07dce885034447289960f058a07d31395b181715e3
|
|
| MD5 |
ee487c47c443a4c8dc552d56bdb2d27a
|
|
| BLAKE2b-256 |
a45c4d159856f293b27067768bda9201f95011db73dae7ffe22b2cfb3f9dc3cb
|
Provenance
The following attestation bundles were made for maki_mcp-0.2.1.tar.gz:
Publisher:
release.yml on mr-jones123/maki
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
maki_mcp-0.2.1.tar.gz -
Subject digest:
b6f13c4dc9fa0b124230ce07dce885034447289960f058a07d31395b181715e3 - Sigstore transparency entry: 2137020463
- Sigstore integration time:
-
Permalink:
mr-jones123/maki@9c0e68fcec2874be203ff6dd1ab47b0d38a141fd -
Branch / Tag:
refs/heads/main - Owner: https://github.com/mr-jones123
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9c0e68fcec2874be203ff6dd1ab47b0d38a141fd -
Trigger Event:
push
-
Statement type:
File details
Details for the file maki_mcp-0.2.1-py3-none-any.whl.
File metadata
- Download URL: maki_mcp-0.2.1-py3-none-any.whl
- Upload date:
- Size: 4.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29a185463ca75885a724d36760efa8b58153d21acf2d876f3ea7bb767e4f971f
|
|
| MD5 |
a7fa2f6f4b47d10d9874d52474342323
|
|
| BLAKE2b-256 |
4952550fa351102140cea6190ce843e1dfa5020fd7cbfaa81d53d5b470a29f50
|
Provenance
The following attestation bundles were made for maki_mcp-0.2.1-py3-none-any.whl:
Publisher:
release.yml on mr-jones123/maki
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
maki_mcp-0.2.1-py3-none-any.whl -
Subject digest:
29a185463ca75885a724d36760efa8b58153d21acf2d876f3ea7bb767e4f971f - Sigstore transparency entry: 2137020497
- Sigstore integration time:
-
Permalink:
mr-jones123/maki@9c0e68fcec2874be203ff6dd1ab47b0d38a141fd -
Branch / Tag:
refs/heads/main - Owner: https://github.com/mr-jones123
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9c0e68fcec2874be203ff6dd1ab47b0d38a141fd -
Trigger Event:
push
-
Statement type: